Un equivalent php à form pour envoyer une variable?

Signaler
Messages postés
151
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 juillet 2018
-
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
-
bonjour

voila, je voulais savoir s'il existait un equivalant PHP à <form method="post"></form>  pour envoyer une variable d'une page a l'autre , car j'utilise une redirection par header, et je suis obligé de mettre mes variable en claire ds l'url (ce qui est loin d'etre top) ......

merci

12 réponses

Messages postés
155
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
15 février 2009

Tu peu toujour utiliser les variable sessions qui sont invisible a l'utilisateur. Rensuigne toi sur google.

~~ Cordialement Francois Gingras
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Si tu veux envoyer des variables à un autre site et donc que tu peux pas utiliser les sessions, il y a des fonctions curl ou tu peux aussi utiliser des sockets pour envoyer des donnéees POST. Mais je t'avoue que je n'ai pas essayé moi-même.
à+
Messages postés
151
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 juillet 2018

en fait, c'est un formulaire qui envoie les données vers une page pour les traiter ( là aucuns pb), puis la page de traitement renvoie un message ("ok" ou "erreur" ) . pour ca, je fais simplement
header("Location: page.php?message=" . $message);
mais c'est se message text que je veux cacher, car il est long et peu esthetique , et je ne veux pas utiliser une session juste pour ça ....
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Il n'y a pas de mal à utiliser une session, il n'y a rien de plus simple en plus...
mais bon si tu y tiens tu peux encoder ton message :

header("Location: page.php?message=" .base64_encode($message));

et à l'arrivée tu fais base64_decode( $_GET['message'] )

à+
Messages postés
155
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
15 février 2009

Par contre ses facile a decoder si quelqu'un le veux.

~~ Cordialement Francois Gingras
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

on peut envoyer en POST via header ().
On peut enbvoyer en POST via CURL comme le souligne Evangun. Et moi, j'ai testé ;-) et ça marche très bien. Mais CURL ne fait qu'interroger une page, il ne "va pas" sur cette page (si tu curles la page B à partir de la page A, l'utilisateur reste sur la page A (virtuellement hein), alors que la page B reçoit les données et fait son traitement,  et renvoie éventuellement des infos à A, qui poursuit ensuite son traitement.
Un exemple de CURL :
  $rCurl = curl_init();
  curl_setopt ($rCurl, CURLOPT_URL, http://www.monsite/mapage.php);
  curl_setopt ($rCurl, CURLOPT_HEADER, false);
  curl_setopt ($rCurl, CURLOPT_POST, true);
  curl_setopt ($rCurl, CURLOPT_POSTFIELDS, $_POST);
  curl_setopt ($rCurl, CURLOPT_RETURNTRANSFER, true);
  $bResult = curl_exec ($rCurl);
  curl_close ($rCurl);

//echo $bResult;
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Merci pour ces précisions Malalam,
je reportais toujours ça à plus tard mais tu m'as convaincu, j'apprends les fonctions curl aujourd'hui
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Evangun => ça ressemble bcp au fonctionnement des requêtes xmlhttp, en fait, c'est vraiment bien. Sauf que ça n'empêche pas un refresh évidemment, si on veut envoyer des données utilisateurs.
On s'en sert surtout pour de l'EDI. Un exemple basique, pour tout le monde :

J'ai un serveur A qui gère une boutique en ligne. Mais uniquement la boutique...c'est une sous partie d'un site se trouvant sur un serveur B. La bdd des comptes utilisateur est sur le serveur B.
Quand un mec est sur le serveur A et veut commander, il doit s'identifier.
Je ne peux pas attaquer directement la base du serveur B qui ne m'appartient pas. Donc, je mets en place un EDI avec le développeur du serveur B.
Ma page y sur mon serveur A va faire un CURL sur la page x du serveur B en lui envoyant en POST l'email et le mot de passe saisi par le mec.
La page x du serveur B récupère ces 2 données, et fait une requête sur sa base de données. Si il trouve l'utilisateur, il me renvoie son ID. Sinon, il me renvoie false.
Ma page y sur mon serveur A récupère cette valeur. Si j'ai false, je balance : identification échouée etc... si j'ai un entier, je poursuis le process de commande avec l'id de mon utilisateur.

C'eat beau, nan? ;-)
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Hum, ce n'est pas beau, c'est magnifique !
Cela ouvre beaucoup de perspectives... et en plus il y a moyen d'utiliser ssl sur ces connexions on dirait, c'est vraiment bien.
On m'a justement proposé hier un projet de portail qui regrouperait les produits de plusieurs boutiques sur un seul site. Mais évidemment pas question de fusionner les sites.
Est-ce que tu me conseillerais cette méthode ? C'est comme ça que font Kelkoo et les autres pour interroger les différents sites partenaires ?
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Pour Kelkoo je retire ma question ils ont un moteur intelligent
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
C 'est une solution, oui.
Il y a aussi SOAP, dans ce cas. Qui peut être plus approprié dans un tel cas. J'utiliserais SOAP moi.
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Tu viens peut-être de me sauver la vie sur ce projet ^^
Une chose est sûre, j'aurai pas perdu ma journée merci bcp pour ces indications, je vais me renseigner.