Pour résoudre l'erreur "Undefined variable", il faut s'assurer que les variables $categorie et $titre sont bien initialisées avant de les utiliser dans le script. Il y a plusieurs façons de faire cela :
Initialiser les variables avec une valeur par défaut avant de les utiliser dans la condition, comme ceci :
$categorie = null;
$titre = null;
if(isset($_POST['creation'])){
// Récupération des valeurs soumises dans le formulaire
// et validation des données ici...
}
Utiliser la fonction isset() pour vérifier si les variables ont été définies avant de les utiliser dans la condition, comme ceci :
if(isset($_POST['creation']) && isset($categorie) && isset($titre)){
// Récupération des valeurs soumises dans le formulaire
// et validation des données ici...
}
Récupérer les valeurs de $categorie et $titre depuis le formulaire en utilisant la superglobale $_POST. Par exemple :
if(isset($_POST['creation'])){
$categorie = $_POST['categorie'];
$titre = $_POST['titre'];
// Validation des données ici...
}
En utilisant l'une de ces méthodes, vous devriez être en mesure de résoudre l'erreur "Undefined variable".
Initialiser une variable à null signifie lui donner une valeur vide ou "non définie". Cela peut être utile dans le cas où la variable n'a pas encore de valeur définie, ou si la valeur de la variable n'est pas connue à ce stade.
Dans le code donné, initialiser $categorie et $titre à null avant de les utiliser dans la condition if(isset($_POST['creation'])) peut être utile pour éviter les messages d'erreur "Undefined variable" lorsque la condition est exécutée. Cela permet également de s'assurer que ces variables ont une valeur définie avant de les utiliser dans le script.
En ce qui concerne l'objectif de récupérer la catégorie, il s'agit de récupérer l'identifiant de la catégorie sélectionnée dans le formulaire. Cette valeur peut être utilisée pour vérifier si la catégorie sélectionnée existe dans la base de données, en exécutant une requête SQL avec cet identifiant comme paramètre. Si la catégorie existe, le script peut continuer à exécuter le traitement de la requête de création de nouveau sujet de forum. Si la catégorie n'existe pas, le script peut afficher un message d'erreur indiquant que la catégorie sélectionnée n'existe pas.
Récupérer l'identifiant de la catégorie sélectionnée dans le formulaire en utilisant la superglobale $_POST.
Exécuter une requête SQL pour vérifier si la catégorie existe dans la base de données en utilisant l'identifiant comme paramètre. Vous pouvez utiliser une requête de type SELECT pour récupérer les informations de la catégorie correspondante.
Si la catégorie existe, continuer à exécuter le traitement de la requête de création de nouveau sujet de forum.
Si la catégorie n'existe pas, afficher un message d'erreur indiquant que la catégorie sélectionnée n'existe pas. Vous pouvez utiliser une condition if-else pour vérifier si la requête a retourné une ligne de résultat, et afficher le message d'erreur si la condition est vraie.
Un p'ti exemple de code qui illustre cette logique :
if(isset($_POST['creation'])){
$categorie = $_POST['categorie'];
$req = $DB->prepare("SELECT id FROM forum WHERE id = ?");
$req->execute([$categorie]);
$req_cat_verif = $req->fetch();
if(isset($req_cat_verif['id'])){
// Catégorie existe, continuer à exécuter le traitement de la requête de création de nouveau sujet de forum
} else {
// Catégorie n'existe pas, afficher un message d'erreur
$err_cat = "Cette catégorie n'existe pas";
}
}
En t'inspirant de ce codes vérifie d'abord si le formulaire de création de nouveau sujet a été soumis, puis récupère l'identifiant de la catégorie sélectionnée. Ensuite, exécutes une requête SQL pour vérifier si la catégorie existe dans la base de données. Si la catégorie existe, le traitement de la requête de création de nouveau sujet de forum est exécuté. Si la catégorie n'existe pas, un message d'erreur est affiché. Tu peux aussi afficher le message d'erreur en utilisant une balise HTML comme <p> ou <div>, ou en utilisant une fonction de rappel d'erreur dans votre script de présentation.