Undefined variable
Résolu/Fermé
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
-
23 mai 2011 à 23:01
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 25 mai 2011 à 05:59
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 25 mai 2011 à 05:59
A voir également:
- Undefined variable
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Windows 10
- Perso-6;available playsets were found, but none are supported;undefined ✓ - Forum Montage et acquisition vidéo
- Variable d'environnement TEMP ✓ - Forum Windows 7
9 réponses
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
23 mai 2011 à 23:05
23 mai 2011 à 23:05
c'est tout simplement que tes variables n'existent pas.
met un
if(!isset($pass2)||!isset($email))
{
die("les variables ne sont pas definies")
}
et ton problème est réglé :)
met un
if(!isset($pass2)||!isset($email))
{
die("les variables ne sont pas definies")
}
et ton problème est réglé :)
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
23 mai 2011 à 23:07
23 mai 2011 à 23:07
Hihi avec ce code que tu m'as donné il m'informe que mes variables ne sont pas définies :D... page blanche :p
Sinon comment définir les variables ? :$
Sinon comment définir les variables ? :$
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
23 mai 2011 à 23:12
23 mai 2011 à 23:12
ben tu ne définie pas tes variable, à quoi correspondent $pass et $email ?
si tu ne l'indique pas, PHP ne le devine pas ;)
si tu ne l'indique pas, PHP ne le devine pas ;)
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
23 mai 2011 à 23:15
23 mai 2011 à 23:15
Désolé, je suis NUL en php :$ C'est pourquoi je pose des questions idiotes :p
En fait ce script enregistre dans un fichier les adresses email pour faire une sorte de newsletter.
Tu as déjà tout mon code à l'exception de celui-ci :
En fait ce script enregistre dans un fichier les adresses email pour faire une sorte de newsletter.
Tu as déjà tout mon code à l'exception de celui-ci :
<form method="post" action="index.php?pass2=$pass2"> <input name="email" type="text"> <input type="submit" name="submit" value=" OK "> <br> <? echo($resultat) ?> </form>
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
23 mai 2011 à 23:21
23 mai 2011 à 23:21
alors dans ton code PHP, il te manque ça :
$pass2 = $_GET['pass2'];
$email= $_POST['email'];
par contre, tu devrais vérifier ton URL : index.php?pass2=$pass2
là, tu assigne la valeur '$pass2' à ta variable $pass2
ça fonctionne comme ça : ?pass2=valeur
remplace juste valeur par la valeur textuelle ou numérique que tu souhaite :)
$pass2 = $_GET['pass2'];
$email= $_POST['email'];
par contre, tu devrais vérifier ton URL : index.php?pass2=$pass2
là, tu assigne la valeur '$pass2' à ta variable $pass2
ça fonctionne comme ça : ?pass2=valeur
remplace juste valeur par la valeur textuelle ou numérique que tu souhaite :)
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
Modifié par Sinistrus le 23/05/2011 à 23:27
Modifié par Sinistrus le 23/05/2011 à 23:27
Il m'envoie deux erreurs sur les deux lignes que tu m'as donné.
Undefined index: pass2
Undefined index: email
J'ai aussi changé comme ça :
index.php?pass2=1
Undefined index: pass2
Undefined index: email
C'est normal ?<?php $pass2= $_GET['pass2']; $email= $_POST['email']; if($pass2 !=1){$resultat="S'incrire à notre newsletter";} $test = 1; if (strlen($email) >=1){ $email = str_replace("|","",$email); if (ereg(".+(@.+)(\.[[:alpha:]]{2}([[:alpha:]]?))$",$email)){} else {$test = 0;$resultat = "<span class=MiniRouge>Erreur ! Adresse email invalide !</span>";$pass2=1;} $fp = fopen("result.lst","r"); while (!feof($fp)){$ligne = fgets($fp,4096);$email2 = explode("|",$ligne);} fclose($fp); for($x=0;$x <= sizeof($email2)-1;$x++){ if ($email2[$x] == $email){$test=0;$resultat = "<span class=MiniRouge>Erreur ! Votre adresse email est déjà enregistrée</span>";$pass2=1;}} if($test== 1 ){ $fp = fopen("result.lst","a");fputs($fp,"$email|");fclose($fp); $resultat = "Votre inscription a bien été validé";$pass2=1;}} ?> <form method="post" action="index.php?pass2=100"><input name="email" type="text"> <input type="submit" name="submit" value=" OK "><br><? echo($resultat) ?></form>
J'ai aussi changé comme ça :
index.php?pass2=1
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
23 mai 2011 à 23:29
23 mai 2011 à 23:29
tu as bien lancé depuis ton formulaire ?
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
23 mai 2011 à 23:31
23 mai 2011 à 23:31
Oui :s en local, il m'envoie ces deux erreur... j'ai même fais Ctrl+F5 pour rafraichir mais pareil :s
C'est grave docteur ? :|
C'est grave docteur ? :|
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
23 mai 2011 à 23:35
23 mai 2011 à 23:35
je sais pas, je regarde ça demain en rentrant des cours, là j'suis creuvé :/
tu as bon ton formulaire dans une page à part ?
tu as bon ton formulaire dans une page à part ?
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
23 mai 2011 à 23:37
23 mai 2011 à 23:37
oui le code est dans une page seule (header.php) que j'exécute toute seule dans mon navigateur pour tester (en local)
Aucune page n'est appelée depuis celle-ci !
Merci pour ton aide Templier Nocturne
Aucune page n'est appelée depuis celle-ci !
Merci pour ton aide Templier Nocturne
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
24 mai 2011 à 16:29
24 mai 2011 à 16:29
donc, si j'ai bien compris, tu lance header.php, et header.php redirige vers index.php ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
24 mai 2011 à 16:39
24 mai 2011 à 16:39
non non, là j'ai exécuter dans le navigateur seulement le header pour voir l'erreur !
Et ce matin en fait, quand j'ai enlevé les
Je n'ai rien compris à ça...!!!
C'est le "<?php" qui me faisait toute cette merde :s
Et ce matin en fait, quand j'ai enlevé les
<?phpet remplacé par
<?ça a fonctionné :s
Je n'ai rien compris à ça...!!!
C'est le "<?php" qui me faisait toute cette merde :s
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
24 mai 2011 à 16:41
24 mai 2011 à 16:41
tu as bien donné l'intégralité de ta page index.php ?
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
24 mai 2011 à 17:37
24 mai 2011 à 17:37
Non, rien avoir avec l'index tout le code que je t'ai envoyé Templier Nocturne, je ne travail pour l'instant que sur la page header.php
Le code complet que j'ai posté plus haut n'est qu'au fichier header.php :s
Penses tu que c'est normal que <?php fasse erreur et que <? résoude le problème ?
Le code complet que j'ai posté plus haut n'est qu'au fichier header.php :s
Penses tu que c'est normal que <?php fasse erreur et que <? résoude le problème ?
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
Modifié par arthezius le 24/05/2011 à 18:10
Modifié par arthezius le 24/05/2011 à 18:10
Ton formulaire:
Quand tu envoi ton formulaire (en cliquant sur le bouton Ok) tu es redirigé vers la page index.php?pass2=1
Autrement dit, sur la page index.php, tu as le script PHP qui te permet de traiter ton formulaire. Tu as donc sur cette page le script suivant:
Le script de traitement est donc sur la même page que le formulaire.
Il te faut donc ajouter une condition qui vérifie si le formulaire est bien envoyé ou non.
Dans le cas contraire, le script PHP est exécuté à chaque affichage de la page ce qui n'est pas le but.
<?php
if(isset($_POST['submit']) && $_POST['submit']=='Ok')
{
// Le script PHP
}
?>
Note: Je me suis permis de supprimer les espaces en trop sur le bouton submit et de fermer la balise (avec />)
Ta page donne donc (avec les correctifs):
J'ai également rendu ton code plus lisible en ajoutant d'avantage de saut de ligne ainsi que des tabulations.
Voilà qui devrait mieux fonctionner.
Edit: si tu travail sur un fichier header.php, il faut que tu modifie l'url en fonction sur la balise <form>
« La recherche commence là où s'arrête la connaissance. »
<form method="post" action="index.php?pass2=$pass2"> <input name="email" type="text"> <input type="submit" name="submit" value="OK "> <br> <? echo($resultat) ?> </form>
Quand tu envoi ton formulaire (en cliquant sur le bouton Ok) tu es redirigé vers la page index.php?pass2=1
Autrement dit, sur la page index.php, tu as le script PHP qui te permet de traiter ton formulaire. Tu as donc sur cette page le script suivant:
<?php $pass2= $_GET['pass2']; $email= $_POST['email']; if($pass2 !=1){$resultat="S'incrire à notre newsletter";} $test = 1; if (strlen($email) >=1){ $email = str_replace("|","",$email); if (ereg(".+(@.+)(\.[[:alpha:]]{2}([[:alpha:]]?))$",$email)){} else {$test = 0;$resultat = "<span class=MiniRouge>Erreur ! Adresse email invalide !</span>";$pass2=1;} $fp = fopen("result.lst","r"); while (!feof($fp)){$ligne = fgets($fp,4096);$email2 = explode("|",$ligne);} fclose($fp); for($x=0;$x <= sizeof($email2)-1;$x++){ if ($email2[$x] == $email){$test=0;$resultat = "<span class=MiniRouge>Erreur ! Votre adresse email est déjà enregistrée</span>";$pass2=1;}} if($test== 1 ){ $fp = fopen("result.lst","a");fputs($fp,"$email|");fclose($fp); $resultat = "Votre inscription a bien été validé";$pass2=1;}} ?> <form method="post" action="index.php?pass2=100"> <input name="email" type="text"> <input type="submit" name="submit" value="OK "><br><? echo($resultat) ?></form>
Le script de traitement est donc sur la même page que le formulaire.
Il te faut donc ajouter une condition qui vérifie si le formulaire est bien envoyé ou non.
Dans le cas contraire, le script PHP est exécuté à chaque affichage de la page ce qui n'est pas le but.
<?php
if(isset($_POST['submit']) && $_POST['submit']=='Ok')
{
// Le script PHP
}
?>
Note: Je me suis permis de supprimer les espaces en trop sur le bouton submit et de fermer la balise (avec />)
<input type="submit" name="submit" value="OK" />
Ta page donne donc (avec les correctifs):
<?php if(isset($_POST['submit']) && $_POST['submit']=='Ok') { $pass2= $_GET['pass2']; $email= $_POST['email']; if($pass2 !=1) { $resultat="S'incrire à notre newsletter"; } $test = 1; if (strlen($email) >=1) { $email = str_replace("|","",$email); if (ereg(".+(@.+)(\.[[:alpha:]]{2}([[:alpha:]]?))$",$email)) {} else{ $test = 0; $resultat = "<span class=MiniRouge>Erreur ! Adresse email invalide !</span>"; $pass2=1; } $fp = fopen("result.lst","r"); while (!feof($fp)) { $ligne = fgets($fp,4096);$email2 = explode("|",$ligne); } fclose($fp); for($x=0;$x <= sizeof($email2)-1;$x++) { if ($email2[$x] == $email) { $test=0; $resultat = "<span class=MiniRouge>Erreur ! Votre adresse email est déjà enregistrée</span>"; $pass2=1; } } if($test== 1 ) { $fp = fopen("result.lst","a"); fputs($fp,"$email|"); fclose($fp); $resultat = "Votre inscription a bien été validé"; $pass2=1; } } } ?> <form method="post" action="index.php?pass2=100"> <input name="email" type="text" /> <input type="submit" name="submit" value="OK" /> </form> <?php if(isset($resultat)) echo '<br>'.$resultat; ?>
J'ai également rendu ton code plus lisible en ajoutant d'avantage de saut de ligne ainsi que des tabulations.
Voilà qui devrait mieux fonctionner.
Edit: si tu travail sur un fichier header.php, il faut que tu modifie l'url en fonction sur la balise <form>
« La recherche commence là où s'arrête la connaissance. »
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
24 mai 2011 à 18:11
24 mai 2011 à 18:11
Je ne sais pas comment te remercier arthezius et toi aussi Templier nocturne.
Je met ce script en place une fois à la maison et vous préviendrai du fonctionnement ^^
Merci encore à tous les deux !
Je met ce script en place une fois à la maison et vous préviendrai du fonctionnement ^^
Merci encore à tous les deux !
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
24 mai 2011 à 18:57
24 mai 2011 à 18:57
en disant simplement "merci", ça fait toujours plaisir à recevoir :)
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
24 mai 2011 à 23:07
24 mai 2011 à 23:07
Merci ^^ il fonctionne à merveille, en local ou en ligne !
Encore merci à tous les deux !
Encore merci à tous les deux !
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
24 mai 2011 à 23:10
24 mai 2011 à 23:10
pas de problème ;)
pas contre, met le message en "résolu" STP :)
pas contre, met le message en "résolu" STP :)
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
25 mai 2011 à 05:59
25 mai 2011 à 05:59
Pas de souci :)
Effectivement, oublie pas de modifier le statu en résolu (en haut).
Effectivement, oublie pas de modifier le statu en résolu (en haut).