Newsletter débutant

Newsletter débutant - PHP - Programmation

Marsh Posté le 24-10-2006 à 19:38:31    

Bonjour, j'ai un petit problème avec ma newsletter (le début)
 
http://jerome.monprojet.info/The-Sapiens
 
Voici le formulaire ou l'on insère l'email
 

Citation :

<form action="insert.php" target="mainframe" method="post">
 
<table width="100%" height="100%" background="images/sapiens_02_02.gif">
<tr><td>
 
<table width="100%">
<tr><td align="right">
<font color="2D2D2D">e-mail: <input class="login" type="text" name="email" value="">
<input type="submit" value="Go" class="newsletter" name="choix">
</td></tr><tr><td valign="center" align="right">
<fieldset><label>
<input type="checkbox" class="chk" name="chkbox1" value="1">
<font color="2D2D2D">Uitschrijven</font>
</label></fieldset></tr></table>
 
</td></tr></table>
 
</form>


 
Et ensuite l'écriture/l'éffacement dans la base de données
 

Citation :

<?
if ($email!="" )
{
$server = "xxx";  
$user = "xxx";    
$pw = "xxx";  
$base = "xxx";
 
MYSQL_CONNECT($server,$user,$pw) or die("Probeer opnieuw <img src='../../images/smileys/smiley6.gif'>" );  
mysql_select_db("$base" )  or die("Probeer opnieuw <img src='../../images/smileys/smiley6.gif'>" );
 
$requet = "SELECT * FROM NEWSLETTER ORDER";
$resulta = mysql_query( "$requet" );
 
if ($email!=$row[email])
{
$sql = mysql_query("INSERT INTO NEWSLETTER VALUES ('','$email')" );
echo '<table width=100% height=100%><tr><td align=center valign=center>You have been added to the mailing list!</td></tr></table>';
}
elseif ($chkbox1==1)
{
$sql = mysql_query("DELETE FROM NEWSLETTER WHERE email='$email'" );
echo '<table width=100% height=100%><tr><td align=center valign=center>You have been deleted from the mailing list!</td></tr></table>';
}  
}
?>


 
Il ajoute sans problèmes mais impossible de supprimer un email...
Une idée?


Message édité par jeromeke le 24-10-2006 à 19:39:10
Reply

Marsh Posté le 24-10-2006 à 19:38:31   

Reply

Marsh Posté le 24-10-2006 à 20:47:26    

$chkbox = $_POST['chkbox1'];
 
Je pense pas que les chiffres soient mettables ds les var

Reply

Marsh Posté le 24-10-2006 à 21:10:00    

Comme d'hab dans ce genre de cas, affiche les éventuels messages d'erreurs de mysql plutôt que les ignorer :)
 
(bizarre de mélanger néerlandais et anglais sinon :D)

Reply

Marsh Posté le 24-10-2006 à 21:14:04    

Rien à voir avec le sujet, mais pourquoi tu ouvres un popup au lieu de laisser le site dans sa fenêtre de départ  [:mister_k]  
 

Reply

Marsh Posté le 24-10-2006 à 22:58:03    

Citation :

Comme d'hab dans ce genre de cas, affiche les éventuels messages d'erreurs de mysql plutôt que les ignorer :)
 
(bizarre de mélanger néerlandais et anglais sinon :D)


 
Il n'y a pas d'erreurs :(
Le site est pour un groupe néerlandophone (partie admin)  mais le public peut être international (partie visible) :)
 
:(:(:(
 
Je pense que l'erreur se situe au niveau du checkbox mais je ne sais pas ou?
Quoi que je fasse il ajoute toujours, meme si je coche "Uitschrijven" (désinscrire)


Message édité par jeromeke le 24-10-2006 à 23:31:37
Reply

Marsh Posté le 24-10-2006 à 23:12:27    

Si c'est le code complet et qu'il n'affiche pas le message de suppression, on va miser sur un code basé sur une vieille version de php, ajoute l'initialisation de $chkbox1 dans ton code, avec la vérif de l'existance de $_POST['chkbox1'] :)
 
(WiiDS a donné la base, je vais pas recopier bêtement :))
 
Ah, vu l'edit et en regardant le code dans son ensemble, ça veut en effet rien dire :D
 
La requête a un ORDER en trop (ou un paramètre qui manque, au choix), il manque un mysql_fetch_array pour lire les résultats (dans une boucle peut-être, suivant ce que tu veux faire), il manque les ' autour du nom du champs de $row. Bref, il y a des corrections à faire :D


Message édité par naceroth le 24-10-2006 à 23:19:05
Reply

Marsh Posté le 24-10-2006 à 23:29:37    

J'y suis presque, sauf que maintenant il ne fait plus qu'effacer, il n'arrive plus a ajouter!
(le monde a l'envers)
 :cry:  :cry:  :cry:  
 

Citation :

<?
if ($email!="" )
{
$server = "xxx";  
$user = "xxx";    
$pw = "xxx";  
$base = "xxx";
 
MYSQL_CONNECT($server,$user,$pw) or die("Probeer opnieuw <img src='../../images/smileys/smiley6.gif'>" );  
mysql_select_db("$base" )  or die("Probeer opnieuw <img src='../../images/smileys/smiley6.gif'>" );
 
$requet = "SELECT * FROM NEWSLETTER";
$resulta = mysql_query( "$requet" );
 
while( $row = mysql_fetch_array($resulta) )
{
if ($email!=$row[email])
{
$sql = mysql_query("INSERT INTO NEWSLETTER VALUES ('','$email')" );
echo '<table width=100% height=100%><tr><td align=center valign=center>You have been added to the mailing list!</td></tr></table>';
}
elseif ($chkbox1==$_POST['chkbox1'])
{
$sql = mysql_query("DELETE FROM NEWSLETTER WHERE email='$email'" );
echo '<table width=100% height=100%><tr><td align=center valign=center>You have been deleted from the mailing list!</td></tr></table>';
}  
}
}
?>


 
On dirait qu'il envoit tjs la valeur du checkbox coché ou decoché?


Message édité par jeromeke le 24-10-2006 à 23:30:26
Reply

Marsh Posté le 24-10-2006 à 23:53:45    

Ca veut dire que la condition $email!=$row[email] n'est jamais vrai surtout, fait un echo des valeurs avant le test pour voir ce que ca donne
 
//edit :
 
Par contre, pour peu que tu sois en register_global on, ton deuxième test est toujours vrai lui, c'est pas vraiment ce que j'entendais par "initialisation de la variable" :D


Message édité par naceroth le 24-10-2006 à 23:56:09
Reply

Marsh Posté le 25-10-2006 à 00:32:52    

J'ai abandonné je perds trop de temps, je vais bêtement faire un link vers une page unsubscribe pour se désinscrire :(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed