Formulaire en php

Résolu/Fermé
mornaloce - 8 juil. 2009 à 22:11
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 - 9 juil. 2009 à 13:36
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");

?>

10 réponses

Samaël666 Messages postés 73 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 6 juin 2010 8
8 juil. 2009 à 22:15
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.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
8 juil. 2009 à 22:15
Bonsoir,
il semblerait que $_POST['Email'] ne soit pas initialisé.
0
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();
?>
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
9 juil. 2009 à 10:32
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);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
www.4emule.com
0
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.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
9 juil. 2009 à 12:56
cela saute donc au yeux puisque mot_de_passe s'appelle pass
0
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.
0
mornaloce Messages postés 47 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 21 mars 2014 2
9 juil. 2009 à 13:07
Je me suis trompé de ligne de code désolé ^^
C'est :
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
}
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142 > mornaloce Messages postés 47 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 21 mars 2014
9 juil. 2009 à 13:17
$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
0
mornaloce Messages postés 47 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 21 mars 2014 2
9 juil. 2009 à 13:31
Ç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.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
9 juil. 2009 à 13:36
Bravo
bonne continuation
mets le pb en résolu si ce n'est déjà fait
0