Cookie session

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 : Cookie session

Re: Cookie session

par Cry13 » 28 oct. 2010, 22:32

Pouwa !

Merci monsieur !
if(isset($_POST['destinataire'])) { $_SESSION['destinataire'] = $_POST['destinataire']; }
remplacer par :
if(isset($_GET['destinataire'])) { $_SESSION['destinataire'] = $_GET['destinataire']; }
Et juste quand la bouffe est prête.

P.S. : Je le savais pour le $_GET mais je penser qu'il passerais en post suite à la 1ere ligne mais vu que je récupéré une valeur en post qui n'existait pas ;-)

Encore merci à tous !

Re: Cookie session

par Ryle » 28 oct. 2010, 22:23

Si la valeur est dans ta barre d'adresse, c'est qu'elle est transmise en GET et non en POST lorsque tu arrives sur ta page ... :)

Re: Cookie session

par Cry13 » 28 oct. 2010, 22:06

merci pour ta réponse,

Pour ce qui est des espaces, non j'en ais mis nul part, ce que je ne comprend pas c'est que lorsque j'arrive de la page précédente ma variable est bien déclaré, que je la stock dans la session comme toute les autres et que lorsque je valide mon formulaire paf ! plus de variable.

J'ai l'impression que tant qu'elle est dans la barre d'adresse tout va bien mais qu'elle ne se stock pas vraiment en session.

PS : Merci à l'Admin pour son efficacité !

Re: Cookie session

par moogli » 28 oct. 2010, 21:43

Salut,

Tu passe de $_POST['destinataire'] a $destinataire y a comme un soucis (sauf extract ou auto declaration des super globale maisn c'est bof )

Tu n'aurais pas mi un espace dans les test ?

Cookie session

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&eacute;èàäö\ -]', '', $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 &laquo; Nom &raquo; est vide ou incomplet.</p>';
        $errf_2=1;
        }
        if(strlen($f_9)<5){
        $erreur.='<p class="texte_erreur">Le champ &laquo; E-mail &raquo; 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&rsquo;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&eacute;curit&eacute;.</span>';
        }	
        }
        
        if(strlen($f_11)<2){
        $erreur.='<p class="texte_erreur">Le champ &laquo; Message &raquo; 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&eacute;curit&eacute;.</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&rsquo;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 &eacute;t&eacute; 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&eacute;lais.<br/>A bient&ocirc;t.</p>
    </div>
    
    <?php }else{ ?>            
        <?php if($erreur){ ?>
        <div id="contact_erreur">
        	<p id="titre_erreur">Votre message n&rsquo;a pas &eacute;t&eacute; 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