8791 sujets

Développement web côté serveur, CMS

Bonjour,

voila j'ai un petit soucis :

ceci ne fonctionne pas :

$dir = "voiture" ;
$path. = "../photos/$dir/";

par contre ceci oui :

$path. = "../photos/voiture/";


le probleme c'est que $dir ,n'est jamais le meme, donc ca me pose probleme

qui peut m'eclairer la dessus ?


la valeur de $dir vient d'une page formulaire


pour info la suite de mon code c'est juste ceci

if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
$source_file = $path.(strtolower($_FILES['Filedata']['name']));
move_uploaded_file($_FILES['Filedata']['tmp_name'], $source_file);

}


Merci

Rudy
Modifié par zen2cool (17 Aug 2008 - 15:50)
Hello Rudy,

zen2cool a écrit :

ceci ne fonctionne pas :

$dir = "voiture" ;
$path. = "../photos/$dir/";

par contre ceci oui :

$path. = "../photos/voiture/";
Alors ça, je ne vois pas comment ce serait possible Smiley rolleyes !

zen2cool a écrit :
la valeur de $dir vient d'une page formulaire
Le problème vient sûrement de la récupération de cette variable. As-tu essayé de faire un echo $dir; juste avant de faire la concaténation avec $path ?

Sinon il faudrait voir le code de ton formulaire et de la récupération. Smiley cligne

A+
Salut,

essaye peut etre comme cela :



$dir = "voiture" ;
$path = "../photos/".$dir."/";
FunK a écrit :
Salut,

essaye peut etre comme cela :



$dir = "voiture" ;
$path = "../photos/".$dir."/";
Euh... même si cette version est à mon goût plus lisible je ne vois aucune raison pour qu'une variable entre guillemets "$dir" ne soit pas interprétée Smiley murf .
Heyoan a écrit :
Euh... même si cette version est à mon goût plus lisible je ne vois aucune raison pour qu'une variable entre guillemets "$dir" ne soit pas interprétée Smiley murf .


Je sais pas s'il a fait une faute de frappe ou pas mais il a mit

$path. = "..."

il a peut etre voulu utiliser ".="
Modifié par FunK (17 Aug 2008 - 04:43)
FunK a écrit :

Je sais pas s'il a fait une faute de frappe ou pas mais il a mit
$path. = "..."
Ah oui, exact... mais cela dit avec un espace entre le . et le = il y aurait forcément eu une parse error.
merci de m'avoir repondu,

non pas de parse error, mais cette nuit j'ai mis un peu partour des marqueurs pour voir d'ou vennait l'erreur, et elle venait de plus haut au passage de mes variables

j'avais mis ma variable $dir dans un INPUT hidden et elle ne passait pas,

<input type="hidden" value="<?echo $dir;?>"/>


alors j'ai changé et j'ai mis ma variable dans l'appel de page FORM

<form action="upload.php?testzen=<?echo $dir;?>".... 



et depuis ca fonctionne correctement, je vais donc laisser comme ca ...

encore merci a tous, ce post est resolu

merci
C'est normal que ca fonctionne pas ton input hidden, il faut un nom de variable avec name="", mais là tu as une valeur (value="<?echo $dir;?>) mais pas de name="dir"...
Re',

zen2cool a écrit :

et depuis ca fonctionne correctement, je vais donc laisser comme ca ...
C'est toi qui vois mais tu coup tu passes à côté d'une bonne occasion d'apprendre quelque chose ! Smiley murf

Par exemple :

* pour pouvoir récupérer la valeur d'un champ de formulaire, il faut que ce dernier ait un attribut name. Ce qui donne :
<input type="hidden" name="dir" value="<?php echo $dir; ?>" />

* selon le paramétrage (si register_globals est à OFF. cf. Google) tu peux être obligé de déclarer la provenance d'une variable et tu ne pourras pas utiliser directement $dir. Il faudra utiliser soit $_GET['dir'], soit $_POST['dir'], soit $_REQUEST['dir'].

* si tu ne précises pas l'attribut method (get ou post) de la balise <form> ce sera get par défaut.

* etc, etc...

A+


PS : si tu considères que ce sujet est [Résolu], merci de l'indiquer dans le titre. Smiley cligne
Modifié par Heyoan (17 Aug 2008 - 14:27)
en faite le name="xxxx" etait bien dans le reste du code, et j'ai recodé en utilisant le imput hidden name value ...

et depuis ca roule

encore merci

Rudy