Récupérer une variable php
Forum Programmation : Récupérer une variable php
TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
Bonjour,
J'ai un formulaire html qui envoie via la méthode Post les champs saisies par un utilisateur.
Mon script "formulaire.php" reçoit ces champs, et les affichent sans aucun problème.
Mais le problème se pose quand je veux récupérer la valeur de ses champs par un autre script php "tester.php". Ce script ne m'affiche rien.
J'ai essayé avec la fonction include, mais "tester.php " récupèrer tous sauf les champs avec _POST.
J'ai essayé les "SESSION", mais ca ne marche pas non plus.
Ma question est comment je pourrais récupérer les valeurs postées par mon formulaire par mon deuxième script "tester.php" sans passer par les sessions.
Merci
tout dépend comment est appelé ton 2ème script...
une solution serait de les reposter
mais la solution la plus facile à mettre en place reste les sessions vu que c'est prévu pour
| coca25 a écrit : tout dépend comment est appelé ton 2ème script...
|
Dans mon "formulaire.php" j'ai:
$titre= $_POST['titre'];
$_SESSION['titre']=$titre;
$variable = $titre;
$toto = "toto1";
Maintenant "$variable" contient le titre posté. Dans la page "tester.php" je fait un include('formulaire.php'),
et quand je fais: echo $toto, ca m'affiche bien "toto1"
et quand je fait echo $variable, il n'ya rien qui s'affiche
Il n'ya pas moyen de convertir et de récupérer la variable posté en tant qu'une variable normal comme $toto, que je pourrais utliser dans mes autres pages php, sans passer biensûr par les "SESSIONS".
... pas clair tout ca!
je vois 2 possibilités:
--
tu as un formulaire dont l'action est : tester.php
ce script (tester.php) inclut formulaire.php
dans ce cas, session ne sert à rien, $variable non plus, il te suffit d'utiliser $titre
--
ou alors tu as un formulaire dont l'action est formulaire.php
ou tu mets:
Code :
|
puis par je ne sais quel facon, tu accedes à tester.php (lien, formulaire...)
dans ce cas dans tester.php tu dois avoir:
Code :
|
et pour utiliser les sessions, ne pas oublier:
Code :
|
à mettre avant toute sortie (echo, print etc...) du script
[quotemsg=91898,4,319370]... pas clair tout ca!
Je récapitule, car je pense qu'on s'est mal compris.
Je ne veux pas passer par les sessions!!
1) Dans le formulaire html, j'envoie un titre ex: "Le php".
Je déclare les variables suivantes dans le "formulaire.php"
qui recoit les valeurs postés par le formulaire:
$toto = "toootoooooo "; // une variable bidon pour tester
$titre = $_POST['titre']; // ici le titre est : "Le php"
2) Maintenant je veux récupérer ces variables dans mon script "tester.php"
................................Jusqu'à la tu me suis Coca
Dans mon script "tester.php" je fais : include ('formulaire.php');
pour tester je fait: echo $toto, et le résultat = "toootoooooo".(
exactement ce que j'avais dans "formulaire.php" ).
ensuite je fait echo $titre, et là il n'ya rien qui s'affiche.
Donc comment je peux faire pour récupérer la valeur
de $titre, sans passer par les sessions.
Est-ce qu'il n'ya pas moyen de récupérer $titre=$_POST['titre'],
comme une variable normal, comme $toto ?
Si ca se trouve ton problème c'est juste que tu as oublié le session_start(); qui doit re mis en tout premier.
| phplayer a écrit : Si ca se trouve ton problème c'est juste que tu as oublié le session_start(); qui doit re mis en tout premier. |
Mais non, puisque je ne veux pas utiliser de session.
Je veux juste récupérer la variable $_POST['titre'] comme n'importe
quelle autre variable Php, comme $toto dans mon exemple plus haut
j'ai du mal qd meme (mauvais we surement
)
| Citation :
|
donc formulaire.php recoit les valeurs postés ok
ensuite tu APPELLES tester.php COMMENT??
c'etait la question que j'insinuais par:
| Citation :
|
le plus simple serait de poster le code du formulaire, de formulaire.php et de tester.php
Les variable de type POST ne sont valables que pendant l'execution de la page qui les reçoit. Si tu veux appeler ta page test.php par un lien tu peux l'appeler en passant par des variable GET :
<?php
echo "<a href='test.php?titre=".$titre.">Lien vers test</a>'";
?>
et dans ta page test.php :
<?php
if(isset($_GET['titre'])){
$titre=$_GET['titre'];
}
else{
$titre="";
}
?>
| coca25 a écrit : le plus simple serait de poster le code du formulaire, de formulaire.php et de tester.php |
Effectivement, un exemple vaut milles mots
formulaire.php:
Code :
|
teste.php:
Code :
|
Résumé de tout ça, la variable toto que j'avais dans formulaire.php s'insère bien dans ma base de données, donc
j'ai "toootoooo". De plus, le nom du fichier que j'upload s'insère également dans ma base. Par contre, le champ titre est resté vide.
Comme vous avez vu, j'ai utilisé les sessions et ca ne fonctionne
pas, c'est la raison pour laquelle je voudrais savoir si il ya moyen de récupérer le variable $titre comme j'ai récupérer $toto.
premier point: dis moi ce que tu ne comprends pas dans:
donc formulaire.php recoit les valeurs postés ok
ensuite tu APPELLES tester.php COMMENT??
ensuite 2eme point qui va, je crois, clarifier pas mal de chose:
ajoute dans ton formulaire.php:
Code :
|
et tu me diras ce que ca te sort
| coca25 a écrit : premier point: dis moi ce que tu ne comprends pas dans:
|
| coca25 a écrit :
|
Tu voulais que je poste le code, alors je t'ai posté le code.
Si tu veux savoir comment j'appele "tester.php", c'est en cliquant sur "envoyer " de mon formulaire qui m'envoie sur "tester.php".
Une fois que je suis sur tester.php, j'upload un fichier qui s'insère
dans la base de données. Je veux que le titre envoyé par l'usager s'insère aussi, et ce n'est pas le cas.
Ce qui est bizzare, c'est que j'ai fait un teste sur une autre page "toto.php". Sur cette page, j'ai mis le même code que sur "teste.php" sauf le code pour l'upload d'un fichier ,et cette fois,
le titre s'insère correctement dans la base de données.
Le problème vient apparement de l'ulpoad, et c'est étrange.
Ce qui serai plus sage, c'est de convertir le variable $_POST en un e variable normale, genre un string, comme ma variable $toto
qui s'insère correctement dans la base de données quand je l'appèle depuis "formulaire.php";
"Je ne sais pas si c'est faisable,mais bon, tout est possible"
ta saisie dans le formulaire se fait en 1 ou 2 étapes:
d'abord l'utilisateur saisit le titre, clique sur envoyer, ce qui l'envoie vers formulaire.php qui récapitule ce qu'il a saisi.
ensuite il choisit un fichier et clique sur envoyer qui l'envoie vers tester.php
c'est comme ca que ca se deroule?
| stephane81 a écrit : Ouai, c'est presque ainsi que ca se déroule, mais j'ai enlever complètement la page "tester.php" pour réduire les dégâts, et maintenant tout ce fait au niveau de "formulaire.php".Donc le tout ce passe au niveau du "formulaire.html" et "formulaire .php". Mais mon problème persiste toujours.
|
quand un formulaire poste des données (depuis une page A) vers une page (B), celle-ci les récupère dans la variables $_POST (en l'occurence ton titre est bien récupéré).
si aprés tu postes un fichier de B vers une autre page C, le fichier sera recupéré mais le titre non car la variables POST est recrée avec les valeurs postées depuis B
en gros tu as une etape en plus dans ton algorithme qui fait que titre n'existe plus dans C et c'est pour ca que je voulais connaitre la facon dont tu accedes à tester.php ou le cheminement de tes formulaires
donc on en revient à 15 messages avant, la solution est ou bien de reposter titre (avec un input hidden) ou alors d'utiliser les sessions mais depuis la page B au moins.
mais comme je n'ai que des bribes de codes, je peux pas en dire plus.
en aucun cas le fait de mettre un upload dans un formulaire ne cause un probleme.
Il y a 2372 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
