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 :wink:

Re: url dans une variable

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