PHP variable se perds lors de l'envoi

Résolu/Fermé
opus - 9 juin 2010 à 04:46
sapma Messages postés 168 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 7 juin 2011 - 10 juin 2010 à 15:27
Bonjour, (au secour!)

En 'simple' j'ai un lien pour recommander la page sur laquelle je suis, ce lien me dirige vers un fichier recommend.php avec déclaration HTML et tout le necessaire, dans le body j'ai <?php include("inc.recommend.php"); ?>
Dans ce "inc.recommend.php" j'ai des déclarations de variables dont '$url' qui doit contenir l'url de la page d'où je viens (dont je passe les valeurs par l'url (www.xxx.php?page=1)

Dans le fichier "inc.recommend.php" j'envoi un email. Tout se passe bien si je déclare :
$url = 'www.monsiteweb.com/pageproduits1.php';
$emailmessage = "Bonjour, untel a pensé que vous voudriez visiter le site suivant:" . $url;

Dans mon courriel j'ai bien dans mon message "Bonjour, untel a pensé que vous voudriez visiter le site suivant:www.siteweb.com/pageproduits1.php"

Parcontre si je fais (avant la variable $emailmessage):

if($xpage == 1 )
$url = 'www.monsiteweb.com/pageproduits1.php';
elseif($xpage == 2 )
$url = 'www.monsiteweb.com/pageproduits2.php';

J'ai mon message mais il me manque l'url, que je prenne swith, ou n'importe quoi d'autre, aussitôt que je mets une condition, je perds l'url dans mon courriel, pourtant si je fais un echo avant l'envoi, l'url y est bien...
Mystère....
A voir également:

5 réponses

nostradamus
10 juin 2010 à 14:50
ca veut tout simplement dire qu'aucune des conditions n'est remplie: $xpage n'est ni egale à 1 ni egale à 2...
...le pb ne viendrait il pas du nom de la variable choisie ?

en effet au debut de ton message ta variable s'appel "page"
et enfin de ton message, dans ton script tu dis qu'elle s'appelle "xpage"

c'est peut etre de la que vient l'erreur...
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 juin 2010 à 14:54
if($_GET['page'] == 1 ) 
$url = 'www.monsiteweb.com/pageproduits1.php'; 
elseif($_GET['page'] == 2 ) 
$url = 'www.monsiteweb.com/pageproduits2.php'; 


?
0
sapma Messages postés 168 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 7 juin 2011 5
10 juin 2010 à 15:01
$GLOBALS['xpage'] ou $_SESSION['xpage'] c'est bcp mieux.
0
nostradamus
10 juin 2010 à 15:05
là n'est pas le pb, si en GET ca passe pas, ya pas de raison que ca passe en globals, c du bourinage pour rien
0
sapma Messages postés 168 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 7 juin 2011 5
10 juin 2010 à 15:27
passer pour GLOBALS ou session c'et pour ne pas perdre la valeur si on recharge la page. c'est bien par ce que ca passe pas en GET qu'il faut la mettre en globals ou session.
"Je me suis tourné vers une variable de session et tout fonctionne bien " :p
0
Bonjour à tous, merci infiniment :)
ok, pour la variable 'xpage' et 'page' c'est une erreur de transcription. En fait, je me suis apperçu que ma variable contiens bien le lien voulu mais elle est remise à vide lors de l'envoi du email (probablement un rechargement de page). Je me suis tourné vers une variable de session et tout fonctionne bien.

Je marque le problème comme résolu, mais je vais quand même essayer la solution de Apatik et Sapma car j'aimerais mieux une simple variable.
Je suis débutant en php mais j'aime bien réussir à comprendre la mécanique.
Merci encore ! :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour à tous, merci infiniment :)
ok, pour la variable 'xpage' et 'page' c'est une erreur de transcription. En fait, je me suis apperçu que ma variable contiens bien le lien voulu mais elle est remise à vide lors de l'envoi du email (probablement un rechargement de page). Je me suis tourné vers une variable de session et tout fonctionne bien (mais je détruit la variable à chaque arrivé sur la page pour la réutiliser avec une nouvelle valeur).

Je marque le problème comme résolu, mais je vais quand même essayer la solution de Apatik et Sapma car j'aimerais mieux une simple variable.
Je suis débutant en php mais j'aime bien réussir à comprendre la mécanique.

Finalement, mon fichier php contient la valeur de la page de référence mais il est rechargé, donc je la perds à ce moment.
Merci encore ! :)
0