PHP ET MYSQL
Résolu/Fermé
damien35
Messages postés
80
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
1 décembre 2009
-
1 mai 2009 à 17:46
le père - 1 mai 2009 à 23:08
le père - 1 mai 2009 à 23:08
A voir également:
- PHP ET MYSQL
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Mysql gratuit ou payant - Forum MySQL
- Bouton php - Forum PHP
38 réponses
infor3lmd
Messages postés
111
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009
2
1 mai 2009 à 17:52
1 mai 2009 à 17:52
tu n'as pas envoyé le code html du formulaire
normalement tu as mis dans ton formulaire un bouton submit
et sur ton code php ce bouton n'est pas présent,d'où l'erreur
montre nous ton formulaire en html pour qu'on puisse t'aider plus
normalement tu as mis dans ton formulaire un bouton submit
et sur ton code php ce bouton n'est pas présent,d'où l'erreur
montre nous ton formulaire en html pour qu'on puisse t'aider plus
damien35
Messages postés
80
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
1 décembre 2009
1 mai 2009 à 17:55
1 mai 2009 à 17:55
voila mon formulaire html merci de m'aider!!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Nous contacter</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="form" href="form.css" />
</head>
<body>
<form method="post" action="cible_formulaire.php">
<fieldset>
<legend>Vos cordonnées</legend>
<label for="nom">Nom:</label><br />
<input type="text" name="nom" id="nom" tabindex="10" /><br />
<label for="Prénom">Prénom: </label><br />
<input type="text" name="prénom" id="prénom" tabindex="20" /><br />
<Label for="adresse">Adresse:</label><br />
<input type="text" name="adresse" id="adresse" tabindex="30" /><br />
<Label for="cp">Code Postal:</label><br />
<input type="text" name="cp" id="cp" tabindex="40" /><br />
<label for="ville">Ville:</label><br />
<input type="text" name="ville" id="ville" tabinfo="50" /><br />
<label for="mail">E-mail:</label><br />
<input type="texte" name="mail" id="mail" tabindex="60" /><br />
<label for="tel">Téléphone:</label><br />
<input type="texte" name="tel" id="tel" tabindex="70" /><br />
</fieldset>
<fieldset>
<legend>Votre message:</legend>
<p>
<label for="message">Votre message</label><br />
<textarea name="message" id="message" rows="7" cols="40" ></textarea>
</p>
</fieldset>
<p>
<input type="submit" /> <input type="reset" />
<p>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Nous contacter</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="form" href="form.css" />
</head>
<body>
<form method="post" action="cible_formulaire.php">
<fieldset>
<legend>Vos cordonnées</legend>
<label for="nom">Nom:</label><br />
<input type="text" name="nom" id="nom" tabindex="10" /><br />
<label for="Prénom">Prénom: </label><br />
<input type="text" name="prénom" id="prénom" tabindex="20" /><br />
<Label for="adresse">Adresse:</label><br />
<input type="text" name="adresse" id="adresse" tabindex="30" /><br />
<Label for="cp">Code Postal:</label><br />
<input type="text" name="cp" id="cp" tabindex="40" /><br />
<label for="ville">Ville:</label><br />
<input type="text" name="ville" id="ville" tabinfo="50" /><br />
<label for="mail">E-mail:</label><br />
<input type="texte" name="mail" id="mail" tabindex="60" /><br />
<label for="tel">Téléphone:</label><br />
<input type="texte" name="tel" id="tel" tabindex="70" /><br />
</fieldset>
<fieldset>
<legend>Votre message:</legend>
<p>
<label for="message">Votre message</label><br />
<textarea name="message" id="message" rows="7" cols="40" ></textarea>
</p>
</fieldset>
<p>
<input type="submit" /> <input type="reset" />
<p>
</form>
</body>
</html>
newtech83
Messages postés
187
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
10 avril 2011
15
1 mai 2009 à 17:56
1 mai 2009 à 17:56
salut essaye de voir le mien . Peut etre qu'il pourra te venir en aide
http://www.commentcamarche.net/forum/affich 11787850 recuperer mes infos dans une base de donnee?#7
Cordialement
http://www.commentcamarche.net/forum/affich 11787850 recuperer mes infos dans une base de donnee?#7
Cordialement
Bonjour
Dans ton formulaire, tu appelles des champs 'prénom' et 'tel' alors que dans le traitement tu cherches 'prenom' (sans accent) et 'telephone'.
Je n'ai pas vérifié tous tes champs, mais corrige ceux-là et regarde bien les autres
Dans ton formulaire, tu appelles des champs 'prénom' et 'tel' alors que dans le traitement tu cherches 'prenom' (sans accent) et 'telephone'.
Je n'ai pas vérifié tous tes champs, mais corrige ceux-là et regarde bien les autres
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
damien35
Messages postés
80
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
1 décembre 2009
1 mai 2009 à 18:15
1 mai 2009 à 18:15
j'ai modifier tous dans le formulaire.html mais ca ne change rien visiblement j'ai pourtant tt renommer comme dans la base!!
aidez moi please
aidez moi please
Ça n'a strictement ***aucune*** importance que tes variables aient le même nom que les champs de ta base.
Ce qui compte, c'est que quand tu mets name ='pre' dans un formulaire, la variable que tu récupères soit bien $_POST['pre'] et pas $_POST['prenom'].
Peux-tu ajouter print_r($_POST); au début de ton script de traitement ?
et echo "coucou"; entre le { et le $civilite = mysql_...
Ce qui compte, c'est que quand tu mets name ='pre' dans un formulaire, la variable que tu récupères soit bien $_POST['pre'] et pas $_POST['prenom'].
Peux-tu ajouter print_r($_POST); au début de ton script de traitement ?
et echo "coucou"; entre le { et le $civilite = mysql_...
infor3lmd
Messages postés
111
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009
2
1 mai 2009 à 18:31
1 mai 2009 à 18:31
<input type="submit" /> sa c'est ton bouton il faut que tu lui donne a nom c'est a dire :
et dans ton code php :
au lieu de faire sa :
essai sa :
<input type="reset" /> : je ne sais pas que ce que tu veux dire pas sa !!
essai ce que je t'ai montré espérons que sa marche
a+
<input type="submit" name="valider" value="valider" />
et dans ton code php :
au lieu de faire sa :
if (isset($_POST['civilite']) AND isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['adresse']) AND isset($_POST['codepostal']) AND isset($_POST['ville']) AND isset($_POST['telephone']) AND isset($_POST['mail']) AND isset($_POST['message']))
essai sa :
if(isset($_POST['valider'])){ $civilité=''; if(isset($_POST['civilité'])) $civilité= $_POST['civilité'] ; // meme chose pour les autre champs //suivie de ta requete d'insertion 'sql' }
<input type="reset" /> : je ne sais pas que ce que tu veux dire pas sa !!
essai ce que je t'ai montré espérons que sa marche
a+
Il est totalement inutile de donner un nom au bouton et de tester chaque variable du formulaire avant de l'affecter. Un AND entre tous les isset est plus simple et plus efficace, sauf si on a envie d'envoyer un mesage d'erreur ciblé ce qui n'est pas le cas ici.
infor3lmd
Messages postés
111
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009
2
1 mai 2009 à 18:47
1 mai 2009 à 18:47
mes ces données comment vont être insérer dans la base ,si il ne valide pas son formulaire ?
" l'utilisateur doit valider ses information pour que l'enregistrement sera ajouté dans la base "
" l'utilisateur doit valider ses information pour que l'enregistrement sera ajouté dans la base "
Qu'appelles-tu "valider ses informations " ?
Si tu veux dire les envoyer, il suffit d'avoir un bouton submit, peu importe qu'il ait un nom ou pas.
Si tu veux dire vérifier le contenu des informations, c'est une autre question. C'est vrai que ce serait bien qu'il le fasse, mais il peut très bien le faire à l'intérieur du if après avoir vérifié que toutes sont présentes.
Mais pour l'instant, il devrait quand même enregistrer quelque chose.
C'est pour ça que je lui ai demandé d'afficher "coucou" après le if
Si tu veux dire les envoyer, il suffit d'avoir un bouton submit, peu importe qu'il ait un nom ou pas.
Si tu veux dire vérifier le contenu des informations, c'est une autre question. C'est vrai que ce serait bien qu'il le fasse, mais il peut très bien le faire à l'intérieur du if après avoir vérifié que toutes sont présentes.
Mais pour l'instant, il devrait quand même enregistrer quelque chose.
C'est pour ça que je lui ai demandé d'afficher "coucou" après le if
damien35
Messages postés
80
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
1 décembre 2009
1 mai 2009 à 19:03
1 mai 2009 à 19:03
j' ai essayer de mettre le echo coucou mai rien ne s'affiche mais j'ai pas bien saisi par contr pour :
print_r($_POST); je doi placer ca ou ???
sinn j ai egalement essaye rla solution renommer le bouton..; ne fonctionne pas non plus aidez moi jdesespere vraiment la ^^ merci a vous
print_r($_POST); je doi placer ca ou ???
sinn j ai egalement essaye rla solution renommer le bouton..; ne fonctionne pas non plus aidez moi jdesespere vraiment la ^^ merci a vous
damien35
Messages postés
80
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
1 décembre 2009
1 mai 2009 à 19:15
1 mai 2009 à 19:15
j ai fait comme tu m'a dit quand je valide le formulaire j'ai une page vide qui s'affiche et toujours rien dans ma base!! que faire que faire!
C'est absolument anormal que ça n'affiche rien du tout. Le script où tu as mis le print_r est bien celui que tu as montré dans ton premier message, c'est à dire cible_formulaire.php ?
si oui, ajoute coucou AVANT <?php
si oui, ajoute coucou AVANT <?php
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
1 mai 2009 à 19:26
1 mai 2009 à 19:26
tu n'a pas simplement precise les champs dans lesquels tu inserait tes valeurs ..
mysql_query("INSERT INTO clients VALUES('', '" . $civilite . "', '" . $nom . "', '" .$prenom.'", "'.$adresse."', '".$codepostal."', '".$ville."', '".$telephone."', '".$mail."', '".$message."')");
j'ai pas regardé en detail mais je pense que cela vient de la
essaye ca
petite precision si ton champ id est autoinccrement, inutile de mettre " au debut de tes values
n'utilise JAMAIS d'accent pour appeler un champ, une variable ou une requete
la page blanche est due à une erreur de syntaxe php , un ; une ' ou " qui manque verifie ton code
mysql_query("INSERT INTO clients VALUES('', '" . $civilite . "', '" . $nom . "', '" .$prenom.'", "'.$adresse."', '".$codepostal."', '".$ville."', '".$telephone."', '".$mail."', '".$message."')");
j'ai pas regardé en detail mais je pense que cela vient de la
essaye ca
mysql_query("INSERT INTO clients (champ civilite, champ nom, champ prenon,..etc ) VALUES('', '" . $civilite . "', '" . $nom . "', '" .$prenom.'", "'.$adresse."', '".$codepostal."', '".$ville."', '".$telephone."', '".$mail."', '".$message."')");
petite precision si ton champ id est autoinccrement, inutile de mettre " au debut de tes values
n'utilise JAMAIS d'accent pour appeler un champ, une variable ou une requete
la page blanche est due à une erreur de syntaxe php , un ; une ' ou " qui manque verifie ton code
Il est inutile de donner les noms des champs quand on met toutes les valeurs. Et pour les mettre toutes, il faut mettre '' pour le champ autoincrémenté
La page blanche peut avoir des tas de causes et n'est généralement pas due à une erreur de syntaxe PHP car une erreur de syntaxe provoque l'affichage d'un message d'erreur
La page blanche peut avoir des tas de causes et n'est généralement pas due à une erreur de syntaxe PHP car une erreur de syntaxe provoque l'affichage d'un message d'erreur
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
>
le père
1 mai 2009 à 19:51
1 mai 2009 à 19:51
sur certain serveur si .. ;-)
page blanche=erreur de typo en php
msg d'erreur= syntaxe d'une requete incorrete
de plus il est preferable et conseillé de marquer les champs dans lesquels tu insere tes données.
Ce n'est pas obligatoire mais fortement conseillé.
Tout cecik n'est qu'une question de principe de codage, cela fait un truc plus propre et plus efficace au niveau serveur
page blanche=erreur de typo en php
msg d'erreur= syntaxe d'une requete incorrete
code original <?PHP echo'coucou'; $today = getdate(); print_r($today); // ca m'affiche un array des variables d'aujourd'hui ?> // page blanche <?PHP echo'coucou' $today = getdate(); print_r($today); ?> //msg erreur => $ today undefined mais coucou est visible car placé avant l'erreur <?PHP echo'coucou'; print_r($today); ?>
de plus il est preferable et conseillé de marquer les champs dans lesquels tu insere tes données.
Ce n'est pas obligatoire mais fortement conseillé.
Tout cecik n'est qu'une question de principe de codage, cela fait un truc plus propre et plus efficace au niveau serveur
infor3lmd
Messages postés
111
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009
2
1 mai 2009 à 19:28
1 mai 2009 à 19:28
le père a remarqué sa :
<input type="text" name="prénom" id="prénom" tabindex="20" />
AND isset($_POST['prenom'])
</code>
et on ne sait si tu as modifier sa ou pas
$_POST['prénom']
puisque tu dis que coucou n'est pas affiché c'est a dire la condition if est fausse
<input type="text" name="prénom" id="prénom" tabindex="20" />
AND isset($_POST['prenom'])
</code>
et on ne sait si tu as modifier sa ou pas
$_POST['prénom']
puisque tu dis que coucou n'est pas affiché c'est a dire la condition if est fausse
damien35
Messages postés
80
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
1 décembre 2009
1 mai 2009 à 19:43
1 mai 2009 à 19:43
j ai modifier ts les champs de façon a ce qu'il n'y est plus d'espace ni d'accent dans le form.html et cible.php pour qu'il n'y ai pas de confusion entre les noms.
Par contre maintenant les données que j'insère dans la rubrique message de mon formulaire s'insère dans ma base mysql mais pas comme je voudrais c'est a dire que le message du formulaire s'enregistre dans ma base a la place du nom du client et le prénom a une valeur de 0 et d'autres champs ont des symboles bizard comme valeur!!
Par contre maintenant les données que j'insère dans la rubrique message de mon formulaire s'insère dans ma base mysql mais pas comme je voudrais c'est a dire que le message du formulaire s'enregistre dans ma base a la place du nom du client et le prénom a une valeur de 0 et d'autres champs ont des symboles bizard comme valeur!!
infor3lmd
Messages postés
111
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009
2
1 mai 2009 à 19:52
1 mai 2009 à 19:52
les champs de table sont dans cette ordre :
table(civilite ,nom ,prenom, adresse, codepostal,ville,telephone,mail,message) ?
table(civilite ,nom ,prenom, adresse, codepostal,ville,telephone,mail,message) ?
damien35
Messages postés
80
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
1 décembre 2009
1 mai 2009 à 19:57
1 mai 2009 à 19:57
oui entre temps j'ai enlevé civilité et j'ai pas mi de clé primaire donc ca donne :
nom, prenom, adresse, codepostal, ville, telephone, mail, message
jcomprens pas ce qui se passe en debut d'aprem j'avais réussi a mettre un enregistrement j'ai du toucher a qq chose parsqu'apres plus rien!!
nom, prenom, adresse, codepostal, ville, telephone, mail, message
jcomprens pas ce qui se passe en debut d'aprem j'avais réussi a mettre un enregistrement j'ai du toucher a qq chose parsqu'apres plus rien!!
infor3lmd
Messages postés
111
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009
2
1 mai 2009 à 20:03
1 mai 2009 à 20:03
Oui entre temps j'ai enlevé civilité et j'ai pas mi de clé primaire donc ca donne
que veut dire sa ?
d'après ton code tu as une clé primaire qui est auto-incrément donc:
table (id,civilité,nom,prenom,adresse,codepostale,ville,telephone,mail,message)
et si vous avez enlever le champs civilité de ta table alors la variable $civilité de ton code
damien35
Messages postés
80
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
1 décembre 2009
1 mai 2009 à 20:06
1 mai 2009 à 20:06
j'ai plus que huit champs nom prenom adresse codepostal, ville, telephone, mail, message sans clé primaire dans ma table et mon code je l'avai modifié au passage quand j'ai enlevé civilité
voici le code modifié :
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("camping");
if (isset($_POST['nom'])
AND isset($_POST['prenom'])
AND isset($_POST['adresse'])
AND isset($_POST['codepostal'])
AND isset($_POST['ville'])
AND isset($_POST['telephone'])
AND isset($_POST['mail'])
AND isset($_POST['message']))
{
// On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
$adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse']));
$codepostal = mysql_real_escape_string(htmlspecialchars($_POST['codepostal']));
$ville = mysql_real_escape_string(htmlspecialchars($_POST['ville']));
$telephone = mysql_real_escape_string(htmlspecialchars($_POST['telephone']));
$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
// On peut enregistrer
mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'"') or die (mysql_error());
}
mysql_close();
?>
voici le code modifié :
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("camping");
if (isset($_POST['nom'])
AND isset($_POST['prenom'])
AND isset($_POST['adresse'])
AND isset($_POST['codepostal'])
AND isset($_POST['ville'])
AND isset($_POST['telephone'])
AND isset($_POST['mail'])
AND isset($_POST['message']))
{
// On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
$adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse']));
$codepostal = mysql_real_escape_string(htmlspecialchars($_POST['codepostal']));
$ville = mysql_real_escape_string(htmlspecialchars($_POST['ville']));
$telephone = mysql_real_escape_string(htmlspecialchars($_POST['telephone']));
$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
// On peut enregistrer
mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'"') or die (mysql_error());
}
mysql_close();
?>