Control contenu table si faux insertion

Répondre
Forrest
le 23/07/2009 à 23:37
Forrest
Bonsoir,
J'ai un formulaire dans lequel j'ai un champ email.
Je veux vérifié que cet email n'existe pas. Si pas d'email identique alors j'enregistre l'email. Pour cela :

<?php
//verification si email existant
mysql_select_db($database_emoi, $emoi);
$requete=mysql_query("SELECT * FROM insc_news WHERE email='$email'");
$numm=mysql_num_rows($requete);

if($email <> 0){
?>

Mais à partir de là ???


et après j'enregistre l'email

<?php
$sql_news = "INSERT INTO insc_news (email) VALUES ('$email')";
$insert = mysql_query ($sql_news);
mysql_close();
?>


Merci de votre aide
Jean-Pierre
LA GLOBULE
le 24/07/2009 à 00:33
LA GLOBULE
Pourquoi ne testes tu pas la valeur de $numm ?

if ($numm == 0) tu fais l'insert.

Sinon toujours les mêmes remarques récurrentes :
- vous ne testez pas les valeurs de retour de mysql_query (tu peux avoir une erreur sql et dans ce cas la tu dois la catcher et la traiter quand mysql_query retourne false)
- vous ne vous protegez pas des injections SQL (il faut utiliser mysql_real_escape_string pour cela).
Forrest
le 24/07/2009 à 01:23
Forrest
Salut la Globule, merci pour ta réponse. J'ai des pb avec les {}, ça ne marche pas.

<?php
//insertion e-mail dans newsletter si OK
if ($recuFiscal == "E-mail")
{
//verification si email existant
mysql_select_db($database_emoi, $emoi);
$requete=mysql_query("SELECT * FROM insc_news WHERE email='$email' ");
$numm=mysql_num_rows($requete);
}
if ($numm == 0)

$sql_news = "INSERT INTO insc_news (email) VALUES ('$email')";
$insert = mysql_query ($sql_news);
mysql_close();
?>
Jean-Pierre
LA GLOBULE
le 24/07/2009 à 09:00
LA GLOBULE
J'ai des pb avec les {}, ça ne marche pas.


Ben ca fonctionnerait si tu en mettais :)

Sinon toujours les mêmes remarques récurrentes :
- vous ne testez pas les valeurs de retour de mysql_query (tu peux avoir une erreur sql et dans ce cas la tu dois la catcher et la traiter quand mysql_query retourne false)
- vous ne vous protegez pas des injections SQL (il faut utiliser mysql_real_escape_string pour cela).
Forrest
le 24/07/2009 à 17:10
Forrest
Hello !

J'ai mis en application, ça marche, sauf la ligne en commentaire, il semblerait que la fonction ne marche pas avec la version php activée chez ovh. Je vais chercher sur le net une solution à moins que tu en ais une... En attendant, je fonctionne avec la ligne précédente en attendant que je trouve mieux, mais du coup m^me faille !

En attendant merci pur ton aide.

<?php
//insertion e-mail dans newsletter si OK
if ($recuFiscal == "E-mail")
{
//verification si email existant
mysql_select_db($database_emoi, $emoi);
$email_requete = $email;
//$email_requete = mysql_real_escap_string ($email);
$requete = mysql_query("SELECT * FROM insc_news WHERE email='$email_requete'");
$numm = mysql_num_rows($requete);

if ($numm == 0)
{
$sql_news = "INSERT INTO insc_news (email) VALUES ('$email_requete')";
$insert = mysql_query ($sql_news);
}
}
mysql_close();
?>
Jean-Pierre
LA GLOBULE
le 24/07/2009 à 17:59
LA GLOBULE
Je me suis gourré, ce n'est pas mysql_real_escap_string mais mysql_real_escape_string.

PS : pense au BB-Code stp quand tu colles du code sur le forum... Et check tes mysql_query.
Forrest
le 24/07/2009 à 20:44
Forrest
Ok je vais modifier demain je fais une pose mais plus chez moi parti en vacances mais avec mon pc pour continuer à travailler sur ce site pour une asso que nous venons de lancer pour les enfants atteints par des maladies orphelines.

Pour le BB-Code, promis je le ferai la prochaine fois.

Merci à toi.

Jean-Pierre
Jean-Pierre
Répondre

Ecrire un message

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