Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/12/2010, 15h28   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 11
Points : 11
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 :
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 :
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 :
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 :
Citation:
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.
DarkVadorette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 16h59   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
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.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 17h08   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 11
Points : 11
En entrant l'URL suivante :
www.monsite.com/fichier.php?lang=php&str=include

Et avec le code suivant :
Code php :
1
2
3
<?php
var_dump ($_GET)
?>

Je récupères ceci :
Citation:
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 ?
DarkVadorette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 17h15   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
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 :
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.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 17h18   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 11
Points : 11
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.
DarkVadorette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 17h19   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
Effectivement, j'étais en train d'écrire mon message pendant que tu complétais le tien
un p'tit clic sur ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 10h59   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 11
Points : 11
Merci à vous.
Résolu.
DarkVadorette est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h53.


 
 
 
 
Partenaires

Hébergement Web