Pb de passage de variable avec $_GET

canard338
Invité n'ayant pas de compte PHPfrance

19 janv. 2015, 14:07

Après recherche sur différents forums, je n'ai pas trouvé mon bonheur.
Peut-être qq aura la solution.
J'ai simplifié le pb pour l'exposer.
J'ai le fichier php suivant :
<html>
<head></head>
<body>
<?php
echo "<p>" . $_GET['f'] . "</p>";
echo "<p>" . dirname($_GET['f']) . "</p>";
echo "<p>" . basename($_GET['f']) . "</p>";
$buf = dirname($_GET['f']) . "/" . basename($_GET['f']);
echo "<p>" . $buf . "</p>";
$buf2 = implode ( "/" , explode ( "/" , $_GET['f']));
var_dump (explode ( "/" , $_GET['f']));
echo "<p>" . $buf2 . "</p>";
echo "<p>Filesize 1 : " . filesize(rawurldecode($_GET['f'])) . "</p>";
echo "<p>Filesize 2 : " . filesize("../../CDPE/Documentation/Excel.xlsx") . "</p>";
echo "<p>Filesize 3 : " . filesize($buf) . "</p>";
echo "<p>Filesize 4 : " . filesize($buf2) . "</p>";
?>
</body>
</html>
Je l'appelle pour l'exemple par :
echo '<div class="col1"><a href="inc/dl.php?f=../../CDPE/Documentation/Excel.xslx"> <img alt="fichier" src="images/' . $buf .'.png" /></a></div>';
Et j'ai le résultat suivant :
../../CDPE/Documentation/Excel.xslx
../../CDPE/Documentation
Excel.xslx
../../CDPE/Documentation/Excel.xslx
array(5) { [0]=> string(2) ".." [1]=> string(2) ".." [2]=> string(4) "CDPE" [3]=> string(13) "Documentation" [4]=> string(10) "Excel.xslx" }
../../CDPE/Documentation/Excel.xslx
Filesize 1 :
Filesize 2 : 7754
Filesize 3 :
Filesize 4 :
Pourquoi donc ?
Merci pour votre aide.

ViPHP
xTG
ViPHP | 7331 Messages

19 janv. 2015, 14:37

Pourrais-tu expliciter ta question ?
Car je ne vois rien de choquant dans ce que tu nous présentes.

canard338
Invité n'ayant pas de compte PHPfrance

19 janv. 2015, 15:11

Bonjour,

Pourquoi n'ai-je pas 4 fois la même valeur devant correspondre au filesize ?
Là c'est un exemple.
Dans mon pg, je voudrais passer le chemin complet du fichier et pouvoir récupérer le filesise. Hors il ne s'affiche pas.
Je dois faire une erreur qq part ou il y a un problème d'encodage des caractères avec le $_GET.
En fait je ne trouve pas pourquoi il semble bien afficher la string mais qu'il ne me remonte pas la valeur du filesize.

Cdt,

ViPHP
ViPHP | 4039 Messages

19 janv. 2015, 15:32

Tu nous affiches le rendu HTML du résultat.. montre nous un peu le code source de ce rendu :wink:

Par ailleurs, il serait sans doute utile de s'assurer que les erreurs, avertissements et notifications de PHP sont bien activés.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

canard338
Invité n'ayant pas de compte PHPfrance

19 janv. 2015, 23:41

Bon j'ai cherché pour faire afficher les erreurs.
En fait dans les 3 cas il y a l'erreur
Avertissement : filesize(): stat failed for ../../CDPE/Documentation/Excel.xslx ligne 92

Bon ça ne m'évoque pas grand chose.

Mammouth du PHP | 688 Messages

19 janv. 2015, 23:50

çà peut être une histoire de droit insuffisant pour avoir les infos sur les fichiers.
que retourne la fonction is_readable ?

canard338
Invité n'ayant pas de compte PHPfrance

20 janv. 2015, 00:11

Non car le Filesize 2 ne retournerait pas la valeur puisque ces 4 appels à la fonction filesize pointent sur le même fichier.

Eléphant du PHP | 170 Messages

20 janv. 2015, 01:08

Bonsoir,
Tu nous affiches le rendu HTML du résultat.. montre nous un peu le code source de ce rendu :wink:

Eléphant du PHP | 170 Messages

20 janv. 2015, 08:26

xlsx != xslx :wink:

canard338
Invité n'ayant pas de compte PHPfrance

20 janv. 2015, 09:16

Et comment je le trouve ce code source.
Je ne comprends pas ce que je dois montrer :
Tu nous affiches le rendu HTML du résultat.. montre nous un peu le code source de ce rendu
Dsl

ViPHP
ViPHP | 4039 Messages

22 janv. 2015, 14:24

Et comment je le trouve ce code source.
Je ne comprends pas ce que je dois montrer :
Tu nous affiches le rendu HTML du résultat.. montre nous un peu le code source de ce rendu
Dsl
Tu génères une page HTML, que tu regardes dans un navigateur. Fait un petit ctrl+u, et tu verras le code source de la page HTML, que je suis si curieux de voir de mes petits yeux :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.