Page 1 sur 1
url dans une variable
Posté : 14 sept. 2010, 15:30
par andreu
Bonjour à tout le monde
Voici mon petit problème:
J'ai une page (resultat.php) sur laquelle je récupère depuis une base (Mysql) des liens de site.
$nom = le nom
$url = url du site.
Cela s'affiche de cette manière:
<a href='page-site.php?nom=$nom&url=$url' target='blank'>
Ensuite ces liens renvoie vers une page (page-site.php) ou s'affichera le site.
//je récupère le nom et l'url
$nom2= $_GET["nom"];
$url2= $_GET["url"];
//là s'affiche le site
<iframe SRC='$url2' WIDTH='100%' HEIGHT='100%' >
</iframe>
Le problème est que lorsque j'ai une url simple (dans la base) genre
http://www.pyrenee.com tout va bien
mais lorsque j'ai
http://alpe.com?lait=brebis&fromage=tome je ne récupère que jusqu'à (
http://alpe.com?lait=brebis).
J'espère que je me suis bien expliqué. Merci pour toute réponse.
Andreu
Re: url dans une variable
Posté : 14 sept. 2010, 16:19
par Superpilou
Enlève le amp;.
Normalement ca devrait marcher pour ton url
Re: url dans une variable
Posté : 14 sept. 2010, 21:00
par andreu
j'ai beau enlever le amp, cela ne marche pas.
Re: url dans une variable
Posté : 14 sept. 2010, 21:34
par Ryle
Le problème, c'est que si ton url contient un &, le navigateur va considérer qu'il s'agit d'un nouveau paramètre destiné à page-site.php
Pour éviter cela, il te faut encoder la chaine avant de la passer dans l'url avec urlencode() ou rawurlencode(). Les éventuels & seront convertis (en %26 de mémoire) et seront donc conservés quand envoyés dans l'url. Puis dans page-site.php tu pourras utiliser urldecode()

Re: url dans une variable
Posté : 14 sept. 2010, 22:54
par andreu
Merci pour vos réponses
ce que j'ai fait:
$url_encode=urlencode($url);
<a href='page-site.php?nom=$nom&url=$url_encode' target='blank'>
Je dois mal m'y prendre, car cela l'encode bien; mais dés que le serveur renvoie l'html il me le décode???
Re: url dans une variable
Posté : 14 sept. 2010, 23:22
par stealth35
tu mélanges le php et le html la, regarde ton code source
Re: url dans une variable
Posté : 15 sept. 2010, 20:25
par andreu
Bonjour
Je ne pense pas mélanger le html et php . le seul truc je n'ai pas mis tout le code .
<?php
$url_encode=urlencode($url);
echo "
<a href='page-site.php?nom=$nom&url=$url_encode' target='blank'> ";
?>
Re: url dans une variable
Posté : 15 sept. 2010, 20:35
par stealth35
Bonjour
Je ne pense pas mélanger le html et php . le seul truc je n'ai pas mis tout le code .
<?php
$url_encode=urlencode($url);
echo "
<a href='page-site.php?nom=$nom&url=$url_encode' target='blank'> ";
?>
oki, donc la ca marche ?
Re: url dans une variable
Posté : 15 sept. 2010, 21:37
par andreu
non lorsque s'affiche le lien avec le echo. Et que l'on regarde le source html, les & réapparaissent. En fait cela annule le urlencode .
Re: url dans une variable
Posté : 15 sept. 2010, 21:40
par stealth35
non lorsque s'affiche le lien avec le echo. Et que l'on regarde le source html, les & réapparaissent. En fait cela annule le urlencode .
montre
Re: url dans une variable
Posté : 15 sept. 2010, 21:48
par AB
Utilises plutôt rawurlencode et rawurldecode
Re: url dans une variable
Posté : 15 sept. 2010, 22:00
par andreu
excusez moi en fait cela marche. je me suis trompé de fichier. Du coup je ne regardai pas le bon code source.
<a href='page-site.php?nom=&url=http%3A%2F%2Falpe.com%3Flait%3Dbrebis%26amp%3Bfromage%3Dtome' target='blank'>le lien</a>
Mille excuse et merci à tous de m'avoir aider.
Re: url dans une variable
Posté : 15 sept. 2010, 22:23
par AB
Utilises quand même plutôt rawurlencode et rawurldecode

Re: url dans une variable
Posté : 15 sept. 2010, 22:31
par andreu
Oui je regardai la différence . Tu as raison merci bien