formulaire php bug de page de redirection

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : formulaire php bug de page de redirection

Re: formulaire php bug de page de redirection

par Genetic10 » 24 juin 2010, 19:20

le message juste avant etait mon code en lui meme en php

sinon la partie pour la redirection est celle ci:
// Rediriger vers la page de remerciement
header("Location: contact2.php");
exit();
} // Fin else
} // Fin du if ($flag_erreur == 0) {
} // Fin de if POST
?>

Re: formulaire php bug de page de redirection

par stealth35 » 24 juin 2010, 19:14

dans la barre d'outil texte le bouton PHP, edites les 2 messages

Re: formulaire php bug de page de redirection

par Genetic10 » 24 juin 2010, 19:12

je fais cela comment LOL
sinon avant les balises html

php

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {


//On commence une session pour enregistrer les variables du formulaire...

session_start();

$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['champ2'] = $_POST['champ2'];
$_SESSION['champ3'] = $_POST['champ3'];
$_SESSION['champ4'] = $_POST['champ4'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];

//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];

// Définir l\'icone apparaissant en cas d\'erreur...


// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;

// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}

// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {					

// Addresse de réception du formulaire
$email_dest = "[email protected]";
$sujet = "Nouveau contact via mariagephotos";
$entetes ="MIME-Version: 1.0 \n";
	$entetes .="From: MariagePhotoContact<[email protected]>\n";
	$entetes .="Return-Path: MariagePhotoContact<[email protected]>\n";
	$entetes .="Reply-To: MariagePhotoContact<[email protected]>\n";
	$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
	$partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";


//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Nom = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Prenom = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Telephone = " . $_SESSION['champ3'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Sujet = " . $_SESSION['champ4'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Email = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Message = " . $_SESSION['zone_texte1'] . "</font><br>\n";
					

					// Fin du message HTML
					$fin = "</body></html>\n\n";
					
					$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;


					// Send the e-mail
					if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
					echo("Envoi du formulaire impossible");
					exit();
					} else {

                    // Rediriger vers la page de remerciement
                    header("Location: contact2.php");
                    exit();
                  } // Fin else
			    } // Fin du if ($flag_erreur == 0) {
			} // Fin de if POST
?>

Re: formulaire php bug de page de redirection

par stealth35 » 24 juin 2010, 19:09

met les balises [php][/php] autour de ton code on verra mieux :wink:

Re: formulaire php bug de page de redirection

par Genetic10 » 24 juin 2010, 19:05

voici toute la page!




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?php

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {


//On commence une session pour enregistrer les variables du formulaire...

session_start();

$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['champ2'] = $_POST['champ2'];
$_SESSION['champ3'] = $_POST['champ3'];
$_SESSION['champ4'] = $_POST['champ4'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];

//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];

// Définir l\'icone apparaissant en cas d\'erreur...


// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;

// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}

// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {					

// Addresse de réception du formulaire
$email_dest = "[email protected]";
$sujet = "Nouveau contact via mariagephotos";
$entetes ="MIME-Version: 1.0 \n";
	$entetes .="From: MariagePhotoContact<[email protected]>\n";
	$entetes .="Return-Path: MariagePhotoContact<[email protected]>\n";
	$entetes .="Reply-To: MariagePhotoContact<[email protected]>\n";
	$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
	$partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";


//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Nom = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Prenom = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Telephone = " . $_SESSION['champ3'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Sujet = " . $_SESSION['champ4'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Email = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Message = " . $_SESSION['zone_texte1'] . "</font><br>\n";
					

					// Fin du message HTML
					$fin = "</body></html>\n\n";
					
					$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;


					// Send the e-mail
					if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
					echo("Envoi du formulaire impossible");
					exit();
					} else {

                    // Rediriger vers la page de remerciement
                    header("Location: contact2.php");
                    exit();
                  } // Fin else
			    } // Fin du if ($flag_erreur == 0) {
			} // Fin de if POST
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link href="style.css" rel="stylesheet" type="text/css" />
<link href="layout.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.Style1 {font-size: medium}
.Style2 {
color: #9BBB59;
font-weight: bold;
font-size: medium;
}
-->
</style>
<script language="JavaScript">


function verifSelection() {


if (document.mail_form.champ1.value == "") {
alert("Merci d\'indiquer votre Nom")
return false
}

if (document.mail_form.champ2.value == "") {
alert("Merci d\'indiquer votre Prénom")
return false
}

if (document.mail_form.champ4.value == "") {
alert("Merci d\'indiquer un sujet")
return false
}

if (document.mail_form.zone_email1.value == "") {
alert("Merci d\'indiquer votre email")
return false
}

invalidChars = " /:,;'"

for (i=0; i < invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (document.mail_form.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.mail_form.zone_email1.focus()
return false
}
}

atPos = document.mail_form.zone_email1.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (document.mail_form.zone_email1.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

periodPos = document.mail_form.zone_email1.value.indexOf(".",atPos)

if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (periodPos+3 > document.mail_form.zone_email1.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (document.mail_form.zone_texte1.value == "") {
alert("Vous n\'avez rempli aucun message")
return false
}

} // Fin de la fonction
</script>

</head>

<body id="page4">
<div class="main">
<div id="header">
<a href="index.html"></a><a href="index-1.html"></a><a href="index-2.html"></a><a href="#"></a>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shoc ... n=7,0,19,0" width="980" height="78">
<param name="movie" value="menu_v8.swf" />
<param name="quality" value="high" />
<embed src="menu_v8.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="980" height="78"></embed>
</object>
<br />
<a href="index.html"><img alt="" src="images/logo.gif" class="logo" /></a><br />
</div>
<div id="content">
<div class="box">
<div class="border-bottom">
<div class="border-right">
<div class="border-left">
<div class="corner-top-right">
<div class="corner-top-left">
<div class="corner-bottom-left">
<div class="corner-bottom-right">
<div class="indent-box2 txt">
<div class="container">
<p>&nbsp;</p>
<p><form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()">
<div align="center" class="Style2">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif, Tahoma">Formulaire
de contact</font></div>
</div>
<br><table align="center" width="566" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="16"><div align="center">
<font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong><?php
if ($erreur_champ1) {
echo(stripslashes($erreur_champ1));
} else {
if ($erreur_champ2) {
echo(stripslashes($erreur_champ2));
} else {
if ($erreur_champ3) {
echo(stripslashes($erreur_champ3));
} else {
if ($erreur_champ4) {
echo(stripslashes($erreur_champ4));
} else {
if ($erreur_email1) {
echo(stripslashes($erreur_email1));
} else {
if ($erreur_texte1) {
echo(stripslashes($erreur_texte1));
} else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
?>
</strong></font>
</div></td>
</tr>
</table>
<p align="center"></p><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Nom</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ1) {
echo($icone);
}
?>
</td>
<td><input name="champ1" type="text" value="<?=stripslashes($_SESSION['champ1']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Prénom</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ2) {
echo($icone);
}
?>
</td>
<td><input name="champ2" type="text" value="<?=stripslashes($_SESSION['champ2']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Téléphone</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ3) {
echo($icone);
}
?>
</td>
<td><input name="champ3" type="text" value="<?=stripslashes($_SESSION['champ3']);?>"></td>
</tr></table>
<table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Email</font></div></td>
<td width="30" align="center" valign="middle">
<?php
if ($erreur_email1) {
echo($icone);
}
?>
</td>
<td><input name="zone_email1" type="text" value="<?=stripslashes($_SESSION['zone_email1']);?>"></td>
</tr></table>
<table width="566" border="0" align="center">
<tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Sujet</font></div></td>
<td align="center" valign="middle" width="30"><?php
if ($erreur_champ4) {
echo($icone);
}
?>
</td>
<td><input name="champ4" type="text" value="<?=stripslashes($_SESSION['champ4']);?>" /></td>
</tr>
</table>
<table width="566" border="0" align="center"><tr>
<td width="140" valign="top"><div align="right"><font face="Verdana" size="2">Message</font></div></td>
<td width="30" align="center" valign="top">
<?php
if ($erreur_texte1) {
echo($icone);
}
?>
</td>
<td><textarea name="zone_texte1" cols="45" rows="10"><?=stripslashes($_SESSION['zone_texte1']);?></textarea></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td valign="top"><div align="center">
<input type="reset" name="Reset" value=" Effacer ">

<input type="submit" name="envoi" value="Envoyer votre demande">
</div></td></tr></table><div align="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value=""></div></form><br />
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div class="indent-footer">
<div align="center">
<pre id="line1"><span class="Style1">Luc HOURRIEZ ~ Photographe de Mariage © 2009-2010 | <a href="contact.html">contact</a><a title="" href="/?q=/contact" target=""></a></span></pre>
</div>
</div>
</div>
</div>

</body>
</html>

Re: formulaire php bug de page de redirection

par stealth35 » 24 juin 2010, 19:04

es-tu en (dans ton php.ini)

Code : Tout sélectionner

display_errors = on error_reporting = E_ALL | E_STRICT
montre toute le fichier contact.php :wink:

formulaire php bug de page de redirection

par Genetic10 » 24 juin 2010, 16:18

Bonjour a tous

Voila j’ai un petit souci sur une ligne de commande, je ne comprends pas pourquoi a vrai dire, je pense que tout est bien rempli

Voici la page qui bug :
http://www.weddingphotographe.fr/contact.php

Quand on rempli le formulaire une fois envoyé on devrait arriver sur une page de remerciement et j’ai une page blanche de chez blanche !!!!
Pourtant la page de remerciement est bien sur le serveur, et bien configurer dans le fichier php.
Alors que normalement on devrait avoir cela :

http://www.weddingphotographe.fr/contact2.php




Voicila ligne de commande pour renvoyer sur la page de remerciement

header("Location: contact2.php");

elle se trouve dans la partie avec les balises "html"

sinon je voudrais un petit panneau qui dise: message bien envoyé, merci
Et qu'il clic sur ok et se retrouve sur la page du site
je peux envoyé le fichier contact.php en entier a qui le souhaite

Merci d’avance a tous !!!