Vous n'êtes pas identifié(e).
Bonjour,
Je viens de réaliser mon site web pour une société, et tout ce qui me reste c'est de terminer la partie d'espace membre.
En fait, je veux que les coordonnées de l'utilisateur seront enregistrer dans une base de données au cours de son inscription au site.
Malheureusement, j'arrive pas à me connecter à la base de données, toujours il fais que le premier test du code php puis il sort, c'est ce que je comprend pas.
J'ai essayé de vérifier mes tests plus les instructions nécessaire pour la connexion à la base de données, mais j'arrive à détecter l'erreur où exactement;
Je sais que j'ai pas bien expliqué le problème, mais je vous serai reconnaissante si quelqu'un accepte à m'aider.
Je vous laisse voire alors avec ce que j'ai fais et j'espère bien qu'il y aura quelqu'un pour m'aider
Merci d'avance.
Le code html du formulaire
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Mon site</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="style.css" />
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--[if lte IE 7]>
<link rel="stylesheet" href="style_ie.css" />
<![endif]-->
</head>
<body>
<?php include("menu.php"); ?>
<form action="valide.php" method="POST">
<fieldset>
<legend>Authentification</legend>
<p>Veuillez saisir <b style="color: red;">les informations obligatoires</b> qui permettront de vous authentifier.</p>
<table>
<tr>
<td><label for="sexe">sexe</label></td><td colspan=2><select name="sexe" id="sexe" required><option value="h" selected>Homme</option><option value="f">Femme</option></select></td>
</tr>
<tr>
<td><label for="login">Login</label></td><td><input type="text" name="login" id="login" size=20 maxlength=25 required></td>
<td style="color: red;">
</td>
</tr>
<tr>
<td><label for="pass">Mot de passe</label></td><td><input type="password" name="pass" id="pass" size=20 maxlength=25 required></td>
<td style="color: red;">
</td>
</tr>
<tr>
<td><label for="confirm">Confirmation</label></td><td><input type="password" name="password" id="confirm" size=20 maxlength=25 required></td>
<td style="color: red;">
</td>
</tr>
<tr>
<td><label for="email">Courriel</td><td><input type="email" id="email" required></td>
<td style="color: red;">
</td>
</tr>
<tr>
<td><label for="cour2">Confirmation</td><td><input type="email" name="email2" id="cour2" required></td>
<td style="color: red;">
</td>
</tr>
<tr>
<td>Date de naissance<label for="date"><label for="date"></td>
<td>
<input type="date" name="date" id="date" placeholder="Ex: 05/08/1985" required>
</td>
<td>
</td>
</tr>
<tr>
<td><label for="q">Question secrète</label></td><td><input type="text" size="100" maxlength="150" name="question" id="q" required></td>
<td style="color: red;">
</td>
</tr>
<tr>
<td><label for="r">Réponse secrète</label></td><td><input type="text" size="100" maxlength="150" name="reponse" id="r" required></td>
<td style="color: red;">
</td>
</tr>
<tr>
<td colspan=3><p><b style="color: red;"><u>Attention:</u></b> La question et réponse secrète vous seront nécessaires pour récupérer votre mot de passe en cas de perte.</p></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Informations personnelles</legend>
<p>Vous avez la possibilité de saisir <b style="color: green;">des information facultatives</b> à votre inscription.</p>
<table>
<tr>
<td><label for="nom">Nom</label></td><td><input type="text" name="nom" maxlength="25" size="20" id="nom"></td>
</tr>
<tr>
<td><label for="prenom">Prénom</label></td><td><input type="text" name="prenom" maxlength="25" size="20" id="prenom"></td>
</tr>
<tr>
<td><label for="adresse">Adresse</label></td><td><textarea name="adresse" cols="25" rows="3" id="adresse" placeholder="Ecrivez ici Votre Adresse..."></textarea></td>
</tr>
<tr>
<td><label for="ville">Ville</label></td><td><input type="text" name="ville" maxlength="25" size="20" id="ville"></td>
</tr>
<tr>
<td><label for="code">Code postal</label></td><td><input type="text" name="code" maxlength="25" size="20" id="code"></td>
</tr>
</table>
</fieldset>
<table width=100%>
<tr>
<td align=center><input type="submit" name="Envoyer" value="Envoyer"></td><td align=center><input type="reset" name="Rénitialiser" value="Rénitialiser"></td>
</tr>
</table>
</form>
<br><br>
<?php include("pied_de_page.php"); ?>
</body>
</html>
Le code php
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST['date'])) $date=$_POST['date'];
else $date="";
if(isset($_POST['q'])) $q=$_POST['q'];
else $q="";
if(isset($_POST['r'])) $r=$_POST['r'];
else $r="";
// On vérifie si les champs sont vides
if(empty($login) OR empty($pass) OR empty($email) OR empty($date) OR empty($q) OR empty($r))
{
echo '<font color="red">Attention, seul les champs <b>facultatifs</b> peuvent rester vide !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
$db = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD); // connexion à la base
mysql_select_db(DB_DATABASE,$db); // sélection de la base
// on regarde dans la table CompteUtilisateur si le login existe déjà
$sql = "SELECT id FROM compeutilisateur WHERE login='$login'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$res= mysql_num_rows($req);
if($res!=0) // si le login existe déjà, on affiche un message d'erreur
{
echo '<font color="red">Désolé, mais ce login existe déjà.</font>';
}
else // Le login n'existe pas, on insère d'abord les infos dans compeutilisateur
{
$sql = "INSERT INTO compeutilisateur(id_compte, login, passwd) VALUES('','$login','$pass')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on récupère l'id qui vient d'être généré
$id= mysql_insert_id();
// ci-dessous on insère les infos dans inscription
$sql = "INSERT INTO inscription(id, login, passwd, email, date, question, reponse, date_inscription) VALUES('','$login','$pass','$email','$date', '$q', '$r', '')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
mysql_close($db); // on ferme la compeutilisateur
}
?>
Hors ligne
SAluton,
Ne jamais mettre les infos de connexion en clair sur le web. (j'ai corrigé, si ce n'est pas déjà trop tard).
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Alors ça, ça m'étonnerait !
éventuellement sinon ????
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
#Maljuna Kris merci beaucoup, je vais corriger ça. mais pouvez m'aider à régler mon problème j'arrive pas à m'en sortir
D'ailleurs, je veux isérer les infos du form dans deux tables simultanément.
Hors ligne
La première chose serait d'être sûr que le code PHP affiché ici correspond bien au script action du form, soit valide.php.
Est-ce que cette ligne s'affiche :
A quoi te sert-il de récupérer mysql_insert_id() puisqu'ensuite tu ne l'utilises pas ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
La première chose serait d'être sûr que le code PHP affiché ici correspond bien au script action du form, soit valide.php.
Est-ce que cette ligne s'affiche :
echo '<font color="red">Attention, seul les champs <b>facultatifs</b> peuvent rester vide !</font>';A quoi te sert-il de récupérer mysql_insert_id() puisqu'ensuite tu ne l'utilises pas ?
Oui oui il l'affiche même si les champs sont tous remplis.
mysql_insert_id() je l'ai utilisé pour récupérer l'id du premier utilisateur inscrit puis l'insérer dans la table connexion qui sert à connecter les utilisateurs déjà inscrit.
Hors ligne
Oui il l'affiche même si les champs sont tous remplis.
Bon, alors il faudrait dans ce cas que tu vérifies ce que reçoit valide.php de HTTP, par exemple en faisant
Car comme tu utilises les deux attributs name et id (pas toujours d'ailleurs, par exemple pas pour le champ email) avec parfois des valeurs différentes il m'est difficile prévoir ce qui va être transmis par HTTP.
mysql_insert_id() je l'ai utilisé pour récupérer l'id du premier utilisateur inscrit puis l'insérer dans la table connexion qui sert à connecter les utilisateurs déjà inscrit.
// ci-dessous on insère les infos dans inscription
$sql = "INSERT INTO inscription(id, login, passwd, email, date, question, reponse, date_inscription)
VALUES('','$login','$pass','$email','$date', '$q', '$r', '')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Ça n'apparaît pas dans le code présenté.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
quand j'ai ajouté var_dump($_POST); coilà ce qui m'a donné
Hors ligne
en fait j'arrive pas à insérer les deux id en même temps
Hors ligne
en fait j'arrive pas à insérer les deux id en même temps
????
De toutes façon, par définition, une id doit être unique dans un document HTML.
J'observe que tu testes
Mais
array (size=14)
'sexe'array (size=14)
'sexe' => string 'f' (length=1)
'login' => string 'el.karima' (length=9)
'pass' => string '12ABC' (length=5)
'password' => string '12ABC' (length=5)
'email2' => string 'email@exemple.fr' (length=16)
'date' => string '1989-03-14' (length=10)
'question' => string 'votre ville?' (length=12)
'reponse' => string 'ville' (length=5)
'nom' => string '' (length=0)
'prenom' => string '' (length=0)
'adresse' => string '' (length=0)
'ville' => string '' (length=0)
'code' => string '' (length=0)
'Envoyer' => string 'Envoyer' (length=7)
Es-tu sûr que tu as bien là-dedans de quoi vérifier toutes les conditions de ton if ?
le début du var_dump ne me semble pas cohérent.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne