Se connecter / S'enregistrer
Votre question

Formulaire d'ajout simple

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
25 Août 2009 05:30:58

Bonjour,
J'ai un probleme pour la création d'un formulaire qui permet d'ajouter une entrée.

<?php
mysql_connect("localhost", "", "");
mysql_select_db("");
?>

<form action="connexion.php" method="post">
<input type="text" name="pseudo" value="Votre pseudo" onfocus=" if ( !this.cliquer ) { this.value=''; this.cliquer=true; } " /><br />
<input type="text" name="login" value="Votre Login" onfocus=" if ( !this.cliquer ) { this.value=''; this.cliquer=true; } "/><br />
<input type="password" name="pwd" value="password" onfocus=" if ( !this.cliquer ) { this.value=''; this.cliquer=true; } "/><br />
<input name="submit" type="submit" value="Envoyer" /><br />
</form>

<?php

$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$pwd = mysql_real_escape_string(htmlspecialchars($_POST['pwd']));

mysql_query("INSERT INTO tbl_user VALUES('', ' " . $pseudo . " ', ' " . $login . " ', ' " . $pwd . " ')");

mysql_close();
?>

Je ne vois pas ou ca bloque en faite. Lorsque je remplie le formulaire ca me créé bien une entré dans la table tbl_user mais les champ sont vide sauf l'id . Donc j'en déduis que ca enregistre bien mais que ce que j'entre dans le formulaire n'est pas transmit dans la requete Insert Into. ( lorsque je remplace directement dans Values(....); avec des valeurs concretes , ca s'ajoute bien ).

Je vous remercie d'avance.

Autres pages sur : formulaire ajout simple

25 Août 2009 08:30:51

Salut,

Première chose, quand un utilisateur charge la page pour la première fois le tableau $_POST est vide. Tu INSERT donc dans tes champs des valeurs vides !

Pour remédier à cela, créer une condition qui vérifie si $_POST n'est pas vide. De préférence avant les lignes :
  1. mysql_real_escape_string(htmlspecialchars())

Ça évite des appelles de fonctions inutiles.

Dans un deuxième temps, pour apprendre a debuger ton code, lance des
  1. echo $_POST['pseudo'];
  2. echo $pseudo;

pour voir ou ce situe le problème.
25 Août 2009 12:01:58

Ca ne fonctionne toujours pas : voici mon code maintenant. Rien ne se passe meme quand je verifie si ca a ajouter quelque chose.

<?php
mysql_connect("localhost", "root", "xxxx");
mysql_select_db("NomDB");
?>

<form action="connexion.php" method="post">
<input type="text" name="pseudo" value="Votre pseudo" onfocus=" if ( !this.cliquer ) { this.value=''; this.cliquer=true; } " /><br />
<input type="text" name="login" value="Votre Login" onfocus=" if ( !this.cliquer ) { this.value=''; this.cliquer=true; } "/><br />
<input type="password" name="pwd" value="password" onfocus=" if ( !this.cliquer ) { this.value=''; this.cliquer=true; } "/><br />
<input name="submit" type="submit" value="Envoyer" /><br />
</form>

<?php

if (isset($_POST['pseudo'], $_POST['login'] ,$_POST['pwd'])) {
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$pwd = mysql_real_escape_string(htmlspecialchars($_POST['pwd']));

mysql_query("INSERT INTO tbl_user VALUES('', ' " . $pseudo . " ', ' " . $login . " ', ' " . $pwd . " ')");
}

echo $_POST['pseudo'];
echo $pseudo;
echo $_POST['login'];
echo $login;
echo $_POST['pwd'];
echo $pwd;

mysql_close();
?>
Contenus similaires
25 Août 2009 13:00:56

si il y a bien un id comme champ dans ta table il ne faut pas faire : mysql_query("INSERT INTO tbl_user VALUES('', ' " . $pseudo . " ', ' " . $login . " ', ' " . $pwd . " ')" ); mais mysql_query("INSERT INTO tbl_user VALUES('', ' $pseudo ' , '$login ', ' $pwd ' )" ) or die (mysql_error()); celle que je viens de te donner fonction que si le champ id est le 1er
25 Août 2009 13:03:19

c'est le cas je test de suite
25 Août 2009 13:07:13

ok dit nous si sa marche
25 Août 2009 13:07:54

Donc une fois testé, ca ne fonctionne toujours pas, ca m'emmene bien sur ma page de conenxion.php mais y a rien qui ne s'enregistre dans la table.

Je suis chez free ca change quelque chose car je ne comprend pas quelque chose avant tout ces code que j'utilise fonctionner parfaitement. Je les adapté par la suite et il n'y avais aucun probleme. Lorsque je fais ca avec mes ancienne table ca fonctionne toujours mais lorsque je me penche sur les derniere que 'jai créé ca ne fonctionne pas. Des fonctions ont elle changé sur phpmyadmin ?
25 Août 2009 13:13:53

je crois que sa viens de tes inputs : <form action="connexion.php" method="post">
<input type="text" name="pseudo" value="Votre pseudo" onfocus=" if ( !this.cliquer ) { this.value=''; this.cliquer=true; } " /><br />
<input type="text" name="login" value="Votre Login" onfocus=" if ( !this.cliquer ) { this.value=''; this.cliquer=true; } "/><br />
<input type="password" name="pwd" value="password" onfocus=" if ( !this.cliquer ) { this.value=''; this.cliquer=true; } "/><br />
<input name="submit" type="submit" value="Envoyer" /><br />
</form>
tout sa essaye de les mettres entre les
<fieldset>
ton formulaire
<input type="submit"/>
</fieldset>
pour vois si cela fonction.
si sa ne marche pas je veux bien te passer mon adresse msn en mdp pour regler ce probleme ou pour voir si tu as besoin d'aide
25 Août 2009 13:17:13

Malheureusement c'est toujours le meme probleme aucun enregistrement de fait sur la table
25 Août 2009 13:22:33

Message editer Kepsylis, tu peut editer tes messages avec les deux icones en bas à droite de chaque post (celles avec une feuille et un petit crayon et une feuille avec un éclaire).
25 Août 2009 13:22:45

je t'ai envoyé mon adresse en mdp si tu souhaite le prendre, prend le comme sa tu me passera tes scripts
25 Août 2009 13:25:54

Merci Okinou et j'ai réussi . C'était bete mais en faite dans le formulaire , il se trouve sur la page inscription.php

Or moi j'ai fais en sorte que ca aille sur connexion.php par la suite alors qu'il fallais justement laisser sur inscription.php

puisque le code pour inserer les entré et juste a la suite.

J'ai donc changer : <form action="connexion.php" method="post"> par <form action="inscription.php" method="post">

Merci a vous d'avoir essayé de m'aider
25 Août 2009 13:27:43

Citation :
ca m'emmene bien sur ma page de conenxion.php


Peux tu donner le nom du fichier dans lequel tu as écrit ton code ainsi que la structure de la BDD ?

EDIT : Ok, trop tard ;) 
25 Août 2009 13:28:35

c'est plus la peine il a reussi a résoudre son problème sur le site de comment sa marche ^^
25 Août 2009 13:31:27

J'espere que vous m'en voulais pas mais j'optimise mes chance de trouver la solution pour finir mon site. Un projet qui me tiens à coeur donc je met toute les chance de mon côté au cas ou on me réponde pas sur un forum.

Et je vous remercie grandement de m'avoir informer sur les possibilité de résoudre mon probleme.

Merci beaucoup !
25 Août 2009 13:38:09

^^ je fais pareil ^^
25 Août 2009 13:41:53

Mais par contre comment faire en sorte que l'utilisateur qui s'enregistre ne puisse pas utiliser le meme pseudo et login , quel lign de code faut il ajouter opur verifier ca et si c'est le meme ca le renvoie a l'inscription ?

Ps: j'ai mis le code d'insertion dans connexion.php maintenant et donc la redirection du formulaire emmene a connexion.php
25 Août 2009 13:47:13

Tu rajoutes dans la condition : && $pseudo != $login

Je te souhaite bon courage, et je te conseil de lire quelques tutoriels avant de continuer ;) 
25 Août 2009 14:15:06

Je voulais dire verifié que l'utilisateur qui s'enregistre apres n'utilise pas le meme pseudo ou login qu'un précedent visiteur qui a deja utilisé ce pseudo et / ou ce login pour s'enregsitrer autrement dire verifié que le pseudo et le login n'es pas deja dans la table des membre
25 Août 2009 20:24:43

Quelqu'un aurait la reponse svp ?
25 Août 2009 20:36:13

if ($login != $login_de_l'autre AND $pseudo != $pseudo_de_lautre)
{
tes instructions ...
}
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS