par
Cry13 » 28 oct. 2010, 21:17
Bonjour à tous,
Alors voilà je suis sur un formulaire avec une session et un capchta.
Il fonctionne très bien, mais je voudrais faire une petite modif, le client qui arrive d'une page précédente aura préalablement cliqué sur un lien qui donne :
href="
http://www.monsite/contact.php?destinat ... 3nixhunt3r"
Pour arriver sur ma page de contact composé comme suit :
<?php
ini_set('url_rewriter.tags','a=href,area=href,frame=src,iframe=src,input=src');
session_start();
if(isset($_POST['f_1'])) { $_SESSION['f_1'] = $_POST['f_1']; }
if(isset($_POST['f_2'])) { $_SESSION['f_2'] = $_POST['f_2']; }
if(isset($_POST['f_3'])) { $_SESSION['f_3'] = $_POST['f_3']; }
if(isset($_POST['f_4'])) { $_SESSION['f_4'] = $_POST['f_4']; }
if(isset($_POST['f_5'])) { $_SESSION['f_5'] = $_POST['f_5']; }
if(isset($_POST['f_6'])) { $_SESSION['f_6'] = $_POST['f_6']; }
if(isset($_POST['f_7'])) { $_SESSION['f_7'] = $_POST['f_7']; }
if(isset($_POST['f_8'])) { $_SESSION['f_8'] = $_POST['f_8']; }
if(isset($_POST['f_9'])) { $_SESSION['f_9'] = $_POST['f_9']; }
if(isset($_POST['f_10'])) { $_SESSION['f_10'] = $_POST['f_10']; }
if(isset($_POST['f_11'])) { $_SESSION['f_11'] = $_POST['f_11']; }
if(isset($_POST['destinataire'])) { $_SESSION['destinataire'] = $_POST['destinataire']; }
if($f_1==''){$f_1='Selectionnez';}
if($f_10==''){$f_10='Selectionnez';}
if($destinataire==''){$destinataire='..........';}
require('modules/head.php');
require('modules/header.php');
?>
<div id="contenu">
<div id="centre">
<h2>Contact <?php echo $destinataire; ?></h2>
<?php
$number = mb_strtoupper($_POST['imagever']);
$ip = $_SERVER['REMOTE_ADDR'];
if(isset($_POST['submit'])){
$erreur='';
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);}
else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);}}}
$f_1=trim(ucwords(eregi_replace('[^a-zA-Z0-9éèàäö\ -]', '', $f_1)));
$f_2=strip_tags(trim($f_2));
$f_3=strip_tags(trim($f_3));
if(strlen($f_2)<4){
$erreur.='<p class="texte_erreur">Le champ « Nom » est vide ou incomplet.</p>';
$errf_2=1;
}
if(strlen($f_9)<5){
$erreur.='<p class="texte_erreur">Le champ « E-mail » est vide ou incomplet.</p>';
$errf_9=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_9)){
$erreur.='<p class="texte_erreur">La syntaxe de votre adresse e-mail n’est pas correcte.</p>';
$errf_9=1;
}elseif (md5($number) != $_SESSION['image_random_value']) {
$erreur2.= '<span class="texte_erreur">Erreur dans le code de sécurité.</span>';
}
}
if(strlen($f_11)<2){
$erreur.='<p class="texte_erreur">Le champ « Message » est vide ou incomplet.</p>';
$errf_11=1;
}
if(md5($number) != $_SESSION['image_random_value'])
{
$erreur.='<p class="texte_erreur">Erreur dans le code de sécurité.</p>';
$errnumber=1;
}
if($erreur==''){
$titre="Contact pour ".$destinataire."\r\n";
$tete="From: ".$f_9."" . "\r\n";
$tete="Bcc:......................fr\r\n";
$tete .='Content-Transfer-Encoding: 8bit' . "\r\n";
$tete .='Content-type: text/plain; charset=UTF-8' . "\r\n";
$corps.="Civilite : ".$f_1."\n";
$corps.="Nom : ".$f_2."\n\n";
$corps.="Societe : ".$f_3."\n\n";
$corps.="Rue : ".$f_4."\n";
$corps.="Code Postal : ".$f_5."\n";
$corps.="Ville : ".$f_6."\n\n";
$corps.="Telephone : ".$f_7."\n";
$corps.="Telephone Mobile : ".$f_8."\n\n";
$corps.="Adresse e-mail : ".$f_9."\n\n";
$corps.="Sujet du message : ".$f_10."\n";
$corps.="Message : ".$f_11."\n";
if(mail("".$destinataire."@gmail.com", $titre, stripslashes($corps), $tete)){
$ok_mail='true';
session_destroy();
}else{
$erreur.='<p class="texte_erreur">Une erreur est survenue lors de l’envoi du message, veuillez refaire une tentative.</p>';
}
}
}
?>
<?php if($ok_mail=='true'){ ?>
<div id="contact_ok">
<p class="or_contact">Le message ci-dessous nous a bien été transmis,<br/>et nous vous en remercions.</p>
<p class="or_contact"><?php echo nl2br(stripslashes($corps)); ?></p>
<p class="or_contact">Nous allons y donner suite dans les meilleurs délais.<br/>A bientôt.</p>
</div>
<?php }else{ ?>
<?php if($erreur){ ?>
<div id="contact_erreur">
<p id="titre_erreur">Votre message n’a pas été transmis :</p>
</div>
<?php echo $erreur ?>
<?php } ?>
le problème c'est que lorsque je valide le formulaire et qu'il soit valide ou non ma variable destinataire se vide. une idée ?
Si quelqu'un vois mon erreur, merci par avance pour votre aide.
Cry13
Bonjour à tous,
Alors voilà je suis sur un formulaire avec une session et un capchta.
Il fonctionne très bien, mais je voudrais faire une petite modif, le client qui arrive d'une page précédente aura préalablement cliqué sur un lien qui donne :
href="http://www.monsite/contact.php?destinataire=pho3nixhunt3r"
Pour arriver sur ma page de contact composé comme suit :
[php]<?php
ini_set('url_rewriter.tags','a=href,area=href,frame=src,iframe=src,input=src');
session_start();
if(isset($_POST['f_1'])) { $_SESSION['f_1'] = $_POST['f_1']; }
if(isset($_POST['f_2'])) { $_SESSION['f_2'] = $_POST['f_2']; }
if(isset($_POST['f_3'])) { $_SESSION['f_3'] = $_POST['f_3']; }
if(isset($_POST['f_4'])) { $_SESSION['f_4'] = $_POST['f_4']; }
if(isset($_POST['f_5'])) { $_SESSION['f_5'] = $_POST['f_5']; }
if(isset($_POST['f_6'])) { $_SESSION['f_6'] = $_POST['f_6']; }
if(isset($_POST['f_7'])) { $_SESSION['f_7'] = $_POST['f_7']; }
if(isset($_POST['f_8'])) { $_SESSION['f_8'] = $_POST['f_8']; }
if(isset($_POST['f_9'])) { $_SESSION['f_9'] = $_POST['f_9']; }
if(isset($_POST['f_10'])) { $_SESSION['f_10'] = $_POST['f_10']; }
if(isset($_POST['f_11'])) { $_SESSION['f_11'] = $_POST['f_11']; }
if(isset($_POST['destinataire'])) { $_SESSION['destinataire'] = $_POST['destinataire']; }
if($f_1==''){$f_1='Selectionnez';}
if($f_10==''){$f_10='Selectionnez';}
if($destinataire==''){$destinataire='..........';}
require('modules/head.php');
require('modules/header.php');
?>
<div id="contenu">
<div id="centre">
<h2>Contact <?php echo $destinataire; ?></h2>
<?php
$number = mb_strtoupper($_POST['imagever']);
$ip = $_SERVER['REMOTE_ADDR'];
if(isset($_POST['submit'])){
$erreur='';
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);}
else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);}}}
$f_1=trim(ucwords(eregi_replace('[^a-zA-Z0-9éèàäö\ -]', '', $f_1)));
$f_2=strip_tags(trim($f_2));
$f_3=strip_tags(trim($f_3));
if(strlen($f_2)<4){
$erreur.='<p class="texte_erreur">Le champ « Nom » est vide ou incomplet.</p>';
$errf_2=1;
}
if(strlen($f_9)<5){
$erreur.='<p class="texte_erreur">Le champ « E-mail » est vide ou incomplet.</p>';
$errf_9=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_9)){
$erreur.='<p class="texte_erreur">La syntaxe de votre adresse e-mail n’est pas correcte.</p>';
$errf_9=1;
}elseif (md5($number) != $_SESSION['image_random_value']) {
$erreur2.= '<span class="texte_erreur">Erreur dans le code de sécurité.</span>';
}
}
if(strlen($f_11)<2){
$erreur.='<p class="texte_erreur">Le champ « Message » est vide ou incomplet.</p>';
$errf_11=1;
}
if(md5($number) != $_SESSION['image_random_value'])
{
$erreur.='<p class="texte_erreur">Erreur dans le code de sécurité.</p>';
$errnumber=1;
}
if($erreur==''){
$titre="Contact pour ".$destinataire."\r\n";
$tete="From: ".$f_9."" . "\r\n";
$tete="Bcc:......................fr\r\n";
$tete .='Content-Transfer-Encoding: 8bit' . "\r\n";
$tete .='Content-type: text/plain; charset=UTF-8' . "\r\n";
$corps.="Civilite : ".$f_1."\n";
$corps.="Nom : ".$f_2."\n\n";
$corps.="Societe : ".$f_3."\n\n";
$corps.="Rue : ".$f_4."\n";
$corps.="Code Postal : ".$f_5."\n";
$corps.="Ville : ".$f_6."\n\n";
$corps.="Telephone : ".$f_7."\n";
$corps.="Telephone Mobile : ".$f_8."\n\n";
$corps.="Adresse e-mail : ".$f_9."\n\n";
$corps.="Sujet du message : ".$f_10."\n";
$corps.="Message : ".$f_11."\n";
if(mail("".$destinataire."@gmail.com", $titre, stripslashes($corps), $tete)){
$ok_mail='true';
session_destroy();
}else{
$erreur.='<p class="texte_erreur">Une erreur est survenue lors de l’envoi du message, veuillez refaire une tentative.</p>';
}
}
}
?>
<?php if($ok_mail=='true'){ ?>
<div id="contact_ok">
<p class="or_contact">Le message ci-dessous nous a bien été transmis,<br/>et nous vous en remercions.</p>
<p class="or_contact"><?php echo nl2br(stripslashes($corps)); ?></p>
<p class="or_contact">Nous allons y donner suite dans les meilleurs délais.<br/>A bientôt.</p>
</div>
<?php }else{ ?>
<?php if($erreur){ ?>
<div id="contact_erreur">
<p id="titre_erreur">Votre message n’a pas été transmis :</p>
</div>
<?php echo $erreur ?>
<?php } ?>[/php]
le problème c'est que lorsque je valide le formulaire et qu'il soit valide ou non ma variable destinataire se vide. une idée ?
Si quelqu'un vois mon erreur, merci par avance pour votre aide.
Cry13