begin process at 2012 05 30 22:29:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Non reconnaissance d'une variable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Non reconnaissance d'une variable

jeudi 17 mars 2011 à 18:24:58 | Non reconnaissance d'une variable

BrunoAUT

j'ai une page php de téléchargement d'image avec en variable le nom du fichier (Ci-dessous la page de code ). La variable est renseignée dans une page php précédente en cliquant sur la photo à télécharger. Mon soucis est qu'il me semble que la variable n'est pas reconnue, car c'est la page php de téléchargement qui est appelé au téléchargement et non la photo !! Ca fait une semaine que je fais tous les essais possible et que rien n'y fait. A titre d'exemple, voici le lien que me donne la page php d'appel au téléchargement :

http://www.veloloisirceyresten.fr/html/rando/download_ravito1.php?fichier=DSC01100.JPG

Page de téléchargement :

<?php
$tableau = explode (".",$file);
$nb_element_1 = count ($tableau) -1;
if ($tableau[$nb_element_1] != "php") {
header("Content-disposition: attachment; filename=$file");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize("./photos_chgt/ravito1/".$file));
header("Pragma: no-cache");
header("Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile("./photos_chgt/ravito1/".$file);
}
else {
header("Location: photos_ravito1.php");
}
?>

Merci de votre aide
Bruno
vendredi 18 mars 2011 à 09:06:36 | Re : Non reconnaissance d'une variable

cod57

bonjour

//place voir ce bout de code avant $tableau
//je crois que ton fichier est absent

if(isset($_GET['fichier']) && !empty($_GET['fichier'])){

echo $file = $_GET['fichier'];

} else {

echo 'fichier inexistant !'; exit;

}

//et ça plus loin

$tableau = explode (".",$file); /*comme avant*/

/*aspect du tableau*/
echo '<pre>';
print_r($tableau);
echo '</pre>';

echo $nb_element_1 = count ($tableau) -1;

exit; /*on enleve les exit ... apres les tests*/

a++
vendredi 18 mars 2011 à 11:36:39 | Re : Non reconnaissance d'une variable

BrunoAUT

merci de ton aide, le "fichier" est absent (j'ai le message en test), mais j'ai en fait fait une erreur d'écriture dans la commande qui appelle la page de téléchargement. Sa syntaxte est en fait :

http://www.veloloisirceyresten.fr/html/rando/download_ravito1.php?file=DSC01100.JPG

Ci-dessous également la page php qui appelle la page de téléchargement
Bruno

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><html>
<title>Forcer le DL</title>
</head>

<body>
<body background="../../Images/arrplan2.gif"
<?php
// on ouvre le répertoire
$dossier = opendir ("./photos_visu/ravito1/");

// on regarde tous les éléments du dossier
while ($fichier = readdir ($dossier)) {
// on teste la valeur de l'élément
if ($fichier != "." && $fichier != "..") {
$tableau = explode (".", $fichier);
$nb_element_1 = count ($tableau) -1;
if ($tableau[$nb_element_1] != "php") {
// si l'élément est bien un fichier (différent de . et de ..), et que son extension n'est pas php, on affiche un lien vers notre script de téléchargement (download.php) avec en paramètre le nom du fichier à télécharger
echo '<a href="./download_ravito1.php?file='.$fichier.'"><img src="..//rando/photos_visu/ravito1/'.$fichier.'" width="216" height="144" border="0"></a>&nbsp;';
}
}
}

// on ferme le dossier
closedir ($dossier);
?>
</body>
</html>
vendredi 18 mars 2011 à 14:30:29 | Re : Non reconnaissance d'une variable

cod57

bon j'ai testé ton script
il fonctionne parfaitement
$_GET['file'] et pas $_GET['fichier'] ...
je pense que c'est dans la gestion des repertoires ...
il doit y avoir un problème il faudrait verifier l'agencement des repertoires ../ j'ai vu un .// plutot ./



ça marche chez moi comme ça ...
Code PHP :
<?php 
// on ouvre le répertoire 
$dossier = opendir ("./photos_visu/ravito1/"); 

// on regarde tous les éléments du dossier 
while ($fichier = readdir ($dossier)) { 
// on teste la valeur de l'élément 
if ($fichier != "." && $fichier != "..") { 
$tableau = explode (".", $fichier); 
$nb_element_1 = count ($tableau) -1; 
if ($tableau[$nb_element_1] != "php") { 
// si l'élément est bien un fichier (différent de . et de ..), et que son extension n'est pas php, on affiche un lien vers notre script de téléchargement (download.php) avec en paramètre le nom du fichier à télécharger 
echo '<a href="?file='.$fichier.'"><img src="./photos_visu/ravito1/'.$fichier.'" width="216" height="144" border="0"></a>&nbsp;'; 
} 
} 
} 

// on ferme le dossier 
closedir ($dossier); 
?> 


<?php
//place voir ce bout de code avant $tableau 
//je crois que ton fichier est absent 

if(isset($_GET['file']) && !empty($_GET['file'])){ 

echo $file = $_GET['file']; 

} else { 

echo 'fichier inexistant !'; exit; 

} 

//et ça plus loin 

$tableau = explode (".",$file); /*comme avant*/ 

/*aspect du tableau*/ 
//echo '<pre>'; 
//print_r($tableau); 
//echo '</pre>'; 

echo $nb_element_1 = count ($tableau) -1; 

//exit; /*on enleve les exit ... apres les tests*/ 


$tableau = explode (".",$file); 
$nb_element_1 = count ($tableau) -1; 
if ($tableau[$nb_element_1] != "php") { 
header("Content-disposition: attachment; filename=$file"); 
header("Content-Type: application/force-download"); 
header("Content-Transfer-Encoding: binary"); 
//header("Content-Length: ".filesize("./photos_chgt/ravito1/".$file));   /*ici ?*/
header("Pragma: no-cache"); 
header("Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0"); 
header("Expires: 0"); 
readfile("./photos_chgt/ravito1/".$file); 
} 
else { 
header("Location: photos_ravito1.php"); 
} 
?> 
vendredi 18 mars 2011 à 15:19:15 | Re : Non reconnaissance d'une variable

BrunoAUT

Je ne vois pas ou il y aurait .\_ à la place de .\, si tu pouvais préciser.
Je suis septique sur un problème de gestion des répertoires, car j'ai fait un test en remplaçant dans la page php de téléchargement la variable $file par le nom du fichier en dur et ça fonctionne parfaitement!!!

J'ai vraiment la sensation que la variable n'est pas prise en compte. cela peut-il venir d'un paramétrage de php. Je suis hebergé chez srato. Ca fonctionnait chez lycos, mais maintenant ça ne tourne plus.

Bruno
vendredi 18 mars 2011 à 17:56:13 | Re : Non reconnaissance d'une variable

cod57

tu peux tester le code ici
j'ai refais un code il semble ok sur free ...
essaie sur ton hebergeur
a++

ici

Code PHP :
<?php 
// on ouvre le répertoire 
$dossier = opendir ("./photos_visu/ravito1/"); 
// on regarde tous les éléments du dossier 
while ($fichier = readdir ($dossier)) { 
// on teste la valeur de l'élément 
if ($fichier != "." && $fichier != "..") { 
$tableau = explode (".", $fichier); 
$nb_element_1 = count ($tableau) -1; 
if ($tableau[$nb_element_1] != "php") { 
// si l'élément est bien un fichier (différent de . et de ..), et que son extension n'est pas php, on affiche un lien vers notre script de téléchargement (download.php) avec en paramètre le nom du fichier à télécharger 
echo '<a href="images.php?image='.$fichier.'"><img src="./photos_visu/ravito1/'.$fichier.'" width="216" height="144" border="0"></a>&nbsp;'; 
} 
} 
} 
// on ferme le dossier 
closedir ($dossier); 
exit;
?>



images.php
Code PHP :
<?php
ob_start();
$filename=$_GET['image'];
$f=$filename;
echo 'http://abyz.free.fr/testphpcs/photos_visu/ravito1/'.$filename.'<br />'; 

$file_extension = strtolower(substr(strrchr($f,"."),1));

switch ($file_extension) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpe": case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}

if (!file_exists('photos_visu/ravito1/'.$f)) {
die("NO FILE HERE");
}

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";");

//header("Content-Disposition: attachment; filename=\"".$filename."\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".@filesize($filename));
//set_time_limit(0);
@readfile("$filename") or die("File not found.");
ob_end_flush(); 
?>

vendredi 18 mars 2011 à 19:26:14 | Re : Non reconnaissance d'une variable

BrunoAUT

J'ai fini par trouver. En fait l'hébergeur n'accepte pas le transfert tel quel de la variable. Il faut que je transfère le nom du fichier dans la variable de téléchargement par un GET. En clair ma page qui était :

<?php
$tableau = explode (".",$file);
$nb_element_1 = count ($tableau) -1;
if ($tableau[$nb_element_1] != "php") {
header("Content-disposition: attachment; filename=$file");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize("./photos_chgt/ravito1/".$file));
header("Pragma: no-cache");
header("Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile("./photos_chgt/ravito1/".$file);
}
else {
header("Location: photos_ravito1.php");
}
?>

est devenue

<?php

$fichier = $_GET["file"];
$tableau = explode (".",$file);
$nb_element_1 = count ($tableau) -1;
if ($tableau[$nb_element_1] != "php") {
header("Content-disposition: attachment; filename=$fichier");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize("./photos_chgt/ravito1/".$fichier));
header("Pragma: no-cache");
header("Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile("./photos_chgt/ravito1/".$fichier);
}
else {
header("Location: photos_ravito1.php");
}
?>

C'est en fait très simle à corriger mais plus comp^liqué à trouver !!
Merci du temps que tu m'as accordé.
Bruno


Cette discussion est classée dans : page, variable, php, téléchargement, reconnaissance


Répondre à ce message

Sujets en rapport avec ce message

transferer une variable d'objet de page en page ?? [ par Arkko ] slt ... j'aimerais savoir si y'a un moyen de transferer une variable d'objet d'une page a un autre ???exemple:1.php:MaClasse = new Maclasse;?>2.php2.p variable php [ par Polux6 ] Bonjour! Je suis nouveau dans le monde du php et j'aimerais savoir si c'est possible d'envoyer grace à un formulaire un tableau dynamique.En fait j'ai variable et url ???? [ par fab_59 ] bonjour, j'aimerais savoir comment on configure la page php, si la variable est dans l'url, du type http://var.site.fr/comment peut on faire pour recu robleme de variable PHP 1.7 [ par rich25200 ] bonjour,j'utilise easyPHP 1.7 et j'ai un proble de variable..J'ai ma page index.php et lorsque je clique sur un lien j'envoie la meme page avec des va onClick et PHP [ par zoukozouko ] Voila, j'ai besoin de modifier une variable en clickant sur un lien, sans reloader la page.j'aimerais un code du styleecho "target=\"mon iframe\" onCl variable php dans une page text.js [ par sana56 ] bonjourvoila, j'ai une couleur qui est stocké dans une base de donnée mysqlet dans une page apellé test.js j'ai :this.bodyStyle = 'background-color: # variable [ par chrys76 ] CHRYSj'ai une variable dans une page.php $nb1=rand( 0, 1000 );et je voudrais la faire passer dans une autre page.php et dans une autre variable comme variable php dans iframe [ par putch ] bonjour à tous!voila un petit souci :dans une page g un tableau de 3 lignes contenant un formulairesauf que la 2eme ligne est une iframe et que pour v variable de html-->php sur la meme page [ par myrzhin21 ] sltg une petite questiong une page html ou se trouve une balise selectg voudrai récup la donnée sélectionné de cell-ci ds un script php se trouvan sur Charger une variable [ par lichelibidiche ] Salut a tous!Je voudrais savoir comment charger un variable d'un autre page php. Par exemple j'ai une page qui s'appelle tableau.php et l'autre qui s'


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales