Aller au contenu

petit problème dans le code


schats

Sujets conseillés

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é par schats
Lien vers le commentaire
Partager sur d’autres sites

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 :rolleyes:

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>
<?php
mysql_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é :P )

Modifié par MS-DOS_1991
Lien vers le commentaire
Partager sur d’autres sites

Posté (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 />
<?php
mysql_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 pages
echo '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é par schats
Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

Posté (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é par schats
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...