Question:
Problème avec php. Repondez SVP.?
?
2010-09-29 18:46:06 UTC
J'ai créé un site contenant plusieurs pages, sur la page d'accueil(pagedakey.php) je veux que les visiteurs me donne leur avis, j'ai fait des formulaires et désire recuperer les avis dans une base de données grâce à PhpMyAdmin. Mon problème est que quand je cliq sur "Envoyer", la base de données ne reçoit aucun enregistrement. Comme je suis un débutant, je voudrais vous montrer mon code que voici :


Que penssez-vous de cet article ?

Votre e-mail

Votre nom


Votre message






Et sur la page de recuperation, j’ai mis ceci :

$email=$_POST['email'];
$nom=$_POST['nom'];
$message=$_POST['message'];
if (empty ($email))
{
mysql_connect("localhost", "root", "");
mysql_select_db("avis_desvisiteurs");
mysql_query("INSERT INTO tableVALUES('', '$email', '$nom', '$message')");
mysqlclose();
echo"Entrez un message";
}
echo "Bonjour $nom votre avis \" $message \" nous intéresse." ;

?>
Que fau-il changer ?? Ce probleme me fatigue dpuis une belle lurette.
Quatre réponses:
?
2010-09-29 21:47:42 UTC
Il a 3 erreurs :



1. la condition " if (empty ($email)) " se traduit par " si $email est vide ". Je pense que vous voulez dire " si $email n'est pas vide ", donc " if (!empty ($email)) " (un point d'exclamation a été ajouté)



2. Dans la requête, il faut un espace entre "table" et "VALUES".



3. la requête INSERT. Si vous ne maîtrisez pas l'apostrophe et le guillemet, alors préférez l'apostrophe comme délimiteur de chaîne de caractères.

Cela revient à écrire votre requête en chaîne de caractères comme suit :

'INSERT INTO table VALUES("", "'.$email.'", "'.$nom.'", "'.$message.'")'



Regardez la façon dont sont utilisés les guillemets et les apostrophes.

Bonne continuation.
Arni
2010-09-30 01:58:52 UTC
Le problème vient de ta ligne :

mysql_query("INSERT INTO tableVALUES('', '$email', '$nom', '$message')");



qui devrait être :

mysql_query("INSERT INTO table VALUES('$email', '$nom', '$message')");



(il y a un guillemet et une virgule en trop), d'ailleurs ça m'étonne que ça ne t'ai pas mis une erreur de syntaxe.
PEBDD
2010-09-30 09:05:45 UTC
Il y a même 4 erreurs :



1) if(empty($email)) => if(!empty($email))

Il faut effectivement mettre un point d'exclamation, car tu veux ajouter l'avis si l'email n'est pas vide



2) tableVALUES => table VALUES

Il faut un espace



3) "INSERT INTO table VALUES ('', '$email', '$nom', '$message')"

=> "INSERT INTO table VALUES (NULL, '$email', '$nom', '$message')"

ou

=> "INSERT INTO table (champEmail, champNom, champMessage) VALUES ('$email', '$nom', '$message')"

Je ne sais plus si ma première requête marchera. Mais l'identifiant, il ne faut pas lui envoyer '', sinon il va te jeter (vu que ton identifiant est un entier et que tu lui donnes une chaine de caractères). La deuxième requête marche forcément (si tu remplaces champEmail... par les noms des champs dans ta table)



4)
=>

Le / avant le > permet de fermer directement la balise. Ton formulaire va donc du début à la fin DE TA LIGNE.

En enlevant le /, il ira de la balise jusqu'à la balise
Tom
2010-09-30 02:36:50 UTC
Je ne vwa pa pk ca marche pas


Ce contenu a été initialement publié sur Y! Answers, un site Web de questions-réponses qui a fermé ses portes en 2021.
Loading...