besoin d'aide php/mysql

Répondre
boulvail
le 18/04/2007 à 03:43
boulvail
je n'arrive pas a trouver d'où vient mon probleme au niveau de la ligne 15, aidez moi svp

<?
$db = mysql_connect("localhost","root","");
mysql_select_db("contact",$db);

if (isset($_POST["prenom"]) && !empty($_POST["prenom"]) && isset($_POST["email"]) && !empty($_POST["email"]) && isset($_POST["email"]) && !empty($_POST["email"]))
{
$prenom = $_POST["prenom"];
$email = $_POST["email"];
$comment = $_POST["comment"];
$req = "select * from contacts;";
if($result = mysql_query($req))
{
while($data = mysql_fetch_assoc($result))
{
if ($data[email] == $email)
{
echo "deja inscrit";
}
else
{
mysql_query("insert into contacts(prenom, email, comment) values('$prenom','$email','$comment');");
echo "votre message a été posté";
echo "<br>";
echo"<br>";
echo"cette page va etre rediriger dans 5 secondes";
}
break;
}
}
}
else
{
?>
<script>
window.location.href = 'form.php'
</script>
<?
}
?>
LA GLOBULE
le 18/04/2007 à 08:54
LA GLOBULE
Bonjour.

Sur le forum, utilise le bb-code pour afficher ton code PHP, il se mettra en couleur (c'est beaucoup plus lisible pour ceux qui lisent ton code justement :p).

Ensuite, ta ligne 15 doit correspondre à la ligne 21 que l'on voit dans ton message non ?

En tout cas, ton code présente plusieurs choses incohérentes : le while qui break d'entrée (alors que tu pourrais tester directement l'adresse mail dans la requete SQL), tu n'affiches pas les erreurs de tes requetes SQL (donc si elle plante, tu n'as aucun moyen de le voir, et tu ne peux donc pas comprendre pourquoi cela ne fonctionne pas), et tu n'escapes pas les variables que tu colles dans tes requetes SQL.

Un code plus propre serait :

<?php
$db = mysql_connect("localhost", "root", "") or die ('Echec connexion MySQL');
mysql_select_db("contact",$db) or die ('Echec selection base');

if (isset($_POST['prenom']) && !empty($_POST['prenom']) && isset($_POST['email']) && !empty($_POST['email']) && isset($_POST['comment']) && !empty($_POST['comment'])) {

$req = "SELECT email FROM contacts WHERE email = '".mysql_escape_string($_POST["email"])."'";
$result = mysql_query($req) or die ('Erreur SQL : '.$req.'<br />'.mysql_error());

if (mysql_num_rows($result) == 1) {
?>
deja inscrit
<?php
}
else {
$sql = "insert into contacts(prenom,email,comment) values ('".mysql_escape_string($_POST['prenom'])."', '".mysql_escape_string($_POST['email'])."', '".mysql_escape_string($_POST['comment'])."')";
$req = mysql_query($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error());

?>
votre message a été posté<br /><br />cette page va etre rediriger dans 5 secondes
<?php
}
}
else {
?>
<script>
window.location.href = 'form.php'
</script>
<?
}
?>


Et est ce que cela résout ton problème ?
Keika
le 19/04/2007 à 08:06
Keika
hmm et de toute facon, a la ligne 15 que l'on voit tu mets:

while($data[email] == $email)


Cependant ca ne serait pas plutot ca qu'il faudrait mettre ?:

while($data['email'] == $email)


En tout cas c'est comme ca que je le ferais... mais ecoute plutot la GLOBULE il est meilleur
Le PHP --> C'est dur !
Bzh
le 19/04/2007 à 13:42
Bzh
Ouai, enfin ne parlons pas de code "propre" lorsque l'on y trouve des redirection en javascript !

<script>window.location.href = 'form.php';</script>


Si l'utilisation de tel artifice est nécessaire, c'est que la construction du site est mal pensé !

Je rappel tout de même la fonction "propre" pour rediriger le navigateur:

<?php 

header( 'Location: ./form.php' );
exit();
?>
boulvail
le 06/05/2007 à 13:37
boulvail
merci les gars ça fait lgt ke je ne me suis pas connecté sur le site javé trouvé d'où venait mon probleme :p :) alors g oublié de reverifier les postes ici ;p ;D merciii qd meme
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours