probleme de redirection apres formulaire

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 : probleme de redirection apres formulaire

Re: probleme de redirection apres formulaire

par casper62110 » 02 mars 2012, 12:22

sa marche merci 1000 fois

Re: probleme de redirection apres formulaire

par xTG » 02 mars 2012, 12:07

L'erreur est dans cette ligne :

Code : Tout sélectionner

<form enctype="multipart/form-data" name="comment_form" action="'.$_SERVER['PHP_SELF'].'" method="POST">
L'index PHP_SELF renvoie le nom du script courant sans les arguments.
Utilises REQUEST_URI plutôt (ou REQUEST_URL je ne sais plus trop, listable avec un var_dump($_SERVER)).

probleme de redirection apres formulaire

par casper62110 » 02 mars 2012, 11:02

Débutant en php j ai récupérer se script qui enregistre les formulaire rempli en fichier txt
Il fonctionne tres bien quand je suis sur une page toute simple mais quand je suis sur une page du syle
***/histoire/index.php?voir=blabla (etant le resultat de $filenames plus haut dans la page)
le probleme c est qui me redirige vers ***/histoire/index.php se qui provoque donc une erreur car il faut obligatoirement une var $voir et en plus il ne m enregistre pas le com dans le fichier txt or que dans la page blabla toutes simple cela fonctionne
<?php
if(file_exists ( 'fichier/commentaire/'.$filenames.'.txt' ))
	 {}
	 else {fopen('fichier/commentaire/'.$filenames.'.txt', 'w');
	 fclose('fichier/commentaire/'.$filenames.'.txt');}

 $debug = 1; //0=off / 1=on
 $notification_mail = 0; //0=non / 1=oui 
 $adresse_mail = "[email protected]";
 $provenance_mail = "From: [email protected]";
 
 //****
 //Main
 //****
 
 //Récupère le commentaire
 @$commentaire = $_POST['commentaire'];
 @$site=$_POST['site'];
 //Extrait le nom de la page et l'utilise pour le nom du fichier de sauvegarde en ".txt"
 $path = 'fichier/commentaire/'.$filenames.'.txt';
 if($debug == 1)
   
 echo Affiche_commentaires($path); 
 //Gestion du cookies
 if(!isset($pseudo))
   {
   	@$pseudo = $_POST['pseudo'];
    if($pseudo == "")$pseudo = "Anonyme";
    if($debug == 1)
      ;
  }
 else 
  if($debug == 1)
   echo "<br /><br />Cookies actifs pseudo = <br /><br />".$pseudo;

 //Enregistre et affiche les commentaires
 if(isset($_POST['submit']))
  save_comment($path,$pseudo,$site,$commentaire);
 else
 //Affiche les commentaires
   if(file_exists($path))
      ;  
 
 //Affichage du formulaire
 echo '
 <form enctype="multipart/form-data" name="comment_form" action="'.$_SERVER['PHP_SELF'].'" method="POST">[color=#BF0000]//--------------------------le probleme je pense qui vien d ici-----------------------------------------------------------------[/color]
 <br />Votre Pseudo<br />
 <input name="pseudo" type="text" value="'.$pseudo.'" size="20" >
 <br />Site internet<br />
 <input name="site" type="text" value="http://" size="40" >
 <br />Ajouter votre commentaire ici:<br />
 <textarea name="commentaire" cols="70" rows="5"></textarea><br />
 <input type="submit" name="submit" value="Envoyer le commentaire" />
 <br /><br />
 </form>
 ';
 
 //*********
 //Fonctions
 //********* 

 function affiche_commentaires($path)
 {
  global $debug;
  if($debug == 1)
   echo "<br /><br />Affichage des commentaires<br />";
 
  $handletmp = fopen($path,"r");
  $tableau_content = file($path);
  fclose($handletmp);
     
  //Affichage des commmentaires  
  //***************************
  
  // boucle sur tous les elements
  $HTML  = '<style>.font_tableau{color: black; font-size: 10pt;}</style><br /><br />';
  $HTML .= '<center><table background="../Astronova/images/post2.png" border=0 cellspacing="0" width="550">';
  $HTML .= '<tr><td align="center" "><b>les commentaires</b></td></tr>'; 
 
  for($i=0; $i < count($tableau_content); $i++)
  {
    if($i%2==0)
      {
       $HTML .= '<tr><td class="font_tableau" valign="center" align="left" >';
       $HTML .= $tableau_content[$i].'</td></tr>';
      }
    else
     {
       $HTML .= '<tr><td border=0 class="font_tableau" valign="center" align="left">';
       $HTML .= $tableau_content[$i].'</td></tr>';
     }
  }
  $HTML .= '</table></center>';
  
  return $HTML;
 } 
 
 
 function save_comment($path,$pseudo,$site,$commentaire)
  {
   //Enregistrement du commentaire	
   //*****************************
   
   global $debug;
   global $notification_mail;
   if($debug == 1)
  ;
 
   global $adresse_mail;
   global $provenance_mail;
  
   if(file_exists($path))
     {
      $handle = fopen($path,"r");
      $tableau_content = file($path);
      fclose($handle);  
     }
   //remplace le retour à la ligne par <br /> et le \' par '
   @$site=eregi_replace("\r\n","<br />",$site);
   @$site=eregi_replace("\\\'","'",$site);
   @$commentaire=eregi_replace("\r\n","<br />",$commentaire);
   @$commentaire=eregi_replace("\\\'","'",$commentaire);
   

   if(($commentaire != "")&&(($commentaire . "\r\n") != $tableau_content[count($tableau_content)-1]))
     { 
      $handle = fopen($path,"w"); 
      for($i=0;$i < count($tableau_content); $i++)
         {  
          if(($tableau_content[$i] != "")&&($tableau_content[$i] != "\r\n"))
          fwrite($handle,$tableau_content[$i]);
         }     
      $str_out = '<br /><img src="../Astronova/images/commentaireseparation.png" /><br /><span class="pseudo">'.$pseudo.'</span><span class="date_post"> à ecrit le '.date('d.m.y à H:i:s').'</span> '."\r\n".'<span class="site_post">'.$site.'</span>'."\r\n".'<span class="commentaire_post">'.$commentaire.'</span>'."\r\n";
      fwrite($handle,$str_out);   
      fclose($handle);
      if($notification_mail == 1)
        {
         $message = $pseudo." le ".date('d.m.y à H:i:s')."\r\n".$commentaire."\r\nhttp://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];[color=#BF0000]//-------------------------------------ou alors d ici --------------------------------------------------------------------[/color]
         @mail($adresse_mail,"Nouveau commentaire de ".$pseudo,$message,$provenance_mail);
        } 
     }
   else
    {
     if($debug == 1)
      echo "<br /><br />Commentaire vide ou redondant!!!<br />";	
    }   
	
  echo "<script>window.location.replace(\"index.php?voir=blabla\")</script>"; \\ ici sera mis voir=$filenames
 }
 
?>

j ai mis des annotation dans le fichier d'ou je pense que le prbleme vient pour nous aidez merci a vous