envoi de données de form vers 2 fichiers php - PHP - Programmation
Marsh Posté le 08-12-2010 à 10:46:08
Précisons la notion de "page" :
Il existe des pages HTML (côté client), mais il n'existe pas de page PHP (côté serveur), il existe des programmes PHP.
Quand un submit ou un appel Ajax est déclenché par l'utilisateur, cela envoie des données, en mode post ou get, à un programme PHP.
Le progamme PHP va lire les variables avec le classique if (isset($_POST[...])... ou if (isset($_GET[...])...
Puis le programme PHP va générer une page HTML, ou un fichier pour un flux Ajax, ou un fichier PDF, ou un fichier image.
Citation : comment faire pour envoyer les données à la page cible.php, |
cible.php n'est pas une page. C'est un programme. Ce programme récupère les données et crée ce qu'il veut. Certaines données peuvent sans doute être testées pour savoir s'il faut que le programme créé telle ou telle chose.
Marsh Posté le 08-12-2010 à 10:59:14
ok mais comment le programme photo.php récupère les données du formulaire qui à été envoyé à cible.php?
Marsh Posté le 08-12-2010 à 11:07:48
Sur le serveur, il n'y a qu'un seul programme qui tourne, soit photo.php, soit cible.php, soit un grand fichier qui contient les deux. C'est cette dernière solution que je recommande, et qui vous dérange peut-être, parce que vous n'avez peut-être pas l'habitude d'avoir un programme sur le serveur qui fasse plusieurs choses, ou bien vous craigneriez que cela fasse un programme trop grand.
Plus précisément, mon idée serait de garder les deux fichiers, cible.php et photo.php, mais d'avoir dans cible.php la ligne
require_once("photo.php" ); |
photo.php est ainsi une espèce de sous-programme de cible.php. Les variables sont récupérées au début de cible.php via les $_POST[], par exemple :
$CD_DATA1 = ""; if (isset($_POST['CD_DATA1'])) $CD_DATA1 = $_POST['CD_DATA1']; |
Puis, dans photo.php, on utilise ces données, soit parce qu'elles sont passées en paramètres de fonction, soit parce qu'elle sont déclarée avec le mot-clé global.
Marsh Posté le 08-12-2010 à 16:32:19
Je met déja le code que j'ai fait sur ces 3 fichiers.
form.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
cible.php
<?php require_once("photo.php" );?> |
photo.php
<?php |
Si j'ai bien compris, je met dans cible
require_once("photo.php" ); |
Pour l'instant, si je fait juste ca, j'affiche uniquement l'image mais pas le calcul
Marsh Posté le 08-12-2010 à 17:34:36
Ok, je comprends beaucoup mieux.
Excusez-moi, ma solution ne marche pas dans ce cas de figure.
Peut-être que la solution suivante marcherait :
- Garder form.php
- Modifier légèrement cible.php pour enlever mon require_once, et pour remplacer
<img src="photo.php" /> |
par :
<?php print("<img src=\"photo.php?v=".$_POST['ventillation']."&c=".$_POST['chauffage']."\" />" ); ?> |
- Modifier photo.php :
<?php |
Marsh Posté le 08-12-2010 à 17:36:10
Non c'est pas ça.
photo.php est une image que le browser va appeler comme suit :
<img src="photo.php" /> comme indiqué dans cible.php
C'est donc normal que les variable POST ne contiennent rien dans photo.php puisque c'est un autre script. Le php n'a pas de contexte d’exécution hormis les sessions. Ca serait bien que tu commences par apprendre ça.
Pour procéder correctement, il faut générer l'image dans un répertoire de cache et faire un lien vers cette image dans le tag img
(ceux qui te conseilleront de passer les param en GET ont gagné le droit de se taire)
Marsh Posté le 09-12-2010 à 10:53:29
smaragdus a écrit : Non c'est pas ça. |
Ça marche impeccable !
Merci pour l'info. Je cherchais un solution compliqué alors que c'était très simple.
Marsh Posté le 08-12-2010 à 10:12:38
Bonjour,
j'ai un petit problème pour récupérer des données de formulaire.
Je vous explique mon problème:
J'ai un formulaire (disons form.php) Qui envoi les données à une page cible qui les traites (disons cible.php)
Dans cette page cible, je souhaite y mettre 2 type de traitement : un calcule total, et une image faite sur mesure en fonction des données du formulaire.
Le problème est que pour créer une image gd en php, je doit créer une troisième page pour la création de cet image (photo.php).
Je n'arrive pas à envoyer les données du formulaire à cette troisième page.
mon traitement de donnés fonctionne si j'envoie les données à une page ou à l'autre page, mais comment faire pour envoyer les données à la page cible.php, et à photo.php.