Aller au contenu

Sujets conseillés

Posté (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é par schats
Posté (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 :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
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
Posté
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 ?

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

Veuillez vous connecter pour commenter

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



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