Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 05/05/2008, 11h33   #1
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
Par défaut [Upload] $_POST d'un input type=hidden

Bonjour,

Je suis en train de me chauffer sur le script de FancyUpload qui permet l'upload multiple de fichiers.

Je souhaiterais envoyer des données en même temps que le fichier afin de définir les chemins d'upload dans les répertoires. Je pensais faire ça via l'uitlisation de <input type="hidden" name="ref" value="test"/>.

Dans mon fichier PHP, je ne sais pas récupérer la valeur de mon hidden.
Jusqu'à présent, je n'ai fais ça qu'avec de l'AJAX en envoyant via la méthode POST ref=test et en faisant dans le PHP $_POST['ref'].

Merci d'avance
polothentik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 11h39   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
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 686
Points : 5 453
Points : 5 453
Ben euh...
si dans ton formulaire tu as
Code html :
<input type="hidden" name="ref" value="test">
dans la page d'arrivée, tu le recupères par $_POST['ref']... je ne comprends pas bien ton problème
__________________
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 05/05/2008, 11h52   #3
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
donc si je fais $_POST['ref'] je reçois 'test' ?

En fait mon formulaire serait en 2 temps :

J'envoie des données texte que j'insère dans ma BDD et qui me permettent de créer mes répertoires (pour un UPLOAD futur). Je renvoie les valeurs avec lesquelles j'ai créé mes répertoires dans un nouveau formulaire dans des input type hidden
Puis, l'upload multiple de fichiers dont le chemin d'upload est défini par les input type hidden
polothentik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 12h16   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
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 686
Points : 5 453
Points : 5 453
Ouh la !
Bon je résume : tu as un formulaire 1 visible, dont les données sont insérées dans ta base de données ET réinsérées dans un formulaire 2 caché pour renvoi vers un 3e script. C'est bien ça ?
genre page1 :
Code html :
<input type="text" name="mon_champ" value="chaussette">
page2 (récupération du formulaire de la page 1 et renvoi vers la page 3)
Code html :
<input type="hidden" name="mon_champ" value=" <?php echo $_POST['mon_champ']; ?> ">
page3 récupération de la valeur
Code php :
 echo "la valeur de mon_champ était ".$_POST['mon_champ'];
Est-ce plus clair comme ça ?
__________________
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 05/05/2008, 13h30   #5
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
En gros c'est ça ! Du coup, je cherche à poster le champ hidden...

Mais pour être plus clair...

Formulaire de la page 1 (PHP) - données text
--> les données sont envoyées via JAVASCRIPT + PHP
--> les données permettant de définir le chemin d'accès au répertoire sont envoyées en réponse et insérées dans un input HIDDEN

Formulaire de la page 2 (PHP) - multi upload
--> les données sont envoyées via PHP (pour le moment, ultérieurement avec JAVASCRIPT + PHP pour afficher la fiche récapitulative)
polothentik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 13h46   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
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 686
Points : 5 453
Points : 5 453
En fait, tu cherches à poster tes champs hidden de façon automatique ?
En règle générale, je mets un bouton submit avec une mention du genre "suivant >". Les champs étant cachés, tout ce que voit l'utilisateur c'est le bouton.
Sinon on doit pouvoir faire quelque chose avec du js (la fonction submit...)
__________________
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 05/05/2008, 13h54   #7
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
Je ne sais pas vraiment ce que tu veux dire par "de façon automatique" mais je cherche à récupérer la valeur inscrite dans mes champs hidden pour pouvoir faire :

Code :
1
2
3
4
$rep = $_POST['rep'];
$sousrep = $_POST['sousrep'];
$sousousrep = $_POST['sousousrep'];
move_uploaded_file($FILES['blabla']['tmp_name'],$rep.'/'.$sousrep.'/'.$soussousrep.'/'.$FILES['balbla']['name']);
Ce qui est étrange, c'est que pour l'instant si j'ai :
Code :
<input type="hidden" name="rep" value"test"/>
que j'ai créé au préalable un répertoire 'test' et que je cherche à récupérer avec $_POST['rep'], je ne récupère rien.


du coup j'aurais dans mon formulaire :

Code :
<input type="hidden" name="rep" value="?????"/>
Mais je ne sais pas comment poster ma réponse AJAX (du 1er formulaire) dans value
polothentik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 14h06   #8
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
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 686
Points : 5 453
Points : 5 453
hum, je commence à être larguée
Le problème, c'est de remplir les champs hidden ou de les envoyer à la page d'après ?
__________________
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 05/05/2008, 14h08   #9
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
Excuses moi, ne mélangeons pas tout en même temps. (en fait c'est les 2)

Le 1er problème c'est l'envoi du contenu des champs hidden vers le fichier faisant l'upload.
polothentik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 14h17   #10
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
Ce qui est étrange, c'est que pour l'instant si j'ai :
Code :
<input type="hidden" name="rep" value"test"/>
que j'ai créé au préalable un répertoire 'test' et que je cherche à récupérer avec $_POST['rep'] ou $_POST['rep']['value'], je ne récupère rien.
polothentik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 14h25   #11
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
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 686
Points : 5 453
Points : 5 453
Pour l'instant, comment fais-tu l'envoi ? par un bouton submit ?
Pour tester ce qui arrive réellement dans $_POST, rien ne vaut un bon vieux var_dump
Code :
1
2
3
echo '<pre>';
var_dump($_POST);
echo '</pre>';
__________________
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 05/05/2008, 14h36   #12
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
J'ai fait un test dans un fichier à part... excellent petit outil ce var_dump...

Citation:
array(1) {
["rep"]=>
string(3) "hey"
et quand je fais :

j'obtiens bien 'hey'

Mais non... ça ne marche toujours pas...dans le fichier d'upload...
polothentik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 15h06   #13
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
Afin de pouvoir obtenir le résultat de var_dump dans ma programmation, saurais-tu me dire comment faire pour renvoyer le résultat avec

polothentik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 15h20   #14
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
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 686
Points : 5 453
Points : 5 453
var_dump fait déjà un affichage du contenu de la variable. Donc pas besoin d'utiliser un echo dessus (http://fr.php.net/manual/fr/function.var-dump.php)
Ce que tu cherches, c'est peut-être var_export

En ce qui concerne ton porblème de départ, peux-tu donner le code de ton formulaire avec les champs hidden et celui de l'arrivée ?
__________________
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 05/05/2008, 15h31   #15
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
pour var_dump OK ! Mais je ne sais pas comment retourner un message de la page PHP vers la page HTML

Sinon, pour le formulaire :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
    <title>Jarodxxx</title>
</head>
<body>
	<div id="container">
		<form action="js/upload.php" method="post" id="photoupload" enctype="multipart/form-data">
        <div class="halfsize"><fieldset>
            <legend>Upload</legend>
        <div class="label emph">
		  	<label for="photoupload-filedata-1">Upload Photos:<span>Selectionnez vos photos puis cliquer sur UPLOAD.</span></label>
 
			<input type="hidden" name="rep" value="test"/>
 
			<input type="file" name="Filedata" id="photoupload-filedata-1" />
		</div>
        </fieldset></div>
			<div class="halfsize2">
				<fieldset>
					<legend>File d'attente</legend>
					<div class="note" id="photoupload-status">Verifier vos photos ...<br /></div>
					<ul class="photoupload-queue" id="photoupload-queue"><li style="display: none">&nbsp;</li></ul>
 
				</fieldset>
			</div>
			<div class="clear"></div>
			<div class="footer"><input type="submit" class="submit" id="profile-submit" value="UPLOAD"/>
			</div>
	  </form>
	</div>
 
</body>
</html>
polothentik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 15h37   #16
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
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 686
Points : 5 453
Points : 5 453
Bizarre... ça me parait correct. Tu cliques sur le bouton Upload, ça te renvoie sur upload.php et là le var_dump est vide ? bizarre, vous avez bizarre ?

Pour passer du php au html, un simple echo suffit effectivement.
__________________
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 05/05/2008, 15h56   #17
Membre du Club
 
Inscription : mars 2008
Messages : 234
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 234
Points : 46
Points : 46
Merci à toi Celira mais je crois que je vais jetter l'éponge... je n'avance pas dans mon projet et ce script FancyUpload (bien que super tentant) me demande trop d'attention ! Je me meurs mentalement

[EDIT] Bien plus simple et bien plus efficace... avec style et belle mise en page : une MULTI UPLOAD --------> ici

Pour le POST d'un (dans un formulaire HTML) :
Code :
<input type="hidden" name="monNom" value="ChuckNorris"/>
Vers un fichier PHP, il suffit de faire :
Et on obtient :
C'est pas beau ça !
polothentik 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 00h50.


 
 
 
 
Partenaires

Hébergement Web