OVH Cloud OVH Cloud

upload http

3 réponses
Avatar
Daniel Justino
Contexte du problème : un formulaire de contact avec possiblité
d'uplaoder un fichier.

1/ le formulaire de ma page html est traité par un script php contenu
dans un fichier séparé.
2/ La partie upload de fichier est traité par un script php inséré DANS
mon fichier HTML.
3/ Le script d'envoi du formulaire fonctionne impeccablement
4/ le script d'upload se lance via un champ de formulaire de type "file"
(pour faire la sélection du fichier à uploader) :

- problème : impossible d'imbriquer un "sous-formulaire"
- la fonction "onClick" est, apparemment, réservé au lancement de
javascripts
- il m'est difficile de fusionner les 2 scripts PHP dans la mesure
où le script d'upload fait des vérifications/validation sur les fichiers
uploadés et le 2eme script traite et envoi l'ensemble de mon formulaire

Est-il possible de créer un bouton dans ma page HTML qui lance
du code PHP ? (sans utiliser de balise "form" pour éviter l'imbrication)

Quel type de solution voyez-vous ?


Daniel

3 réponses

Avatar
dmetzler
La seule chose que je vois c'est qu'il y a l'air d'avoir confusion
entre HTML, PHP et Javascript.

On ne sait pas bien ce que tu veux faire : à quoi servirait le
sous-formulaire par exemple ?

Tu ne peux pas "lancer" de PHP sans faire une requête HTTP (donc sois
FORM soit un lien) étant donné que l'architecture est une
architecture asynchrone c'est à dire non connectée.

Le seul moyen de faire ça, c'est de s'orienter vers AJAX. En gros un
bout de Javascript va faire une requête sur le serveur, ce qui fait
que ta page ne va pas bouger. Mais avant d'implémenter ça, il
faudrait peut être mieux regarder si y'a pas plus simple pour ton
problème. Si tu le détaillais un peu, ce serait pas mal.
Avatar
christophe.meresse

- problème : impossible d'imbriquer un "sous-formulaire"


Personnellement, je n'imbrique jamais 2 formulaires, (je ne sais même
plus si c'est possible ?) par contre j'utilise un seul formulaire avec
un input de type hidden qui me sert a passer la prochaine commande à
effectuer suivant le bouton ou le lien sur lequel je clique (Je mets ce
champ à jour en javascript juste avant le submit):
onclick='javascript:next_command_hidden.value="upload";myform.submit();'

- la fonction "onClick" est, apparemment, réservé au lancement de
javascripts


Le onclick permet effectivement d'effectuer du code javascript mais ce
code peut servir à charger une nouvelle page (et donc de re-executer
du php coté serveur):
onclick='javascript:location.href="nouvelle/url.php"'

- il m'est difficile de fusionner les 2 scripts PHP dans la mesure
où le script d'upload fait des vérifications/validation sur les fichiers
uploadés et le 2eme script traite et envoi l'ensemble de mon formulaire


Donc avec la méthode expliquée plus haut par exemple, en fonction de
$_POST("next_command_hidden") j'effectuerais l'upload (et probablement
réaffichage du formulaire) ou l'envoie du formulaire.

L'autre solution que j'utilise, particulièrement pour les uploads est:
un bouton qui m'ouvre un popup contenant tout ce qu'il faut pour
l'upload (imput type file) et qui se referme une fois l'upload terminé
(en mettant eventuellement à jour la page parent du popup avant de se
fermer).

A+
Christophe qui attend aussi avec impatience vos avis sur ces solutions
:)

Avatar
John GALLET
Bonjour,

J'ai refusé une première fois votre article en vous conseillant de poster
sur fr.comp.infosystemes.www.auteurs, ceci n'a rien à voir avec du PHP,
merci de ne pas insister bêtement.

xpost et fu2 fr.comp.infosystemes.www.auteurs, d'où la citation intégrale
de l'article d'origine.

JG


On 12 Sep 2005, Daniel Justino wrote:

Contexte du problème : un formulaire de contact avec possiblité
d'uplaoder un fichier.

1/ le formulaire de ma page html est traité par un script php contenu
dans un fichier séparé.
2/ La partie upload de fichier est traité par un script php inséré DANS
mon fichier HTML.
3/ Le script d'envoi du formulaire fonctionne impeccablement
4/ le script d'upload se lance via un champ de formulaire de type "file"
(pour faire la sélection du fichier à uploader) :

- problème : impossible d'imbriquer un "sous-formulaire"
- la fonction "onClick" est, apparemment, réservé au lancement de
javascripts
- il m'est difficile de fusionner les 2 scripts PHP dans la mesure
où le script d'upload fait des vérifications/validation sur les fichiers
uploadés et le 2eme script traite et envoi l'ensemble de mon formulaire

Est-il possible de créer un bouton dans ma page HTML qui lance
du code PHP ? (sans utiliser de balise "form" pour éviter l'imbrication)

Quel type de solution voyez-vous ?


Daniel