par
supercanard » 14 déc. 2006, 11:54
Bonjour,
Je suis nouveau sur le forum, débutant en php. En fait je suis plutôt dans le design (xhtml, css, toshop etc...) mais je pense m'orienter petit à petit vers le développement. Bon ça c'etait juste histoire de me présenter vite fait
Alors voilà, je suis en train d'essayer de faire un script trés simple d'inscription a une newsletter.
Si on entre son adresse, qu'elle est inexistante dans la base, on s'inscrit, si elle existe on se désinscrit.
Il semblerais que j'ai un problème sur mon script puisque la fonction de désinscription ne marche pas? Je me retrouve donc avec des doublons dans la base.
J'ai commenté mon code au mieux. Je cherche l'erreur mais je sèche... :
Code : Tout sélectionner
<?php
// SI FORMULAIRE SUBMIT
if (isset($_POST['email'])) {
$email= addslashes($email); // Apostrophes et
$email= htmlentities($email); // code HTML
$sql= "SELECT email FROM newsletter_email";
$req= mysql_query($sql) or die ('Erreur : '.$sql.'<br />'.mysql_error());
$data= mysql_fetch_assoc($req);
// A FAIRE : Controler un champ vide
// SI EMAIL PRESENT DANS LA BASE ON L'EFFACE
if ($data['email'] == $email) {
$sql= "DELETE FROM newsletter_email WHERE email=$email";
$req= mysql_query($sql) or die ('Erreur : '.$sql.'<br />'.mysql_error());
echo "<p class='alerte'>Votre adresse email viens d'être supprimé. Vous ne recevrez plus notre newsletter.</p>";
exit();
}
// SINON ON L'AJOUTE
else {
$sql= "INSERT INTO newsletter_email (id,email) VALUES ('','$email')";
mysql_query($sql) or die ('Erreur : '.$sql.'<br />'.mysql_error());
echo "<p class='alerte'>Inscription réussie. Vous recevrez notre newsletter à l'adresse eMail $email.</p>";
}
}
?>
Sinon j'ai aussi une autre question a propos de la fonction htmlentities.
Si je limite un formulaire a 250 caractères. Il y a bien 250 caractères, mais une fois la fonction htmlentities appliqué les caractères spéciaux sont remplacés, donc on se retrouve avec plus de 250 caractère.
Et a l'insertion dans la base dans un champ varchar, il y en a donc qui sautent...

Bonjour,
Je suis nouveau sur le forum, débutant en php. En fait je suis plutôt dans le design (xhtml, css, toshop etc...) mais je pense m'orienter petit à petit vers le développement. Bon ça c'etait juste histoire de me présenter vite fait :wink:
Alors voilà, je suis en train d'essayer de faire un script trés simple d'inscription a une newsletter.
Si on entre son adresse, qu'elle est inexistante dans la base, on s'inscrit, si elle existe on se désinscrit.
Il semblerais que j'ai un problème sur mon script puisque la fonction de désinscription ne marche pas? Je me retrouve donc avec des doublons dans la base.
J'ai commenté mon code au mieux. Je cherche l'erreur mais je sèche... :
[code]
<?php
// SI FORMULAIRE SUBMIT
if (isset($_POST['email'])) {
$email= addslashes($email); // Apostrophes et
$email= htmlentities($email); // code HTML
$sql= "SELECT email FROM newsletter_email";
$req= mysql_query($sql) or die ('Erreur : '.$sql.'<br />'.mysql_error());
$data= mysql_fetch_assoc($req);
// A FAIRE : Controler un champ vide
// SI EMAIL PRESENT DANS LA BASE ON L'EFFACE
if ($data['email'] == $email) {
$sql= "DELETE FROM newsletter_email WHERE email=$email";
$req= mysql_query($sql) or die ('Erreur : '.$sql.'<br />'.mysql_error());
echo "<p class='alerte'>Votre adresse email viens d'être supprimé. Vous ne recevrez plus notre newsletter.</p>";
exit();
}
// SINON ON L'AJOUTE
else {
$sql= "INSERT INTO newsletter_email (id,email) VALUES ('','$email')";
mysql_query($sql) or die ('Erreur : '.$sql.'<br />'.mysql_error());
echo "<p class='alerte'>Inscription réussie. Vous recevrez notre newsletter à l'adresse eMail $email.</p>";
}
}
?>
[/code]
Sinon j'ai aussi une autre question a propos de la fonction htmlentities.
Si je limite un formulaire a 250 caractères. Il y a bien 250 caractères, mais une fois la fonction htmlentities appliqué les caractères spéciaux sont remplacés, donc on se retrouve avec plus de 250 caractère.
Et a l'insertion dans la base dans un champ varchar, il y en a donc qui sautent... :shock: