schats Posté 28 Mai 2006 Posté 28 Mai 2006 (modifié) bonjour j'ai un petit problème pour l'inscription a un newsletter <form method="post" action="index.php"><input name="email"><br/> <label><input type="radio" name="inscription" value="inscription" /> inscription</label><br /> <label><input type="radio" name="desiscription" value="desinscription" /> desinscription</label><br /> <input type="submit" name=" enregistrer" value="enregistrer" /></li><br/> </form><?php mysql_connect($host,$username,$password); mysql_select_db($bdd_name); if (isset($_POST['email'],$_POST['inscription'],$_POST['desinscription'])){ $email = htmlentities($_POST['email'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité $inscription = htmlentities($_POST['inscription'], ENT_QUOTES); $desinscription = htmlentities($_POST['desinscription'], ENT_QUOTES); // On peut enfin enregistrer :o) mysql_query("INSERT INTO menbres VALUES('', '" . $email . "','" . $inscription . "','" . $desinscription . "')");}mysql_close(); ?> le blème cela ne me l'enregistre pas dans la table membres et aussi a l'adresse cela donne http://toutetrien.redby.info/email inscription desinscription ++&& inscription merci de m'aider Modifié 28 Mai 2006 par schats
MS-DOS_1991 Posté 28 Mai 2006 Posté 28 Mai 2006 (modifié) Salut Tu as plusieurs erreurs dans ton code: Les boutons radio dans les formulaires doivent obligatoirement avoir le même attribut name Tu ne dois pas mettre d'espaces dans le nom de tes champs de formulaires Tu as oublié un / pour fermer ta première balise input (email) et tu as inséré une balise </li> qui n'a rien à y faire o_0 La fonction isset() de PHP ne prend qu'un argument qui est la variable à tester (dans ton code tu en as mis 3) ... les autres erreurs découlent principalement de celles-ci Essaies avec ceci: <form method="post" action="index.php"><input name="email" /><br/><label><input type="radio" name="action" value="inscription" /> inscription</label><br /><label><input type="radio" name="action" value="desinscription" /> desinscription</label><br /><input type="submit" name="enregistrer" value="enregistrer" /></li><br/></form><?phpmysql_connect($host,$username,$password);mysql_select_db($bdd_name);if (isset($_POST['email']) AND isset($_POST['inscription']) AND isset($_POST['desinscription'])){$email = htmlentities($_POST['email'], ENT_QUOTES);$action = htmlentities($_POST['action'], ENT_QUOTES);mysql_query("INSERT INTO `membres` VALUES('', '" .$email."','".$action."')");}mysql_close();?> P.S: Le nom de ta table est -sans doute- mal orthographié: tu l'as écrit menbres P.P.S: Je n'ai pas regardé de près ta requête par fainéantise (oui, je ne suis pas encore bien réveillé ) Modifié 28 Mai 2006 par MS-DOS_1991
schats Posté 28 Mai 2006 Auteur Posté 28 Mai 2006 (modifié) ok mais maintenant il n'enregistre pas , inscription et desinscription sont en int . maintenant j'ai un second problème de même envergure sur ma page skyblog.php il y a un problème il me met Column count doesn't match value count at row 1 code php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>bienvenu sur l'annuaire des blog de skyblog </title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <!-- -------------- ici code html à corriger ------------------ --> <table width="80%" border="0" cellspacing="2" align="center" > <center> <script Language="JavaScript" SRC="http://www.informatiquegifs.com/service/heure/fleur2/fichier.js"></script> <a href="http://w2.webreseau.com/fr/services/guestbook/messages.asp?id=636678"><img src="livre5.xhtml.gif" alt="" /></a> <img src="images.xhtml.bmp" border="0" width="39" height="18" alt="" />cliquer ici pour accèder au livre d'or. <script language="JavaScript" src="http://w2.webreseau.com/fr/services/refereur/refereursubmit.asp"></script> <a href="java script:showrefereur(636896)"><img src="http://w2.webreseau.com/fr/services/refereur/bouton/bouton15.gif" border="0"></a> </center><br /><br /></center> <br /><br /> <h1><b><center>l'annuaire des blog de skyblog</center></b></h1><br /><br /><?phpmysql_connect("sql.redby.info", "toutetrien3", "*******");mysql_select_db("toutetrien3");// --------------- Etape 1 -----------------// Si un message est envoyé, on l'enregistre// -----------------------------------------if (isset($_POST['pseudo']) AND isset($_POST['adresse']) AND isset($_POST['commentaire'])){ $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité $adresse = htmlentities($_POST['adresse'], ENT_QUOTES); $commentaire = htmlentities($_POST['commentaire'], ENT_QUOTES); // De même pour le message $commentaire = nl2br($commentaire); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br /> // On peut enfin enregistrer ) $req = mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $adresse . "', '" . $commentaire . "');") or die (mysql_error());}else{ echo'Erreur:votre pseudo votre commentaire ou votre adresse n\'est pas inscrit'}?> <form action="" method="post"> <p>Pseudo : <input type="text" name="pseudo" /></p> <p>Adresse : <input type="text" name="adresse" value="http://" /></p> <p>Commentaire:<br /><textarea name="commentaire" rows="4" cols="30"></textarea></p> <p><input type="submit" value="Envoyer" /></p> </form> <p class="pages"><?php// --------------- Etape 2 -----------------// On écrit les liens vers chacune des pages// -----------------------------------------// On met dans une variable le nombre de messages qu'on veut par page$nombreDeMessagesParPage = 10; // Essayez de changer ce nombre pour voir )// On récupère le nombre total de messages$retour = mysql_query('SELECT COUNT(*) FROM skyblog');$totalDesMessages = mysql_result($retour, 0);// On calcule le nombre de pages à créer$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);// Puis on fait une boucle pour écrire les liens vers chacune des pagesecho 'Page : ';for ($i = 1; $i <= $nombreDePages; $i++){ echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';}?> </p><?php// --------------- Etape 3 ---------------// Maintenant, on va afficher les messages// ---------------------------------------if (isset($_GET['page'])){ $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)}else // La variable n'existe pas, c'est la première fois qu'on charge la page{ $page = 1; // On se met sur la page 1 (par défaut)}// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;$reponse = mysql_query('SELECT * FROM skyblog ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);echo "<table>\n";while($donnees = mysql_fetch_array($reponse)){ echo '<tr><td>' .$donnees['pseudo'] . '</td><td>' .$donnees['adresse'] . '</td><td>' .$donnees['commentaire'] .'</td></tr>';}echo "</table>\n";mysql_close(); // On n'oublie pas de fermer la connexion à MySQL;o)?> </body></html> merci pour vos deux réponce Modifié 28 Mai 2006 par schats
MS-DOS_1991 Posté 28 Mai 2006 Posté 28 Mai 2006 ok mais maintenant il n'enregistre pas , inscription et desinscription sont en int . Je ne comprends pas : le principe d'une newsletter, c'est que si le visiteur coche la case "désinscription", tu dois faire une requête DELETE FROM xxx WHERE email = $email non ? Pourquoi stocker un int avec l'action qu'il demande alors que tu sais que s'il y a une ligne avec son email c'est qu'il est inscrit ?
schats Posté 28 Mai 2006 Auteur Posté 28 Mai 2006 (modifié) Pourquoi stocker un int avec l'action qu'il demande alors que tu sais que s'il y a une ligne avec son email c'est qu'il est inscrit ? en fait c c'est même si il est pas inscrit il peut s'inscrire donc le mail est deja dans la table menbre . pour les inscription et desinscription il faudrait alors faire deux requete ? tu pence que comme je voulais faire c'était pas bon ??? Modifié 28 Mai 2006 par schats
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant