par
Zurg » 07 avr. 2005, 17:39
Re-bonjour tout le monde,
voici mon problème:
suite aux divers conseils que j'avais obtenu pour tester la présence d'une adresse mail dans une table, j'avais fait ce script (inscription à une newsletter) qui marchait très bien en local.
<?php
include("Connections/distant/cnn.php");
$mail=$_POST['mail'];
$type=$_POST['type'];
$reponse=$_POST['reponse'];
// tests si les champs sont remplis correctement
if (empty($mail)) {
print("Formulaire incomplet : veuillez saisir votre adresse mail<br> <a href=\"javascript:history.go(-1)\">Retour au formulaire</a><br>");
exit;
}
if (!(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $mail)))
{
echo ("L'adresse est invalide, veuillez re-saisir votre adresse, svp<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
exit;
}
if (empty($type)) {
print("Formulaire incomplet : veuillez cocher une case correspondant à votre type (ex : élève...), svp<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
exit;
}
if (empty($reponse)) {
print("Formulaire incomplet : veuillez cocher la case 'oui' ou 'non' svp. <br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
exit;
}
// fin des tests
// Vérification du mail pour éviter les doublons
$requete = "SELECT * FROM abonne WHERE mail='".$mail."'";
$trouve=mysql_query($requete);
if (mysql_num_rows($trouve) != 0)
{
echo "Votre adresse est déjà présente dans la base, merci de votre intérêt et à très bientôt surmonsite.com !<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>";
exit;
}
// si mail non présent
// Ajoute la nouvelle fiche
$query = "INSERT INTO abonne (mail, type, boutik)";
$query .= "VALUES('$mail','$type','$reponse')";
$result = mysql_query($query);
print("Les informations suivantes ont bien été enregistrées :<br>");
print("<b>Adresse mail : </b>".$mail."<br>"."<b>Catégorie :</b> ".$type."<br>"."<b>Voulez-vous recevoir des informations su la boutique? </b>".$reponse."<br>");
print("<br>");
print("Merci, <br>");
print("vous recevrez prochainement des informations sur toutes les activités, les évènements etc...<br>");
print("A bientôt !<br>");
mysql_close();
?>
Sauf que, en ligne, j'ai une erreur du type ligne 46 (correspond au if (mysql_num_rows..)
mysql_num_rows(): supplied argument is not a valid MySQL result resource in /web/Xf/Xo/Xl/public/www/news_ok.php on line 46
Quelqu'un sait-il pourquoi ?
J'avoue que je galère pas mal, je cherche dans le manuel de reférence de mysql, mais ça ne m'aide pas beaucoup...
Pliz Help !!
Re-bonjour tout le monde,
voici mon problème:
suite aux divers conseils que j'avais obtenu pour tester la présence d'une adresse mail dans une table, j'avais fait ce script (inscription à une newsletter) qui marchait très bien en local.
[php]
<?php
include("Connections/distant/cnn.php");
$mail=$_POST['mail'];
$type=$_POST['type'];
$reponse=$_POST['reponse'];
// tests si les champs sont remplis correctement
if (empty($mail)) {
print("Formulaire incomplet : veuillez saisir votre adresse mail<br> <a href=\"javascript:history.go(-1)\">Retour au formulaire</a><br>");
exit;
}
if (!(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $mail)))
{
echo ("L'adresse est invalide, veuillez re-saisir votre adresse, svp<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
exit;
}
if (empty($type)) {
print("Formulaire incomplet : veuillez cocher une case correspondant à votre type (ex : élève...), svp<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
exit;
}
if (empty($reponse)) {
print("Formulaire incomplet : veuillez cocher la case 'oui' ou 'non' svp. <br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
exit;
}
// fin des tests
// Vérification du mail pour éviter les doublons
$requete = "SELECT * FROM abonne WHERE mail='".$mail."'";
$trouve=mysql_query($requete);
if (mysql_num_rows($trouve) != 0)
{
echo "Votre adresse est déjà présente dans la base, merci de votre intérêt et à très bientôt surmonsite.com !<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>";
exit;
}
// si mail non présent
// Ajoute la nouvelle fiche
$query = "INSERT INTO abonne (mail, type, boutik)";
$query .= "VALUES('$mail','$type','$reponse')";
$result = mysql_query($query);
print("Les informations suivantes ont bien été enregistrées :<br>");
print("<b>Adresse mail : </b>".$mail."<br>"."<b>Catégorie :</b> ".$type."<br>"."<b>Voulez-vous recevoir des informations su la boutique? </b>".$reponse."<br>");
print("<br>");
print("Merci, <br>");
print("vous recevrez prochainement des informations sur toutes les activités, les évènements etc...<br>");
print("A bientôt !<br>");
mysql_close();
?>[/php]
Sauf que, en ligne, j'ai une erreur du type ligne 46 (correspond au if (mysql_num_rows..)
[quote]
mysql_num_rows(): supplied argument is not a valid MySQL result resource in /web/Xf/Xo/Xl/public/www/news_ok.php on line 46[/quote]
Quelqu'un sait-il pourquoi ?
J'avoue que je galère pas mal, je cherche dans le manuel de reférence de mysql, mais ça ne m'aide pas beaucoup...
Pliz Help !!