Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
Ben voilà, je suis en train de réaliser un site qui nécessite une page d'enregistrement de profil. j'ai donc codé comme je pense être la bonne façon, et lorsque je teste, je n'ai aucun message d'erreur, mais lorsque je vérifie sur ma table, rien d'inscrit. je vous donne le code de façon à pouvoir avoir la solution à ce problème qui pour moi est incompréhensible.
mysql_connect("localhost", "root", "");
mysql_select_db("deux");
if (!empty($_POST['pseudo']) && !empty($_POST['photo']) && !empty($_POST['mot_de_passe']) && !empty($_POST['email'])&& !empty($_POST['ville']) && !empty($_POST['region']) && !empty($_POST['pays']) && !empty($_POST['taille']) && !empty($_POST['poids']) && !empty($_POST['cheveux']) && !empty($_POST['yeux']) && !empty($_POST['age']) && !empty($_POST['sexe']) && !empty($_POST['situation']) && !empty($_POST['enfants']) && !empty($_POST['etudes']) && !empty($_POST['loisir']) && !empty($_POST['sport']) && !empty($_POST['commentaire'])) // Si les variables existent
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$photo = mysql_real_escape_string(htmlspecialchars($_POST['photo']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
$ville = mysql_real_escape_string(htmlspecialchars($_POST['ville']));
$region = mysql_real_escape_string(htmlspecialchars($_POST['region']));
$pays = mysql_real_escape_string(htmlspecialchars($_POST['pays']));
$taille = mysql_real_escape_string(htmlspecialchars($_POST['taille']));
$poids = mysql_real_escape_string(htmlspecialchars($_POST['poids']));
$cheveux = mysql_real_escape_string(htmlspecialchars($_POST['cheveux']));
$yeux = mysql_real_escape_string(htmlspecialchars($_POST['yeux']));
$age = mysql_real_escape_string(htmlspecialchars($_POST['age']));
$sexe = mysql_real_escape_string(htmlspecialchars($_POST['sexe']));
$situation = mysql_real_escape_string(htmlspecialchars($_POST['situation']));
$enfants = mysql_real_escape_string(htmlspecialchars($_POST['enfants']));
$etudes = mysql_real_escape_string(htmlspecialchars($_POST['etudes']));
$loisirs = mysql_real_escape_string(htmlspecialchars($_POST['loisirs']));
$sport = mysql_real_escape_string(htmlspecialchars($_POST['sport']));
$commentaire = mysql_real_escape_string(htmlspecialchars($_POST['commentaire']));
mysql_query("INSERT INTO info VALUES('', '$pseudo', '$photo', '$mot_de_passe', '$email', '$ville', '$region', '$pays', '$taille', '$poids', '$cheveux', '$yeux', '$age', '$sexe', '$situation', '$enfants', '$etudes', '$loisirs', '$sport', '$commentaire')") or die (mysql_error());
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Votre profil</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<form method="POST" action="profil.php" name="profil">
<p>
<table align="center">
<tr>
<td><strong>Pseudo :</strong></td><td><input type="text" name="pseudo"/></td></tr>
<tr>
<td><strong>Photo:</strong></td><td><input type="text" name="pseudo"/></td></tr>
<tr>
<td><strong>Mot de passe :</strong></td><td><input type="text" name="pseudo"/></td></tr>
<tr>
<td><strong>Email :</strong></td><td><input type="text" name="pseudo"/></td></tr>
<tr>
<td><strong>Ville :</strong></td><td><input type="text" name="ville"/></td></tr>
<tr>
<td><strong>Région :</strong></td><td><input type="text" name="region"/></td></tr>
<tr>
<td><strong>Pays :</strong></td><td><input type="text" name="pays"/></td></tr>
<tr>
<td><strong>Taille en cm :</strong></td><td><input type="text" name="taille"/></td></tr>
<tr>
<td><strong>Poids :</strong></td><td><input type="text" name="poids"/></td></tr>
<tr>
<td><strong>Couleur des cheveux :</strong></td><td><input type="text" name="cheveux"/></td></tr>
<tr>
<td><strong>Couleur des yeux :</strong></td><td><input type="text" name="yeux"/></td></tr>
<tr>
<td><strong>Age :</strong></td><td><input type="text" name="age"/></td></tr>
<tr>
<td><strong>Sexe :</strong></td><td><input type="text" name="sexe"/></td></tr>
<tr>
<td><strong>Situation familiale :</strong></td><td><input type="text" name="situation"/></td></tr>
<tr>
<td><strong>Avez-vous des enfants :</strong></td><td><input type="text" name="enfants"/></td></tr>
<tr>
<td><strong>Etudes :</strong></td><td><input type="text" name="etudes"/></td></tr>
<tr>
<td><strong>Loisirs :</strong></td><td><input type="text" name="loisirs"/></td></tr>
<tr>
<td><strong>Sport pratiqué :</strong></td><td><input type="text" name="sport"/></td></tr>
<tr>
<td><strong>Commentaires :</strong></td><td><input type="text" name="commentaire"/></td></tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="ENREGISTRER"/></td></tr>
</p>
<?php
mysql_close();
?>
j'attends avec impatiente la réponse à ce mystère. Cordialement Papycool.
Hors ligne
salut papycool
sans vouloir dire de bêtises, il me semble que la syntaxe pour une instruction insert est:
A priori, il manque les noms de variables (entre parenthèses) de ta table "info".
D'autre part, le test que tu fais sur les variables renseignées est tel que tu ne fais l'insertion que si TOUTES les variables sont renseignées.
En espérant que ça aide!!
Hors ligne
J'ai effectivement remanié ma requête mais je n'ai toujours pas d'enregistrement dans ma table. je me lasse un tantinet. Question: Peut-on mélanger sur un même site, du PHP et du PHP6 ?
Hors ligne
A mon avis, tu ne peux avoir qu'une seule version de PHP installée sur ta machine.
J'avais juste regardé ta requête, pas le HTML, mais as tu vu que tu as 4 fois la zone pseudo en entrée?
resultat des courses: les $_POST des zones photo, mot de passe et email sont systématiquement non renseignés, et donc ta requête ne s'exécute pas!!
Hors ligne
Merci j'ai enfin pu débloquer cela. Moralié, le copier/coller quand on code c'est pas du 100%.
Merci encore.
Hors ligne
Effectivement, si je ne renseigne pas tous les champs, j'ai un message d'erreur et mon formulaire ne part pas. Comment résoudre ce problème et comment lier cela à une page "modification" ?
Hors ligne
Que veux tu dire par lier a une page de modification?
en ce qui concerne ton formulaire, j'ai l'impression que ce que tu veux faire dans ton test, c'est si aucune zone n'est remplie alors ne pas procéder à l'insertion, mais si au moinss une zone est renseignée, alors écrire dans la table.
Dans ce cas, ton test est mauvais.
si tu écris
cela signifie que les trois conditions doivent être vraies pour que le test se réalise.
Si tu écris
cela signifie qu'au moins une des conditions doit être vraie pour que le test se réalise.
Hors ligne
Oui c'est vrai, je viens de modifier et de ce côté là, tout va bien. Maintenant, on part du principe, qu'une personne qui s'inscrit, peut changer certaines de ses coordonnées au cours de son abonnement. Je suppose donc qu'il doit bien exister une page modification pour ses nouvelles données? Comment à partir de ce formulaire, on créé une autre page pour modifier ces données ?
Dans mon esprit c'est:
1) creer une variable qui m'emmene le pseudo de la personne. (je n'arrive toujours pas à créer une session_start)
2) faire un select et echo de tout ce qui est dans la table pour la variable,
3) créer un UPDATE avec $_POST['variable']; et WHERE pour le champs déterminé.
Suis-je dans le vrai ?
Hors ligne
Concernant les sessions, c'est un peu plus complexe, car ca dépend de ton serveur (j'espère que je ne dis pas de bêtise)
En tous cas, tu peux utiliser les variables $_post pour passer des informations d'une page à l'autre.
Suppose que tu ais une première page avec un champ du type "entrez votre pseudo" et un lien "ou bien cliquez ici pour vous inscrire".
Cette première page appellera ta page ou l'utilisateur entre ses informations. Nomme la zone pseudo de ta première page "login", ce qui te permettra dans ta seconde page de distinguer entre la zone pseudo de la première page et la zone pseudo de la seconde (c'est clair jusque là?)
Dans la partie php de la seconde page, si $_post['login'] est renseignée, tu lis l'enregistrement dans ta BDD:
ensuite pour chaque zone de ton formulaire tu renseigne la valeur:
Toujours clair?
si tu entre dans la page avec la variable login renseignée, $rs sera alimenté et tes zones input auront une valeur, sinon $rs sera non renseignée et tes zones input seront vierges.
tu as intérêt à mettre une zone cachée qui te dira si tu es en création ou modification:
quand tu relis ta page tu teste la variable CMD
Le truc, c'est que tu as donc 3 manières d'entrer dans ta page: soit CMD n'est pas renseigné, ce qui signifie que tu viens de la page d'accueil (avec login renseigné ou non) soit CMD est renseigné, ce qui signifie que c'est le retour de ton formulaire.
Une dernière chose: avec cette méthode, tu dois déclarer la zone pseudo de ta table comme étant unique. Ce qui signifie que lorsque tu fais la création, tu dois absolument tester que le pseudo n'existe pas déjà.
Hors ligne
Oups, juste avant le gigot d'agneau, ca demande relecture et compréhension. je m'y mets dès la fin de la digestion. Mais en gros, j'ai compris.
Hors ligne
Bon gigot.
Si tu as des soucis, mail moi en direct.
Hors ligne
OK pour la ligne direct. Bon appétit à toi zaussi..............;
Hors ligne
Pages :: 1