Comment transmettre une variable dans une URL

Eléphant du PHP | 271 Messages

17 févr. 2007, 01:30

bonsoir,

Je souhaite transmettre cette variable avec une requête http mais "bien sûr" je n'y arrive pas.
$liencarte="temp/".$nomcarte;
Je souhaite la transmettre avec ce lien qui est dans la même page
echo"<p><a href=http://www.sitweb-chr.com/phpmail.php?nom=$nom&nom_dest=$nom_dest>Envoyer</a></p>";
J'ai essayé plusieurs solutions sans succés et très sincèrement même si la solution "crève les yeux" je n'y arrive pas. Ce serait cool de me donner un petit coup de main.
Merci d'avance
Patience et obstination sont des qualités !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 févr. 2007, 01:36

Une url se divise en deux parties : l'adresse et les paramètres. Les paramètres sont tout ce qui suit le caractère "?", l'adresse ce qui précède. Les paramètres sont passer sous la forme de couple "nom=valeur" et sont séparés par des "&"

L'url suivante
$url = 'http://www.sitweb-chr.com/phpmail.php?nom='.$nom.'&nom_dest='.$nom_dest;
enverra donc les deux paramètres "nom" et "nom_dest" en GET, avec pour valeur respective $nom et $nom_dest.

Pour ajouter un nouveau paramètre, il te suffit d'ajouter un & pour le séparer des autres, de spécifier son nom et sa valeur et le tour sera joué :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 271 Messages

17 févr. 2007, 11:54

merci de l'aide mais mon problème reste entier. Je tourne en rond sans m'en sortir..
Bref ci - dessous les 2 scripts. un script pour créer la carte, l'autre pour l'envoyer. Les paires nom=valeur (?nom=$nom&..) sont transmisent au script de phpmail.
Le script qui créer la carte
//création du fichier HTML contenant la carte

$fichier=fopen("temp/".$nomcarte,"w+");
fputs($fichier, "<html>\n");
fputs($fichier, "<head>\n");
fputs($fichier, "<title>Une jolie carte postale</title>\n");
fputs($fichier, "</head>\n");
fputs($fichier, "<body>\n");
fputs($fichier, "<h4>Une jolie carte postale pour $nom_dest!</h4><hr>\n");
fputs($fichier, "<font face='arial' size='2'><p>\n");
fputs($fichier, "Bonjour $nom_dest,</p>\n");
fputs($fichier, "<table width='600' align='center'>\n");
fputs($fichier, "<tr>\n");
fputs($fichier, "<td>$message</td><td><img src='$nomfichier'></td></tr></table>\n");
fputs($fichier, "<p>Postée par $nom</p></font>\n");
fputs($fichier, "</body></html>\n");
fclose($fichier);


//affichage du lien vers le fichier

$liencarte="temp/".$nomcarte;

echo "<b>Carte créée avec succès !</b><br><br>";
echo "<a href='$liencarte'>Voir la carte</a>"; //ce lien fonctionne, normal je suis sur le site

//prévenir le destinataire//
echo"<p> href=http://www.sitweb-chr.com/newsletter/phpmail.php?nom=$nom&nom_dest=$nom_dest&email_dest=$email_dest&message=$message&monfichier=$monfichier&lien=$liencarte>Envoyer la carte</a></p>";

Comme on peut le constater ci dessous et notamment la variable $liencarte est traduite dans le code ci-dessous par lien=temp/86alain.htm

Code : Tout sélectionner

href=http://www.sitweb-chr.com/newsletter/phpmail.php?nom=al&nom_dest=valérie&[email protected]&message=bonne bières..10h01&monfichier=/tmp/phpwWamHy&lien=temp/86alain.htm>Envoyer la carte
Ci - dessous le script de phpmail
Lorsqu'on recoit le mél et que l'on veut cliquer sur le lien l'adresse s'affiche de la façon suivante :
www.sitweb-chr.com/newsletter/temp (ici il manque la variable $liencarte)
Les autres variables s'affichent correctement dans le mél.
<?


//mail au format html au destinataire de la carte

$sujet="Une Jolie carte vous est adressée !";

$expediteur="sitweb-chr.com";
$headers="From: $expediteur\nReply-To: $expediteur\nContent-Type: text/html; charset=\"iso-8859-1\"\n";

$corps="<html><body><font face=arial size=2>Bonjour ".$nom_dest.", ".
	"<p>Une carte postale électronique a été postée pour vous<br>".
	"<p><a href=http://www.sitweb-chr.com/newsletter/temp/".$liencarte.">Cliquez-ici pour la voir</a></p>".
	"<p>par <b>".$nom."</b></p>".
	"<p>Merci de votre visite<br>A bientôt</br></p>".
	"</font></body></html>";



mail($email_dest, $sujet, $corps, $headers);


echo "<p>Destinataire prévenu.</p>";

?>
Dans le mél, le lien devrait s'affichait de la façon suivante :
www.sitweb-chr.com/newsletter/temp/86alain.htm. Malheureusement il manque : 86alain.htm
Où ai - je fais une erreur ou comment faut il faire car la je "séche" ? (ça ne va pas tarder, ça fait un moment que je suis dessus)
D'avance je vous remercie de l'aide que vous pourrez m'apporter.
Patience et obstination sont des qualités !

Eléphant du PHP | 259 Messages

17 févr. 2007, 12:28

hello,

dans la plupart des cas, les variables transmises à une page par l'url sont accessibles par le biais du tableau $_GET.

exemple : "mapage.php?truc=machin" tu récupereras la valeur de "truc" comme ceci : $maValeur = $_GET['truc'];

si ce n'est pas comme ceci que tu procedes, essaye.