Formulaire en php
Résolu
mornaloce
-
giheller Messages postés 1882 Date d'inscription Statut Membre Dernière intervention -
giheller Messages postés 1882 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà mon problème: j'ai créé un formulaire qui demande l'adresse mail de l'utilisateur pour s'inscrire et qui lui donne ensuite un mot de passe aléatoire, mais lorsque qu'une adresse est rentrée elle n'est pas enregistrée dans la BDD il n'y a que le mot de passe de stocké. De plus le message
"Notice: Undefined index: EMail in C:\wamp\www\Site\new.php on line 7
h9zJJI
l'inscription a fonctionner"
s'affiche à l'écran lorsque je valide une adresse. Est ce que quelqu'un saurait comment je px modifier ça ?
Voici mon code php:
<?php
require_once "password.generator.php";
$db = mysql_connect("localhost", "root", "");
mysql_select_db("test", $db);
$mail = $_POST['EMail'];
$pass = passGenerator();
echo $pass."<br/>";
$sql = "INSERT INTO comptes (EMail, Mot_De_Passe)
VALUES ('$mail', '$pass')";
$result = mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
echo "l'inscription a fonctionner";
echo "</br>";
include("Log.php");
?>
Voilà mon problème: j'ai créé un formulaire qui demande l'adresse mail de l'utilisateur pour s'inscrire et qui lui donne ensuite un mot de passe aléatoire, mais lorsque qu'une adresse est rentrée elle n'est pas enregistrée dans la BDD il n'y a que le mot de passe de stocké. De plus le message
"Notice: Undefined index: EMail in C:\wamp\www\Site\new.php on line 7
h9zJJI
l'inscription a fonctionner"
s'affiche à l'écran lorsque je valide une adresse. Est ce que quelqu'un saurait comment je px modifier ça ?
Voici mon code php:
<?php
require_once "password.generator.php";
$db = mysql_connect("localhost", "root", "");
mysql_select_db("test", $db);
$mail = $_POST['EMail'];
$pass = passGenerator();
echo $pass."<br/>";
$sql = "INSERT INTO comptes (EMail, Mot_De_Passe)
VALUES ('$mail', '$pass')";
$result = mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
echo "l'inscription a fonctionner";
echo "</br>";
include("Log.php");
?>
A voir également:
- Formulaire en php
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Webmastering
10 réponses
Vérifie de bien passer la variable EMail, tu as peut-être mal orthographié ta variable de l'autre côté du formulaire, ce qui fait qu'elle ne peut pas être transmise.
Tu as du mettre un name="" différent de name="EMail" j'imagine.
Cordialement, Samaël666.
Tu as du mettre un name="" différent de name="EMail" j'imagine.
Cordialement, Samaël666.
Bonsoir,
Tout d'abord merci de vos réponses si rapides. J'ai suivis les conseils et vérifié le code de mon autre page. J'avais effectivement un nom différent sur l'autre page qui était "mail". Je vous remercie et me permet de poser une autre question peut-être aussi stupide. Pour me connecter à mon site je dois renter une adresse mail et un mot de passe mais lorsque je rentre ces deux dernières informations ça me renvoie toujours "Vous avez oubliez de remplir un champ".
Voici mon code php:
<?php
$db = mysql_connect("localhost", "root", "");
mysql_select_db("test", $db);
if(isset($_POST) && !empty($_POST['EMail']) && !empty($_POST['Mot_De_Passe'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select Mot_De_Passe from test where EMail='".$EMail."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['Mot_De_Passe'] != $pass) {
echo '<p>Mauvais E-Mail / password. Merci de recommencer</p>';
include('Log.html'); // On inclut le formulaire d'identification
exit;
}
else {
$_SESSION['EMail'] = $data['EMail'];
echo 'Vous etes bien logué';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('Log.html'); // On inclut le formulaire d'identification
exit;
}
mysql_close();
?>
Tout d'abord merci de vos réponses si rapides. J'ai suivis les conseils et vérifié le code de mon autre page. J'avais effectivement un nom différent sur l'autre page qui était "mail". Je vous remercie et me permet de poser une autre question peut-être aussi stupide. Pour me connecter à mon site je dois renter une adresse mail et un mot de passe mais lorsque je rentre ces deux dernières informations ça me renvoie toujours "Vous avez oubliez de remplir un champ".
Voici mon code php:
<?php
$db = mysql_connect("localhost", "root", "");
mysql_select_db("test", $db);
if(isset($_POST) && !empty($_POST['EMail']) && !empty($_POST['Mot_De_Passe'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select Mot_De_Passe from test where EMail='".$EMail."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['Mot_De_Passe'] != $pass) {
echo '<p>Mauvais E-Mail / password. Merci de recommencer</p>';
include('Log.html'); // On inclut le formulaire d'identification
exit;
}
else {
$_SESSION['EMail'] = $data['EMail'];
echo 'Vous etes bien logué';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('Log.html'); // On inclut le formulaire d'identification
exit;
}
mysql_close();
?>
Bonjour afin de savoir exactement ce qui est passé et récupéré je mettrai pendant la phase de test
<?php
$db = mysql_connect("localhost", "root", "");
mysql_select_db("test", $db);
echo "<pre>";print_r($_POST);echo "</pre>";
if(isset($_POST) && !empty($_POST['EMail']) && !empty($_POST['Mot_De_Passe'])) {
extract($_POST);
<?php
$db = mysql_connect("localhost", "root", "");
mysql_select_db("test", $db);
echo "<pre>";print_r($_POST);echo "</pre>";
if(isset($_POST) && !empty($_POST['EMail']) && !empty($_POST['Mot_De_Passe'])) {
extract($_POST);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour giheller j'ai ajouté t'a ligne de code dans la page et voici ce que ça m'affiche:
Array
(
[Mail] => n
[pass] => m
)
Vous avez oublié de remplir un champ.
n et m sont comme tu l'aura surement compris les équivalents des informations que je rentre dans mon formulaire.
Array
(
[Mail] => n
[pass] => m
)
Vous avez oublié de remplir un champ.
n et m sont comme tu l'aura surement compris les équivalents des informations que je rentre dans mon formulaire.
En fait j'ai modifié le code et je sais dans quelle zone se trouve le problème même si je ne le connais pas pour autant. Mais il serait au niveau de :
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('Log.html'); // On inclut le formulaire d'identification
exit;
}
Car maintenant j'ai une nouvelle erreur qui est la même que sur mon premier problème:
Notice: Undefined index: EMail in C:\wamp\www\Site\traitement.php on line 24
Vous etes bien logué
En revanche comme je débute le php, et que le code que j'ai utilisé je l'ai juste copié puis modifié quelque peu, je ne comprend pas vraiment cette ligne et ne connais donc pas la cause du problème. J'ai vérifier que de l'autre coté de la page les noms concordais avec ceux de ce code ci mais il n'y a aucun problème à ce niveau.
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('Log.html'); // On inclut le formulaire d'identification
exit;
}
Car maintenant j'ai une nouvelle erreur qui est la même que sur mon premier problème:
Notice: Undefined index: EMail in C:\wamp\www\Site\traitement.php on line 24
Vous etes bien logué
En revanche comme je débute le php, et que le code que j'ai utilisé je l'ai juste copié puis modifié quelque peu, je ne comprend pas vraiment cette ligne et ne connais donc pas la cause du problème. J'ai vérifier que de l'autre coté de la page les noms concordais avec ceux de ce code ci mais il n'y a aucun problème à ce niveau.
$data['Email'] n'existe pas
bon on fait un point
au submit d'un formulaire utilisé avec la méthode POST, le fichier exécutér (formulaire action=xxx.php xxx dans cet exemplel) reçoit les données du formulaire
elles sont passées dans un tableau nommé $_POST où chaue varable du tableau ont comme nom le "name" des input du formulaire
soit
si <input name="mail" value="">entrez Email
dans le xxx on récupaire Email dans la variable $_POST['mail']
revoir donc les noms dans les input
ce que l'on récupère et ensuite comment on les traite
bon on fait un point
au submit d'un formulaire utilisé avec la méthode POST, le fichier exécutér (formulaire action=xxx.php xxx dans cet exemplel) reçoit les données du formulaire
elles sont passées dans un tableau nommé $_POST où chaue varable du tableau ont comme nom le "name" des input du formulaire
soit
si <input name="mail" value="">entrez Email
dans le xxx on récupaire Email dans la variable $_POST['mail']
revoir donc les noms dans les input
ce que l'on récupère et ensuite comment on les traite
Ça y est j'ai trouvé le problème ! En fait je ne savais pas ce que signifiait "$_SESSION['Mail'] = $data['EMail']"
mais je viens de comprendre (j'ai le cerveau lent c'est pour ça ^^). J'ai donc changer "$data['EMail']" en "$Mail" et ça à marché !
Merci à ceux qui m'ont aidé c'est à dire: giheller et Samaël666.
mais je viens de comprendre (j'ai le cerveau lent c'est pour ça ^^). J'ai donc changer "$data['EMail']" en "$Mail" et ça à marché !
Merci à ceux qui m'ont aidé c'est à dire: giheller et Samaël666.