Header location

Résolu/Fermé
sebdu84 - Modifié par sebdu84 le 29/08/2010 à 23:47
 sebdu84 - 30 août 2010 à 02:54
Bonjour,

voila j'ai recuperai un script que j'essaye de modifier pour que le message de confirmation d'envoi du mail apparaisse dans un div de ma page html non pas apparaitre tout en haut de ma page.
la methode que j'essaye de mettre en place et un header(location:inscription.php?mail=ok) mais j'ai cette erreur de syntax qui apparait sur ma ligne <?php ($_GET['mail'] == "ok") { ?><span class="Style2">un mail vous a ete envoyer</span><?php } ?>

Parse error: syntax error, unexpected T_IS_EQUAL, expecting ',' or ')' in /homez.170/lousebph/www/newsletter/inscription.php on line 350

voici le code mis en place a la place de l'echo d'origine.

if(mail($emailv, $subject, $message, $headers)) 
   {  // On met les données dans la table d'attente 
   $resultat = mysql_query("SELECT * FROM newsletter2 WHERE courriel ='$emailv' AND 'privilege' = 'desinsc'");  
   if(false!=($ligne = mysql_fetch_array ($resultat))){ // Si l'utilisateur s'etait déja inscrit 
    $query = "DELETE FROM newsletter2 WHERE courriel='$emailv'"; 
    mysql_query($query);} 
    
   // On met les données dans la table d'attente 
   $query = "INSERT INTO newsletter2 VALUES('','$pseudv','$emailv','".date("d-m-Y")."','$heure','$sessionprivilege')"; 
   mysql_query($query); 
   mysql_close(); 

   header("location:inscription.php?mail=ok"); 
   } 
   else {show_error('je n\'ai pas pu vous envoyez d\'email. Contactez moi via le formulaire contact.');} 


et le code d'origine

if(mail($emailv, $subject, $message, $headers)) 
   {  // On met les données dans la table d'attente 
   $resultat = mysql_query("SELECT * FROM newsletter2 WHERE courriel ='$emailv' AND 'privilege' = 'desinsc'");  
   if(false!=($ligne = mysql_fetch_array ($resultat))){ // Si l'utilisateur s'etait déja inscrit 
    $query = "DELETE FROM newsletter2 WHERE courriel='$emailv'"; 
    mysql_query($query);} 
    
   // On met les données dans la table d'attente 
   $query = "INSERT INTO newsletter2 VALUES('','$pseudv','$emailv','".date("d-m-Y")."','$heure','$sessionprivilege')"; 
   mysql_query($query); 
   mysql_close(); 

   echo '<p align="center"><span class="Style2">Merci. 
   <br/>un e-mail vous a été envoyé à l\'adresse '.$emailv.'. <br /> 
   Veuillez vous diriger vers votre adresse de messagerie et confirmer votre inscription avant 7 jours.</span></p>'; 
   } 
   else {show_error('je n\'ai pas pu vous envoyez d\'email. Contactez moi via le formulaire contact.');}



je debute en php et j'ai du mal a comprendre les fonctions de redirection alors si quelqu'un pouvait m'expliquer sa serait super, sa m'eviterai de me coucher autant con qu'en me levant ce matin...!!!!!


1 réponse

personnellement, j'utilise autre chose, les sessions.
Je te laisse te documenter dessus si tu ne l'est a pas encore mis.

Personnellement just avant le header, je creer un variable de session
$_SESSION['mail']='';
puis il y a la redirection.
Une fois sur la page je teste si la variable est présente:
if(isset($_SESSION['mail'])){ 
echo 'Mail envoyé"; 
unset $_SESSION['mail']; 
} 

si la variable existe, le message est afficher et grace a unset, on detruit la variable de session ce qui fait que avec un f5, le message disparait.
Signature hors charte
0
merci pour votre reponse...

je viens de me renseigner un petit peu sur la variable de session que je ne connaissais pas.
j'ai mis en place le bout de script que vous venez de me donner, sa fonctionne mais que si je ne met pas le "unset", par ailleurs je ne me vois pas indiquer a mes visiteurs de taper sur f5 pour ne plus que le message s'affiche....
le probleme avec la variable de session c'est quel reste stocker environ 30 minutes sur mon serveur d'apres ce que j'en ai lu et que si l'internaute vas sur sa boite mail pour confirmer sont inscription de suite il ce retrouve avec une page inscription.php qui lui indique "message envoyé merci d'avoir confirmé votre inscription" car le script d'origine renvoi des messages avec la methode header("location:inscrition.php?......=.....")

d'ou mes interogations
pensez vous que le faite d'utiliser des header("location:inscrition.php?......=.....") soit risquer en etant qu'il ne servent a afficher que des messages d'alerte et en aucun cas des login et mot de pass...???
y a t-il un moyen pour que la variable $_session soit detruite des que la page est recharger...???

d'avance merci
seb
0