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 :

Bibliothèque GeshI : problème de manipulation


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Points : 32
    Points
    32
    Par défaut Bibliothèque GeshI : problème de manipulation
    Bonjour à tous et à toutes.
    J'ai un gros problème de manipulation de la bibliothèque GesHI, qui permet la coloration syntaxique de nombreux langages grâce à une bibliothèque codée en PHP très pratique.
    J'ai besoin de m'en servir comme cela :
    - L'user entre une URL de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.monsite.com/colorisator.php?lang=nomdulangage&string=script
    - Mon code PHP récupère les arguments, puis appelle l'include GesHI et s'en sert
    - GesHI affiche le code source colorisé

    Normalement ça marche comme ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    include_once('geshi.php'); 
     
    $source = '$mavariable = "fichier.php";
    include($mavariable);';
     
    geshi_highlight($source, 'php', $path);
    ?>

    J'ai donc fait une adaptation comme ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    include_once('geshi.php');
     
    $source = $_GET["str"];
    $lang = $_GET["lang"];
     
    geshi_highlight($source, $lang, $path);
    ?>

    Mais ça ne fonctionne pas !
    Une erreur de syntaxe ? En tout cas je ne comprend pas.
    Voila le rapport d'erreur :
    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 2020

    Warning: Invalid argument supplied for foreach() in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 2020

    Warning: Invalid argument supplied for foreach() in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 2392

    Warning: implode() [function.implode]: Argument must be an array in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 3345

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 3368

    Warning: Invalid argument supplied for foreach() in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 3368

    Warning: Invalid argument supplied for foreach() in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 3409

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 3461

    Warning: Invalid argument supplied for foreach() in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 3461

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 3606

    Warning: Invalid argument supplied for foreach() in /home/users/00/1f/04/home/www/includes/geshi/geshi.php on line 3606
    A noter que le premier script, sans la variable $_GET fonctionnait très bien...
    Merci d'avance de votre aide, joyeuses fêtes en tout cas.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Eh bien bêtement je commencerais par faire un var_dump de $_GET pour vérifier ce qu'il ya dedans et ce que tu récupères.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    En entrant l'URL suivante :
    www.monsite.com/fichier.php?lang=php&str=include

    Et avec le code suivant :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    var_dump ($_GET)
    ?>

    Je récupères ceci :
    array(2) { ["lang"]=> string(3) "php" ["str"]=> string(7) "include" }
    Oh GOOOOD ! Je suis désolé, j'ai fait une erreur de manip, en fait ça marche très bien !
    Mais quel boulet je fais...

    EDITetite question tout de même, est-ce qu'l est possible de rentrer une URL avec carrément des caractères de tabulation, genre CRLF en particulier ?

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    A voir le message d'erreur, j'aurais tendance à dire qu'il ya quelque chose qui foire au niveau du chargement du langage.
    Essaye de décomposer le cas : en passant juste le langage dans l'url ou juste le code source...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    include_once('geshi.php'); 
     
    $source = '$mavariable = "fichier.php";
    include($mavariable);';
     
    $lang = $_GET["lang"];
     
    geshi_highlight($source, $lang, $path);
    Envisage également d'utiliser les fonctions urlencode et urldecode lorsque tu passeras le script.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Vous n'avez pas pu lire le reste de mon message, merci à vous en tout cas, les deux commandes citées me seront très utiles.

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Effectivement, j'étais en train d'écrire mon message pendant que tu complétais le tien
    un p'tit clic sur ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Merci à vous.
    Résolu.

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

Discussions similaires

  1. Problème de manipulation de tableaux
    Par proff dans le forum Pascal
    Réponses: 8
    Dernier message: 01/04/2007, 10h07
  2. Réponses: 16
    Dernier message: 30/01/2007, 00h20
  3. problème de manipulation de clip
    Par lecyberax dans le forum Flash
    Réponses: 4
    Dernier message: 04/06/2006, 13h31
  4. [DOM] Problème de manipulation DOM avec IE7
    Par volivi dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/04/2006, 10h49
  5. Réponses: 4
    Dernier message: 20/08/2004, 10h59

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