Erreur : Undefined variable - PHP
Résolu/Fermé
Dragonfly03_CCS
Messages postés
10
Date d'inscription
lundi 28 décembre 2020
Statut
Membre
Dernière intervention
31 mai 2023
-
24 juil. 2021 à 14:21
yg_be Messages postés 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 - 25 juil. 2021 à 11:40
yg_be Messages postés 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 - 25 juil. 2021 à 11:40
A voir également:
- Undefined variable php
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Instagram une erreur s'est produite ✓ - Forum Instagram
- Erreur 3000 - Forum Lecteurs et supports vidéo
3 réponses
yg_be
Messages postés
23535
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 avril 2025
Ambassadeur
1 579
24 juil. 2021 à 15:00
24 juil. 2021 à 15:00
bonjour,
merci de préciser le langage quand tu utilises les balises de code. explications: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
merci aussi de préciser le nom des fichiers que tu montres.
merci encore de partager du texte, et pas des images.
le message d'erreur indique que tu lis le contenu de $valid avant d'y avoir assigné une valeur.
merci de préciser le langage quand tu utilises les balises de code. explications: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
merci aussi de préciser le nom des fichiers que tu montres.
merci encore de partager du texte, et pas des images.
le message d'erreur indique que tu lis le contenu de $valid avant d'y avoir assigné une valeur.
Dragonfly03_CCS
Messages postés
10
Date d'inscription
lundi 28 décembre 2020
Statut
Membre
Dernière intervention
31 mai 2023
24 juil. 2021 à 15:27
24 juil. 2021 à 15:27
Salut,
Voilà pour le code avec le langage :
PAGE INSCRIPTION (inscription.php) :
PAGE CONFIRMATION (conf.php) :
Et voilà l'erreur : Notice: Undefined variable: valid in /var/www/vhosts/groupe-anti-pollution.org/dev.groupe-anti-pollution.org/conf.php on line 18
Voilà pour le code avec le langage :
PAGE INSCRIPTION (inscription.php) :
<?php session_start(); include('bd/connexionDB.php'); if (isset($_SESSION['id'])){ header('Location: index.php'); exit; } if(!empty($_POST)){ extract($_POST); $valid = true; if (isset($_POST['inscription'])){ $nom = htmlentities(trim($nom)); $prenom = htmlentities(trim($prenom)); $mail = htmlentities(strtolower(trim($mail))); $mdp = trim($mdp); $confmdp = trim($confmdp); if(empty($nom)){ $valid = false; $er_nom = ("Le nom d' utilisateur ne peut pas être vide"); } if(empty($prenom)){ $valid = false; $er_prenom = ("Le prenom d' utilisateur ne peut pas être vide"); } if(empty($mail)){ $valid = false; $er_mail = "Le mail ne peut pas être vide"; }elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $mail)){ $valid = false; $er_mail = "Le mail n'est pas valide"; }else{ $req_mail = $DB->query("SELECT mail FROM utilisateur WHERE mail = ?", array($mail)); $req_mail = $req_mail->fetch(); if ($req_mail['mail'] <> ""){ $valid = false; $er_mail = "Ce mail existe déjà"; } } if(empty($mdp)) { $valid = false; $er_mdp = "Le mot de passe ne peut pas être vide"; }elseif($mdp != $confmdp){ $valid = false; $er_mdp = "La confirmation du mot de passe ne correspond pas"; } if($valid){ $mdp = crypt($mdp, '$6$rounds=5000$Mon crypt$'); $date_creation_compte = date('Y-m-d H:i:s'); $token = bin2hex(random_bytes(12)); $DB->insert("INSERT INTO utilisateur (nom, prenom, mail, mdp, date_creation_compte, token) VALUES (?, ?, ?, ?, ?, ?)", array($nom, $prenom, $mail, $mdp, $date_creation_compte, $token)); $req = $DB->query("SELECT * FROM utilisateur WHERE mail = ?", array($mail)); $req = $req->fetch(); $mail_to = $req['mail']; //=====Création du header de l'e-mail. $header = "From: no-reply@gmail.com\n"; $header .= "MIME-version: 1.0\n"; $header .= "Content-type: text/html; charset=utf-8\n"; $header .= "Content-Transfer-ncoding: 8bit"; //======= //=====Ajout du message au format HTML $contenu = '<p>Bonjour ' . $req['nom'] . ',</p><br> <p>Veuillez confirmer votre compte <a href="http://lesite.fr/conf.php?id=' . $req['id'] . '&token=' . $token . '">Valider</a><p>'; mail($mail_to, 'Confirmation de votre compte', $contenu, $header); header('Location: index.php'); exit; } } } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Inscription</title> </head> <body> <div>Inscription</div> <form method="post"> <?php if (isset($er_nom)){ ?> <div><?= $er_nom ?></div> <?php } ?> <input type="text" placeholder="Votre nom" name="nom" value="<?php if(isset($nom)){ echo $nom; }?>" required> <?php if (isset($er_prenom)){ ?> <div><?= $er_prenom ?></div> <?php } ?> <input type="text" placeholder="Votre prénom" name="prenom" value="<?php if(isset($prenom)){ echo $prenom; }?>" required> <?php if (isset($er_mail)){ ?> <div><?= $er_mail ?></div> <?php } ?> <input type="email" placeholder="Adresse mail" name="mail" value="<?php if(isset($mail)){ echo $mail; }?>" required> <?php if (isset($er_mdp)){ ?> <div><?= $er_mdp ?></div> <?php } ?> <input type="password" placeholder="Mot de passe" name="mdp" value="<?php if(isset($mdp)){ echo $mdp; }?>" required> <input type="password" placeholder="Confirmer le mot de passe" name="confmdp" required> <button type="submit" name="inscription">Envoyer</button> </form> </body> </html>
PAGE CONFIRMATION (conf.php) :
<?php error_reporting(E_ALL); ini_set("display_errors", 1); $id = (int) $_GET['id']; $token = (String) htmlentities($_GET['token']); if(!isset($id)){ $valid = false; $err_mess = "Le lien est erroné"; }elseif(!isset($token)){ $valid = false; $err_mess = "Le lien est erroné"; } if($valid){ $req = $DB->query("SELECT id FROM utilisateur WHERE id = ? AND token = ?", array($id, $token)); $req = $req->fetch(); if(!isset($req['id'])){ $valid = false; $err_mess = "Le lien est erroné"; }else{ $DB->insert("UPDATE utilisateur SET token = NULL, confirmation_token = ? WHERE id = ?", array(date('Y-m-d H:i:s'), $req['id'])); $info_mess = "Votre compte a bien été validé"; } } ?>
Et voilà l'erreur : Notice: Undefined variable: valid in /var/www/vhosts/groupe-anti-pollution.org/dev.groupe-anti-pollution.org/conf.php on line 18
yg_be
Messages postés
23535
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 avril 2025
1 579
24 juil. 2021 à 15:29
24 juil. 2021 à 15:29
le message d'erreur indique que tu lis le contenu de $valid avant d'y avoir assigné une valeur.
la solution me semble assez évidente.
la solution me semble assez évidente.
Dragonfly03_CCS
Messages postés
10
Date d'inscription
lundi 28 décembre 2020
Statut
Membre
Dernière intervention
31 mai 2023
>
yg_be
Messages postés
23535
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 avril 2025
Modifié le 25 juil. 2021 à 09:06
Modifié le 25 juil. 2021 à 09:06
?
Je suis debutant en PHP.
Je suis debutant en PHP.
yg_be
Messages postés
23535
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 avril 2025
1 579
>
Dragonfly03_CCS
Messages postés
10
Date d'inscription
lundi 28 décembre 2020
Statut
Membre
Dernière intervention
31 mai 2023
25 juil. 2021 à 11:40
25 juil. 2021 à 11:40
il est peut-être préférable de commencer par des exercices plus simples, pour comprendre la logique.
Dragonfly03_CCS
Messages postés
10
Date d'inscription
lundi 28 décembre 2020
Statut
Membre
Dernière intervention
31 mai 2023
24 juil. 2021 à 15:29
24 juil. 2021 à 15:29
- le message d'erreur indique que tu lis le contenu de $valid avant d'y avoir assigné une valeur.
Comment je peux régler le problème du coup ?
Comment je peux régler le problème du coup ?
yg_be
Messages postés
23535
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 avril 2025
1 579
25 juil. 2021 à 11:39
25 juil. 2021 à 11:39
examine ton code.
il est nécessaire qu'une instruction
il est nécessaire qu'une instruction
$valid=soit exécutée avant l'instruction qui provoque le message d'erreur.