Bouton submit

Fermé
louseb - 1 sept. 2009 à 16:32
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 4 sept. 2009 à 19:32
salut a tous

question con.........
comment ajouter un lien de redirection a un bouton de type submit?

mon formulaire n'accepte pas que je change la valeur de "<form action=........ method=post>". si je change l'action pour rediriger vers ma page ou les messages sont posté sa n'enregistre pas la valeur des champ dans ma bdd.....

c pourquoi je veut agir sur le bouton submit mais tous ce que j'ai essayer ne marche pas..!!!!

merci d'avance

14 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2009 à 16:59
tu veux enregistrer les valeurs de ton formulaire dans la BDD et ensuite rediriger vers une autre page ?

il suffit de mettre dans le script appelé par action=..

au début la partie php d'enregistrement dans la BDD

et ensuite header('Location:ta_page_redirection.htm')

attention avant ce header il ne doit pas y avoir de balise HTML
0
salut Alain et merci de ta réponse.

je doit être complétement con ou bien c le manque de sommeil de ces dernier jours qui me ramollie le cerveau mais je vois pas bien comment mettre en place le scripte que tu me propose........

pourrait tu me dire où est ce que tu le mettrait dans le script qui suis...???

merci d'avance


<!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" lang="fr">
<head>
<title>livre d'or formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="livre_d'or_formulaire.css" href="livre_d'or_formulaire.css" />
</head>
<body>


<?php
if (isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['localisation']) AND isset($_POST['site_internet']) AND isset($_POST['votre_message']) AND isset($_POST['comment_avez_vous_connu_ce_site']) AND isset($_POST['precisez'])) // Si les variables existent
{
//condition qui vérifie si les champ sont remplient et si ils ne le sont pas, sa ouvre une petite popup sans recharger la page

if ($_POST['pseudo'] == '')
{
echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ pseudo');history.back();</script>";

exit();}

elseif ($_POST['localisation'] == '')
{
echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ localisation.');history.back();</script>";
exit();}

elseif ($_POST['votre_message'] == '')
{
echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ message.');history.back();</script>";
exit();}

// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("coursphp");

// une requête pour enregistré l'heure et la date a laquel le message a était poster
$date = date("Y-m-d");
$heure = date("H:i:s");

// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$precisez = mysql_real_escape_string(htmlspecialchars($_POST['precisez']));
$comment_avez_vous_connu_ce_site = mysql_real_escape_string(htmlspecialchars($_POST['comment_avez_vous_connu_ce_site']));
$votre_message = mysql_real_escape_string(htmlspecialchars($_POST['votre_message']));
$site_internet = mysql_real_escape_string(htmlspecialchars($_POST['site_internet']));
$localisation = mysql_real_escape_string(htmlspecialchars($_POST['localisation']));
$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));


// Ensuite on enregistre le message
mysql_query("INSERT INTO livre_d_or VALUES('', '$pseudo', '$mail', '$localisation', '$site_internet', '$votre_message', '$comment_avez_vous_connu_ce_site', '$precisez', '$date', '$heure') ");

// On se déconnecte de MySQL
mysql_close();
}

// Tout d'abord le formulaire :
?>



<form action="livre_d_or_formulaire.php" method="post">

<p>
<fieldset>
<legend>un peu de vous</legend>
<pre><p><label for="pseudo">Votre pseudo: </label><input type="text" name="pseudo" id="pseudo" tabindex="10" size="50" maxlength="30"/></p></pre>
<pre><p><label for="mail">**Votre adresse email: </label><input type="text" name="mail" id="mail" tabindex="20" size="50" maxlength="40"/></p></pre>
<pre><p><label for="localisation">Votre ville, région: </label><input type="texte" name="localisation" id="localisation" tabindex="30" size="50" maxlength="50"/></p></pre>
<pre><p><label for="site_internet">*Votre site internet: </label><input type="site_internet" name="site_internet" id="site_internet" tabindex="40" size="50" maxlength="50"/></p></pre>
</fieldset>

<fieldset>
<legend>exprimez vous</legend>
<pre><p><label for="votre_message">votre message:</label> <textarea name="votre_message" id="votre_message" tabindex="50" rows="7" cols="45"></textarea></p></pre>

<pre><p><label for="comment_avez_vous_connu_ce_site">*comment avez vous connu ce site? </label><select name="comment_avez_vous_connu_ce_site" id="comment_avez_vous_connu_ce_site" tabindex="60">
<option value="amis">amis</option>
<option value="forum">forum</option>
<option value="moteur_de_recherche">moteur de recherche</option>
<option value="par_hasard">par hasard</option>
<option value="autres">autres</option>
<option value="" selected="selected"></option>
</select></p></pre>

<pre><p><label for="precisez">*précisez: </label><input type="texte" name="precisez" id="precisez" tabindex="70" size="50" maxlength="50" /></p></pre>

</fieldset>

<p>*mention facultative<br/>
**celle-ci ne sera pas visible des autres utilisateurs</p>

<input type="submit" value="Envoyer" onclick="c:\wamp\www\tests\livre_d_or_diffusion" />
</p>

</form>

</body>
</html>
0
Je sais pas si j'ai bien compris mais je tente ...

Tu envoie par action tes variables $_POST a ta nouvelle page, et tu veux enregistrer les données dans ta BDD et faire une redirection c'est cela ?

Si oui, au dessus du doctype tu fais ton enregistrement puis le header comme montré par Alain42

cela donnera

<?php
if (isset($_POST['tavariable))
{
mysql_query('tarequetesql');
header('Location: tapage.php');
}

?>
DOCTYPE
ta page
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2009 à 17:22
le bouton submit ne peut pas faire du onclick et du submit en même temps

essayes comme ça:
<?php
if (isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['localisation']) AND isset($_POST['site_internet']) AND isset($_POST['votre_message']) AND isset($_POST['comment_avez_vous_connu_ce_site']) AND isset($_POST['precisez'])) // Si les variables existent
{
	//condition qui vérifie si les champ sont remplient et si ils ne le sont pas, sa ouvre une petite popup sans recharger la page

	if ($_POST['pseudo'] == '')
	{
	echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ pseudo');history.back();</script>";

	exit();}

	elseif ($_POST['localisation'] == '')
	{
	echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ localisation.');history.back();</script>";
	exit();}

	elseif ($_POST['votre_message'] == '')
	{
	echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ message.');history.back();</script>";
	exit();}

	// D'abord, on se connecte à MySQL
	mysql_connect("localhost", "root", "");
	mysql_select_db("coursphp");

	// une requête pour enregistré l'heure et la date a laquel le message a était poster
	$date = date("Y-m-d");
	$heure = date("H:i:s");

	// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
	$precisez = mysql_real_escape_string(htmlspecialchars($_POST['precisez']));
	$comment_avez_vous_connu_ce_site = mysql_real_escape_string(htmlspecialchars($_POST['comment_avez_vous_connu_ce_site']));
	$votre_message = mysql_real_escape_string(htmlspecialchars($_POST['votre_message']));
	$site_internet = mysql_real_escape_string(htmlspecialchars($_POST['site_internet']));
	$localisation = mysql_real_escape_string(htmlspecialchars($_POST['localisation']));
	$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
	$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));


	// Ensuite on enregistre le message
	$enr=mysql_query("INSERT INTO livre_d_or VALUES('', '$pseudo', '$mail', '$localisation', '$site_internet', '$votre_message', '$comment_avez_vous_connu_ce_site', '$precisez', '$date', '$heure') ");

	// On se déconnecte de MySQL
	mysql_close();
	//redirection, si tput a bien marché on ne réaffichera pas ainsi le formulaire
	if($enr){
		header('Location:livre_d_or_diffusion.html');
	exit;
	}
}

// Tout d'abord le formulaire : //remarque: j'ai "descendu" içi toute l'entête
?>
<!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" lang="fr">
<head>
<title>livre d'or formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="livre_d'or_formulaire.css" href="livre_d'or_formulaire.css" />
</head>
<body>




<form action="livre_d_or_formulaire.php" method="post">

<p>
<fieldset>
<legend>un peu de vous</legend>
<pre><p><label for="pseudo">Votre pseudo: </label><input type="text" name="pseudo" id="pseudo" tabindex="10" size="50" maxlength="30"/></p></pre>
<pre><p><label for="mail">**Votre adresse email: </label><input type="text" name="mail" id="mail" tabindex="20" size="50" maxlength="40"/></p></pre>
<pre><p><label for="localisation">Votre ville, région: </label><input type="texte" name="localisation" id="localisation" tabindex="30" size="50" maxlength="50"/></p></pre>
<pre><p><label for="site_internet">*Votre site internet: </label><input type="site_internet" name="site_internet" id="site_internet" tabindex="40" size="50" maxlength="50"/></p></pre>
</fieldset>

<fieldset>
<legend>exprimez vous</legend>
<pre><p><label for="votre_message">votre message:</label> <textarea name="votre_message" id="votre_message" tabindex="50" rows="7" cols="45"></textarea></p></pre>

<pre><p><label for="comment_avez_vous_connu_ce_site">*comment avez vous connu ce site? </label><select name="comment_avez_vous_connu_ce_site" id="comment_avez_vous_connu_ce_site" tabindex="60">
<option value="amis">amis</option>
<option value="forum">forum</option>
<option value="moteur_de_recherche">moteur de recherche</option>
<option value="par_hasard">par hasard</option>
<option value="autres">autres</option>
<option value="" selected="selected"></option>
</select></p></pre>

<pre><p><label for="precisez">*précisez: </label><input type="texte" name="precisez" id="precisez" tabindex="70" size="50" maxlength="50" /></p></pre>

</fieldset>

<p>*mention facultative<br/>
**celle-ci ne sera pas visible des autres utilisateurs</p>

<input type="submit" value="Envoyer" />
</p>

</form>

</body>
</html>
0
merci Alain

tu as juste rajouté la ligne :

//redirection, si tput a bien marché on ne réaffichera pas ainsi le formulaire
if($enr){
header('Location:livre_d_or_diffusion.html');
exit;
}


descendu le doctype en dessous de toute ma partie php et supprimé le onclick.....???
c'est ça?

je vient d'essayer et rien a faire, il reste toujours sur la page formulaire après envoi..... sa ma au moins permis de savoir que l'on pouvait coder en dehors du DOCTYPE..... quel langage au passage il est possible d'y mettre?
0
salut Ardec

ben en faite c'est un livre d'or donc je veut que les données soit stocké sur la base de donnée. je veut qu'une foi le formulaire validé et envoyer le client ce retrouve sur la page ou sont retourné tous les messages qui ont étaient poster dont le sien en première position. le scripte qui exécute le rappel des données de la base de données ce trouve sur une autres pages php.

j'ai peur de comprendre..... tu me propose de mettre tous mon scripte php en dehors du DOCTYPE...???
je savait même pas que c'était possible, il me semblé que tous le script devait être contenu dans les balises "HEAD" et "BODY"....


tu veut bien m'expliquer?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2009 à 17:51
le doctype sert a donner des infos au navigateur, tu peux le mettre après la partie php sachant que cette partie est interprétée par le serveur et ne "part" pas vers le navigateur

a cause du header('Location qui doit être avant toute balise html il faut faire ainsi si on veut l'utiliser

pour ton pb tu as peut être un pb avec ta requette d'enregistrement modifies cette ligne ainsi:

$enr=mysql_query("INSERT INTO livre_d_or VALUES('', '$pseudo', '$mail', '$localisation', '$site_internet', '$votre_message', '$comment_avez_vous_connu_ce_site', '$precisez', '$date', '$heure') ") or die ("Pb requette enr :".mysql_error());
0
je viens d'ajouter le bout de code que tu ma donné.... il me renvoi une parse error sur la ligne 44 qui correspond a ma ligne de requête sql.....

ma requête est bonne et marche correctement tous s'enregistre est renvoyer sur ma page diffusion.php....

ce que j'arrive pas a comprendre c'est qu'avant que je pose des conditions pour les champs "pseudo, localisation et message) que je voulais rendre obligatoire il m'éttait tout a fait possible de redirigé via le <form action....>
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2009 à 18:15
attention il faut bien $enr = devant la requette

modifies ainsi pour voir avec un petit echo

// Ensuite on enregistre le message
	$enr = mysql_query("INSERT INTO livre_d_or VALUES('', '$pseudo', '$mail', '$localisation', '$site_internet', '$votre_message', '$comment_avez_vous_connu_ce_site', '$precisez', '$date', '$heure') ");

	// On se déconnecte de MySQL
	mysql_close();
	//redirection, si tout a bien marché on ne réaffichera pas ainsi le formulaire
	//un petit echo pour voir:
	echo "Enregistrement: ".$enr;
	
	if($enr){
		header('Location:page diffusion.php');
	exit;
	}
0
lol ben ce coup ci l'erreur renvoyer me dit ligne 111...... elle existe même pas et elle est juste après ma balise html de fin.....!!!!

a mon grand désespoir je crois qu'il va falloir me résoudre a mettre un bouton retour sur ma page ce qui n'est pas des plus esthétique on va dire....

une idée me viens a l'esprit alors que j'écris mais je ne sais pas du tous si c'est réalisable n'y comment la mettre en oeuvre si sa l'es.....

ne serait il pas envisageable que la base de données elle même renvoi un fonction qui ferait changer l'adresse de la page.......????
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2009 à 18:44
si tu as une erreur en fin de fichier c'est qu'il te manque une }

certainement celle après

if($enr){
header('Location:page diffusion.php');
exit;
}


sinon ce que tu peux faire aussi c'est mettre tout le code de ta page difusion.php

à la place de la ligne header(...
0
merci alain.

oui en effet il me manquer le } qui englobe toute ma partie envoi après verif des différent champ

de ce qui est de tous mettre sur la même page, je n'y tien pas trop pour des raisons pratique mais bon si il le faut vraiment il faudra bien que je me decide entre cette solution ou un bouton retour....

merci quand même de ton aide...

a au faite, la redirection marche mais elle bipass toujours l'enregistrement des champ dans la base de données
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2009 à 19:34
a au faite, la redirection marche mais elle bipass toujours l'enregistrement des champ dans la base de données

alors la je ne comprend pas car on fait la redirection que si l'enr a réussi et plus haut tu disait que l'enr était ok

donnes le code actuel de ta page tu as du mélanger des trucs
0
voici le code actuel que je viens de remettre exactement comme tu m'avait dit de le mettre....

j'avais dû me planter quelque par puisque là il ne me fait plus la redirection mais m'enregistre quand même dans la base de données.



<?php
if (isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['localisation']) AND isset($_POST['site_internet']) AND isset($_POST['votre_message']) AND isset($_POST['comment_avez_vous_connu_ce_site']) AND isset($_POST['precisez'])) // Si les variables existent
{
//condition qui vérifie si les champ sont remplient et si ils ne le sont pas, sa ouvre une petite popup sans recharger la page

if ($_POST['pseudo'] == '')
{
echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ pseudo');history.back();</script>";

exit();}

elseif ($_POST['localisation'] == '')
{
echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ localisation.');history.back();</script>";
exit();}

elseif ($_POST['votre_message'] == '')
{
echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ message.');history.back();</script>";
exit();}

// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("coursphp");

// une requête pour enregistré l'heure et la date a laquel le message a était poster
$date = date("Y-m-d");
$heure = date("H:i:s");

// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$precisez = mysql_real_escape_string(htmlspecialchars($_POST['precisez']));
$comment_avez_vous_connu_ce_site = mysql_real_escape_string(htmlspecialchars($_POST['comment_avez_vous_connu_ce_site']));
$votre_message = mysql_real_escape_string(htmlspecialchars($_POST['votre_message']));
$site_internet = mysql_real_escape_string(htmlspecialchars($_POST['site_internet']));
$localisation = mysql_real_escape_string(htmlspecialchars($_POST['localisation']));
$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));


// Ensuite on enregistre le message

$enr = mysql_query("INSERT INTO livre_d_or VALUES('', '$pseudo', '$mail', '$localisation', '$site_internet', '$votre_message', '$comment_avez_vous_connu_ce_site', '$precisez', '$date', '$heure') ");

// On se déconnecte de MySQL
mysql_close();

//redirection, si tout a bien marché on ne réaffichera pas ainsi le formulaire
//un petit echo pour voir:
echo "Enregistrement: ".$enr;

if($enr){
header('Location:page livre_d_or_diffusion.php');
exit;
}
}

// Tout d'abord le formulaire :
?>


<!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" lang="fr">
<head>
<title>livre d'or formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="livre_d'or_formulaire.css" href="livre_d'or_formulaire.css" />
</head>
<body>

<form action="livre_d_or_formulaire.php" method="post">

<p>
<fieldset>
<legend>un peu de vous</legend>
<pre><p><label for="pseudo">Votre pseudo: </label><input type="text" name="pseudo" id="pseudo" tabindex="10" size="50" maxlength="30"/></p></pre>
<pre><p><label for="mail">**Votre adresse email: </label><input type="text" name="mail" id="mail" tabindex="20" size="50" maxlength="40"/></p></pre>
<pre><p><label for="localisation">Votre ville, région: </label><input type="texte" name="localisation" id="localisation" tabindex="30" size="50" maxlength="50"/></p></pre>
<pre><p><label for="site_internet">*Votre site internet: </label><input type="site_internet" name="site_internet" id="site_internet" tabindex="40" size="50" maxlength="50"/></p></pre>
</fieldset>

<fieldset>
<legend>exprimez vous</legend>
<pre><p><label for="votre_message">votre message:</label> <textarea name="votre_message" id="votre_message" tabindex="50" rows="7" cols="45"></textarea></p></pre>

<pre><p><label for="comment_avez_vous_connu_ce_site">*comment avez vous connu ce site? </label><select name="comment_avez_vous_connu_ce_site" id="comment_avez_vous_connu_ce_site" tabindex="60">
<option value="amis">amis</option>
<option value="forum">forum</option>
<option value="moteur_de_recherche">moteur de recherche</option>
<option value="par_hasard">par hasard</option>
<option value="autres">autres</option>
<option value="" selected="selected"></option>
</select></p></pre>

<pre><p><label for="precisez">*précisez: </label><input type="texte" name="precisez" id="precisez" tabindex="70" size="50" maxlength="50" /></p></pre>

</fieldset>

<p>*mention facultative<br/>
**celle-ci ne sera pas visible des autres utilisateurs</p>

<input type="submit" value="Envoyer"/>
</p>

</form>

</body>
</html>
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2009 à 22:36
ça marche comme ça chez moi sans enr dans la base puisque je n'en ai pas mais la redirection se fait bien

j'ai modifié mysql_real_escape_string en mysql_escape_string

et mis des traces

<?php
if (isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['localisation']) AND isset($_POST['site_internet']) AND isset($_POST['votre_message']) AND isset($_POST['comment_avez_vous_connu_ce_site']) AND isset($_POST['precisez'])) // Si les variables existent
{
//condition qui vérifie si les champ sont remplient et si ils ne le sont pas, sa ouvre une petite popup sans recharger la page

if ($_POST['pseudo'] == '')
{
echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ pseudo');history.back();</script>";

exit();}

elseif ($_POST['localisation'] == '')
{
echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ localisation.');history.back();</script>";
exit();}

elseif ($_POST['votre_message'] == '')
{
echo "<script language='JavaScript'>alert('merci de bien vouloir renseigner le champ message.');history.back();</script>";
exit();
}

// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "") or die ("Pb connexion serveur: ".mysql_error());
mysql_select_db("coursphp") or die ("Pb selection base: ".mysql_error());

// une requête pour enregistré l'heure et la date a laquel le message a était poster
$date = date("Y-m-d");
$heure = date("H:i:s");

// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$precisez = mysql_escape_string(htmlspecialchars($_POST['precisez']));
$comment_avez_vous_connu_ce_site = mysql_escape_string(htmlspecialchars($_POST['comment_avez_vous_connu_ce_site']));
$votre_message = mysql_escape_string(htmlspecialchars($_POST['votre_message']));
$site_internet = mysql_escape_string(htmlspecialchars($_POST['site_internet']));
$localisation = mysql_escape_string(htmlspecialchars($_POST['localisation']));
$mail = mysql_escape_string(htmlspecialchars($_POST['mail']));
$pseudo = mysql_escape_string(htmlspecialchars($_POST['pseudo']));


// Ensuite on enregistre le message

$enr = mysql_query("INSERT INTO livre_d_or VALUES('', '$pseudo', '$mail', '$localisation', '$site_internet', '$votre_message', '$comment_avez_vous_connu_ce_site', '$precisez', '$date', '$heure') ") or die ("Pb requette :".mysql_error());

// On se déconnecte de MySQL
mysql_close();


//redirection, si tout a bien marché on ne réaffichera pas ainsi le formulaire
//un petit echo pour voir:
echo "Enregistrement: ".$enr;

if($enr){
header('Location:page livre_d_or_diffusion.php');
exit;
}
}

// Tout d'abord le formulaire :
?>


<!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" lang="fr">
<head>
<title>livre d'or formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="livre_d'or_formulaire.css" href="livre_d'or_formulaire.css" />
</head>
<body>

<form action="livre_d_or_formulaire.php" method="post">

<p>
<fieldset>
<legend>un peu de vous</legend>
<pre><p><label for="pseudo">Votre pseudo: </label><input type="text" name="pseudo" id="pseudo" tabindex="10" size="50" maxlength="30"/></p></pre>
<pre><p><label for="mail">**Votre adresse email: </label><input type="text" name="mail" id="mail" tabindex="20" size="50" maxlength="40"/></p></pre>
<pre><p><label for="localisation">Votre ville, région: </label><input type="texte" name="localisation" id="localisation" tabindex="30" size="50" maxlength="50"/></p></pre>
<pre><p><label for="site_internet">*Votre site internet: </label><input type="site_internet" name="site_internet" id="site_internet" tabindex="40" size="50" maxlength="50"/></p></pre>
</fieldset>

<fieldset>
<legend>exprimez vous</legend>
<pre><p><label for="votre_message">votre message:</label> <textarea name="votre_message" id="votre_message" tabindex="50" rows="7" cols="45"></textarea></p></pre>

<pre><p><label for="comment_avez_vous_connu_ce_site">*comment avez vous connu ce site? </label><select name="comment_avez_vous_connu_ce_site" id="comment_avez_vous_connu_ce_site" tabindex="60">
<option value="amis">amis</option>
<option value="forum">forum</option>
<option value="moteur_de_recherche">moteur de recherche</option>
<option value="par_hasard">par hasard</option>
<option value="autres">autres</option>
<option value="" selected="selected"></option>
</select></p></pre>

<pre><p><label for="precisez">*précisez: </label><input type="texte" name="precisez" id="precisez" tabindex="70" size="50" maxlength="50" /></p></pre>

</fieldset>

<p>*mention facultative<br/>
**celle-ci ne sera pas visible des autres utilisateurs</p>

<input type="submit" value="Envoyer"/>
</p>

</form>

</body>
</html>


j'espère que ça va marcher je suis absent 3 jours
0
Alain

merci beaucoup de prendre sur ton temps pour te pencher sur mon problème mais malheureusement, rien y fait apparemment......

je viens de faire un copier/coller du code que tu ma retourné et toujours pareil que tout a l'heure......

pas de redirection et enregistrement dans la bdd OK.... et là depuis toute a l'heure je m'étais un peu résigner a devoir mettre un bouton retour alors du coup j'ai bosser sur mon CSS.
a ma grande surprise, lorsque j'ai tester le code que tu ma donné et alors que j'ai une seul et même feuille de style associer a mon livre d'or je me retrouve a avoir mes label a l'intérieur de mes fieldset qui changent de place entre le formulaire avant et après envoi. ce qui ma fait penser que pour faire ma feuille de style j'ai rajouté un div sur mes fieldset et un <p class=""> sur le submit pour le centré.....

en gros, depuis toute a l'heure pour toi et presque deux jours pour moi on cherche une erreur sur un script qui n'en comporte pas car l'erreur doit plutôt ce trouvait sur ma page livre_d_or_diffusion.php.....!!!!

je m'explique, j'ai deux feuille livre_d_or_formulaire.php. celle que je conserve comme copie de sauvegarde et sur la quel j'ai appliquer le div qui ce nome formulaire.php et celle sur la quel je fait des testes pour essayer de résoudre le problème qui ce nome formulaire2.php. je n'ai pas changer l'adreese dans le <form action....> du script que tu ma renvoyer ce qui ma permis de me rendre compte que lorsque j'envoi le formulaire il arrive très bien a ce rediriger vers une autre page via le FORM puisque lorsque je clique sur le submit je me retrouve sur formulaire.php alors que je l'envoi a partir de formulaire2.php......

bref mille excuse de t'avoir fait plancher sur ce formulaire pour rien.....
quand a moi, il me reste a comprendre pourquoi et de quel fait diffusion.php refuse la redirection..!!!!
0
louseb > louseb
1 sept. 2009 à 23:51
tien.... une question quand même....
quel est la différence entre un
mysql_real_escape_string
et un
mysql_escape_string
...???
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 sept. 2009 à 17:23
la différence entre real_ecapge...
et escape...

c'est que le premier tiens compte du numero de ressource de connexion au serveur

le resultat est le mêm peros jk'utilises toujurs le mysql_escape_string

pour ton pb c'est classique tu modifie un script formulaire_2.php et le form action appelle le formulaire.php

ce qui fait qu'au bout d'un mpoment on se tape la tête contre les murs§

donc ça marche alors ?
0
salut Alain

ben en faite, après avoir retourné mon script "diffusion.php" dans tous les sens et n'ayant pas trouver où pouvait ce loger "l'erreur" dans le script j'ai remis en place la ligne de script que tu m'avait donné mais cette foi en la faisant sortir de la boucle d'enregistrement (après l'accolade de fermeture ce situant juste après le "mysql_close ();).
et là miracle sa marche nickel mais lorsque j'ai voulu déplacer ce script dans mon dossier sauvegarde et donc le désolidariser du css, je me suis aperçu qu'il me renvoyer quand même une erreur que je ne pouvais pas voir avec mon css car j'y avais appliquer un background color black......

l'erreur en question :

Notice: Undefined variable: enr in C:\wamp\www\tests\livre_d_or_formulaire.php on line 63
la ligne 63 correspond a l'accolade d'ouverture du "if" de $enr dans le bout de code suivant.

// On se déconnecte de MySQL
$enr = mysql_close();
} // accolade de fermeture de la boucle d'enregistrement dans la bdd

//redirection vers la page livre_or_diffusion

if($enr)
{ // accolade qui renvoi l'erreur
header('Location: livre_d_or_diffusion.php');
}

// Tout d'abord le formulaire :
?>


j'ai essayer de mettre en place plusieurs lignes de code mais je n'ai pas trouver la bonne......!!!

aurait tu une idée de la ligne de code a mettre en place?

encore merci
Seb
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 sept. 2009 à 18:06
// On se déconnecte de MySQL
$enr = mysql_close();


il ne faut pas mettre $enr= mysql_close() mais sur mysql_query

c'est pour faire la redirection que si l'enr dans la BDD a réussi

essayes en remplaçant:

if($enr)
{ // accolade qui renvoi l'erreur
header('Location: livre_d_or_diffusion.php');
}


tout simplement par:

header('Location: livre_d_or_diffusion.php');



on ne testera pas si l'enr a réussi mais ce n'est peut être pas très important
0
merci a toi O grand maître du php...!!!! ;)

j'ai fait comme tu ma dis a savoir réduire la ligne de code et je l'ai placer dans ma boucle d'enregistrement juste après le mysql_close et tout est OK...... vérif des champ, enregistrement et redirection !!!!!!


merci beaucoup de ton aide
Seb
0
merci O grand maître du php..... ;)

j'ai placer la ligne de code simplifier juste après le mysql_close et tous marche nickel.... verif des champ, enregistrement et redirection.

encore merci a toi Alain pour ton aide précieuse
Seb
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 sept. 2009 à 19:32
grand maitre ça m'honore mais c'est un peu exagéré qd même

très heureux d'avoir pu te tirer cette épine du pied.

Cordialement

@lain
0