rajouter email a l inscription

alexis79
Invité n'ayant pas de compte PHPfrance

14 mars 2012, 16:25

Bonjour, alors tout d'abord, j'ai un site (en construction actuellement) sur le quel j'ai un systeme de membres (avec SQL et PHP).
J'ai donc une table "membre" avec les colonnes suivantes : id (numéro du membre), login (pseudo), pass_md5 (mot de passe caché) et je viens de rajouter "email" (varchar(255) ), seul problème, je ne sais plus comment le rajouter dans mon code sur ma page "inscription.php", lorsque je l'introduis au formulaire, bien évidemment, la variable n'a pas été créee.
J'ai donc besoin de votre aide, d'avance merci .

Eléphant du PHP | 100 Messages

14 mars 2012, 16:32

salut,

tu dois faire quelque chose de semblable :

ceci c'est pour insérer dans ta BDD :

Code : Tout sélectionner

$requete = mysql_query("INSERT INTO `users` (`login`, `mail`, `pass`) VALUES ('".mysql_real_escape_string($login)."', '".mysql_real_escape_string($mail)."', '".mysql_real_escape_string(md5($pass))."'); ");
et sinon tu récupéres l'adresse email par un $_POST['email']

Cordialement,

alexis79
Invité n'ayant pas de compte PHPfrance

14 mars 2012, 16:38

Ma BDD possède déjà la colonne email, c'est dans mon code à l'inscription, qu'il faut quelque chose. Voici le code :
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { 
   // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
   if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { 
      // on teste les deux mots de passe
      if ($_POST['pass'] != $_POST['pass_confirm']) { 
         $erreur = 'Les 2 mots de passe sont différents.'; 
      } 
      else { 
         $base = mysql_connect ('sql.franceserv.fr', 'titititi', 'jeremy79270'); 
         mysql_select_db ('titititi-db1', $base); 
         
         // on recherche si ce login est déjà utilisé par un autre membre
         $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
         $data = mysql_fetch_array($req); 
 
         if ($data[0] == 0) { 
            $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")'; 
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
 
            session_start(); 
            $_SESSION['login'] = $_POST['login']; 
            header('Location: index2.php'); 
            exit(); 
         } 
         else { 
            $erreur = 'Un membre possède déjà ce Pseudo.'; 
         } 
      } 
   } 
   else { 
      $erreur = 'Au moins un des champs est vide.'; 
   }  
}  
?>
<html>
<head><link rel="shortcut icon" href="favicon.gif" /> 
<title>WorldAventure</title>
</head>
 
<body><body background="fond.gif"><font color="#C0C0C0">
<center>Inscription &agrave; l'espace membre :<br /><br>
<form action="inscription.php" method="post">
Votre Pseudo : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
 Confirmation : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Go !"></center>
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;  
?>
<center><a href="index.php"><img src="accueil.gif"></a></center>
</body>
</html> 
Et je ne sais pas comment rajouter dans le formulaire d'inscription, la case Email, QUI L ENREGISTRERAI DANS MA BDD !!
Merci d'avance !

alexis79
Invité n'ayant pas de compte PHPfrance

14 mars 2012, 16:41

C'est assez pressé svp ... :mrgreen:

Eléphant du PHP | 100 Messages

14 mars 2012, 16:45

as tu pris le temps de comprendre le code ? c'est facile là tu as l'exemple sous les yeux

Code : Tout sélectionner

<?php // on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste également si elles ne sont pas vides if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && ([color=#FF0000]isset($_POST['email'])) && (!empty($_POST['email']))[/color] && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe if ($_POST['pass'] != $_POST['pass_confirm']) { $erreur = 'Les 2 mots de passe sont différents.'; } else { $base = mysql_connect ('sql.franceserv.fr', 'titititi', 'jeremy79270'); mysql_select_db ('titititi-db1', $base); // on recherche si ce login est déjà utilisé par un autre membre $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); if ($data[0] == 0) { $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")'; [color=#FF0000]ici tu rajoutes comme dans l'exemple que je t'ai mis dans le post précédent[/color] mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); [color=#FF0000] ====> sa se met en début de code le session start [/color] $_SESSION['login'] = $_POST['login']; header('Location: index2.php'); exit(); } else { $erreur = 'Un membre possède déjà ce Pseudo.'; } } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <html> <head><link rel="shortcut icon" href="favicon.gif" /> <title>WorldAventure</title> </head> <body><body background="fond.gif"><font color="#C0C0C0"> <center>Inscription &agrave; l'espace membre :<br /><br> <form action="inscription.php" method="post"> Votre Pseudo : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br /> [color=#FF0000]Votre email : <input type="text" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?><br />[/color] [color=#FF0000]je suis pas fan du tout de tes <br /> tu veux pas tout mettre avec des <tr> et des <td> sa sera beaucoup plus propre[/color] Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br /> Confirmation : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br /> <input type="submit" name="inscription" value="Go !"></center> </form> <?php if (isset($erreur)) echo '<br />',$erreur; ?> <center><a href="index.php"><img src="accueil.gif"></a></center> </body> </html>
tu devrais t'en sortir avec cela

Cordialement,

Eléphant du PHP | 100 Messages

14 mars 2012, 16:46

C'est assez pressé svp ... :mrgreen:
:twisted:

tu aurais pris le temps de comprendre et réfléchir deux minutes tu aurais progresser et tu aurais vu que c'était pas si sorcier

alexis79
Invité n'ayant pas de compte PHPfrance

14 mars 2012, 16:51

Mais j'avais déjà fait ça (en gros) et il me dit que y a un problème, peux-tu mettre le code en dans des balises php sur le forum, que ce soit plus clair stp.
Ensuite, j'ai réflechi, je suis venu ici ensuite, merci en tout cas de prendre du temps pour moi.

Eléphant du PHP | 100 Messages

14 mars 2012, 16:54

<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && (isset($_POST['email'])) && (!empty($_POST['email'])) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
// on teste les deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('sql.franceserv.fr', 'titititi', 'jeremy79270');
mysql_select_db ('titititi-db1', $base);

// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$data = mysql_fetch_array($req);

if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")'; ici tu rajoutes comme dans l'exemple que je t'ai mis dans le post précédent
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());

session_start(); ====> sa se met en début de code le session start
$_SESSION['login'] = $_POST['login'];
header('Location: index2.php');
exit();
}
else {
$erreur = 'Un membre possède déjà ce Pseudo.';
}
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head><link rel="shortcut icon" href="favicon.gif" />
<title>WorldAventure</title>
</head>

<body><body background="fond.gif"><font color="#C0C0C0">
<center>Inscription &agrave; l'espace membre :
<br>
<form action="inscription.php" method="post">
Votre Pseudo : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>">

Votre email : <input type="text" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>
je suis pas fan du tout de tes br
tu veux pas tout mettre avec des <tr> et des <td> sa sera beaucoup plus propre

Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>">

Confirmation : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>">

<input type="submit" name="inscription" value="Go !"></center>
</form>
<?php
if (isset($erreur)) echo '
',$erreur;
?>
<center><a href="index.php"><img src="accueil.gif"></a></center>
</body>
</html>

regarde là je t'ai mis en rouge les modifications,

donne moi les erreurs si php t'en renvoie

alexis79
Invité n'ayant pas de compte PHPfrance

14 mars 2012, 16:58

Ok, j'ai tout rajouté, sauf quand tu me dis "l'exemple que je t'ai donné dans le dernier post", je vois bien l'exemple, mais je pige pas ce que je dois rajouter.
Tu peux me le dire stp ?
Je te dirais ensuite si il me donne des erreurs !

Eléphant du PHP | 100 Messages

14 mars 2012, 17:01

Code : Tout sélectionner

if ($data[0] == 0) { $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.' '.mysql_error());

Alexis79
Invité n'ayant pas de compte PHPfrance

14 mars 2012, 17:04

Alors il me dit :
"Erreur serveur
Le site Web a rencontré une erreur lors de l'extraction de http://worldaventure.franceserv.com/inscription.php. Cela peut être dû à une opération de maintenance ou à une configuration incorrecte.
Voici quelques suggestions :
Actualisez cette page Web ultérieurement
Erreur HTTP 500 (Internal Server Error) : Une situation inattendue s'est produite tandis que le serveur tentait de traiter la demande."

:/

Eléphant du PHP | 100 Messages

14 mars 2012, 17:06

tu peux me copier coller ta page que tu as complété stp

Alexis79
Invité n'ayant pas de compte PHPfrance

14 mars 2012, 17:08

<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { 
   // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
   if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['email'])) && (!empty($_POST['email'])) && (isset($_POST['pass_confirm'])) && !empty($_POST['pass_confirm']))) { 
      // on teste les deux mots de passe
      if ($_POST['pass'] != $_POST['pass_confirm']) { 
         $erreur = 'Les 2 mots de passe sont différents.'; 
      } 
      else { 
         $base = mysql_connect ('sql.franceserv.fr', 'titititi', 'jeremy79270'); 
         mysql_select_db ('titititi-db1', $base); 
         
         // on recherche si ce login est déjà utilisé par un autre membre
         $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
         $data = mysql_fetch_array($req); 
 
         if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'")'; 
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
 
            session_start(); 
            $_SESSION['login'] = $_POST['login']; 
            header('Location: index2.php'); 
            exit(); 
         } 
         else { 
            $erreur = 'Un membre possède déjà ce Pseudo.'; 
         } 
      } 
   } 
   else { 
      $erreur = 'Au moins un des champs est vide.'; 
   }  
}  
?>
<html>
<head><link rel="shortcut icon" href="favicon.gif" /> 
<title>WorldAventure</title>
</head>
 
<body><body background="fond.gif"><font color="#C0C0C0">
<center>Inscription &agrave; l'espace membre :<br /><br>
<form action="inscription.php" method="post">
Votre Pseudo : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
 Confirmation : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
Votre email : <input type="text" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?><br />
<input type="submit" name="inscription" value="Go !"></center>
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;  
?>
<center><a href="index.php"><img src="accueil.gif"></a></center>
</body>
</html> 
Voilà, merci d'avance !

Eléphant du PHP | 100 Messages

14 mars 2012, 17:11

change la 5ème ligne par ceci :

Code : Tout sélectionner

if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['email']) && !empty($_POST['email'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
il y avait un petit soucis de parenthèse

Eléphant du PHP | 100 Messages

14 mars 2012, 17:13

et la aussi dans le champ mot de passe remplace par sa :

Code : Tout sélectionner

Votre email : <input type="text" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>"><br />
tu avais un soucis de syntaxe