IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

htmlspecialchars et "&" ?


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut htmlspecialchars et "&" ?
    Salut,

    j'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $url = htmlspecialchars($_GET['url']);
    Je voudrais savoir comment faire pour qu'il n'encode pas en HTML le "&" uniquement, je veux le garder sous cette forme, pour que certains liens puissent continuer à fonctionner.

    Merci de votre aide

    Kev'

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    & ou & c'est pareil

  3. #3
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Bonjour et merci de l'intérêt,

    cependant lorsque j'ai une addresse URL du type :
    Et bien elle ressors comme ceci :
    Donc bien sur, le lien ne fonctionne plus :S

    Kev'

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    essaie plutot avec htmlentities()

  5. #5
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Problème identique.

    Le code complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php 
    $url = htmlentities($_GET['url']);
    	if ($url == "") {
    		echo "";
    	}
    	else {
    		echo "<a href=\"".$url."\">Close this border</a>";
    	}
    ?>
    </div></table>
     
    <div id=outer-separator><div id=separator></div></div><tr><td>
     
    <?php 
    	if ($url == "") {
    		echo "<center>Please check the link ...<br/><br/><a href=\"http://www.le-site.com\">Go back to the Website</a></center>";
    	}
    	else {
    		echo "<iframe scrolling=auto id=rf src=\"".$url."\" frameborder=0 allowtransparency=true style=\"width:100%;height:100%\"></iframe>";
    	}
    ?>
    Si tu veux, je peux te passer le lien de la page en question

    Merci,
    Kev'

  6. #6
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Bon, pour tester j'ai essayé cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $url1 = htmlentities($_GET['url']);
    echo $url1;
    $url = str_replace("&amp;",'&',$url1);
    Et même en faisant juste un echo, l'adresse est coupé avant le '&'... j'ai loupé quelque chose? Ou je dois vraiment partir en vacances maintenant ?

    Regards,

  7. #7
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Je sais j'ai relevé la même chose que toi mais je n'ai pas eu le temps de chercher...

    Et même pire ! Si tu fais un simple echo $_GET
    Le problème se situe peut-être sur le serveur dans la config ou un htaccess....

  8. #8
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Citation Envoyé par blueice Voir le message
    Je sais j'ai relevé la même chose que toi mais je n'ai pas eu le temps de chercher...

    Et même pire ! Si tu fais un simple echo $_GET
    Le problème se situe peut-être sur le serveur dans la config ou un htaccess....
    Voila exact, je viens de tester tout simplement cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $url = $_GET['url'];
    ?>
    Et IDEM ...

    Donc je ne suis pas fou, merci

    Assez embetant, je vais continuer de chercher

    Regards,

    EDIT : Aucun .htaccess en service

  9. #9
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Oui d'ailleurs si j'ai le même problème c'est évident que ça vient pas de là, donc ça doit être logique...mais je veux bien savoir pourquoi

  10. #10
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Citation Envoyé par blueice Voir le message
    Oui d'ailleurs si j'ai le même problème c'est évident que ça vient pas de là, donc ça doit être logique...mais je veux bien savoir pourquoi
    +1, je n'ai presque plus aucun cheveux... je fouille le web

  11. #11
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Heu... je viens de penser à quelque chose assez évident...

    Dès que le serveur rencontre un '&', il pense que c'est une donnée dans l'URL supplémentaire donc s'arrête avant, non?

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.monsite.com/extern.php?url=http://www.monsite.com/index.php?page=perso&callsign=BCY001
    Il va logiquement prendre :
    - url : http://www.monsite.com/index.php?page=perso
    - callsign : callsign=BCY001

    Et puisque je demande 'url' il me donne ce que la donnée contient.

    Regards,

  12. #12
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    La solution :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $url = explode('?url=',$_SERVER['REQUEST_URI']);
    echo $url[1];

  13. #13
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Mon sauver, cela fonctionne à merveille

    Désolé pour mes erreurs de "up" et des mp reçus

    A bientôt,

    Regards,

  14. #14
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    de rien

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo