Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 06/09/2007, 17h24   #1
Membre habitué
 
Inscription : septembre 2007
Messages : 272
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 272
Points : 145
Points : 145
Par défaut POST avec header() comment faire?

Je sais changer de page grace à header (location: etc.);
Est il possible d'utiliser cette méthode pour transmettre en même temps que la redirection, des données POST ?
Sinon, j'arrive à transmettre avec cURL mais sa ne redirige pas.

J'arrive à transmettre des donné POST
J'arrive à rediriger
Mais je n'arrive pas à faire les 2 en même temps!

Peut importe la méthode pour moi, l'important est que la variable transmise en POST n'apparaisse jamais dans la source.

Merci d'avance, amis développeurs
dawadam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 18h07   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
cURL fait office de client donc il ne fera que suivre les redirections, ce n'est pas à lui d'en indiquer, à moins de le faire dans votre script après via header

Avez-vous étudié le code HTTP 307 ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 18h24   #3
Membre confirmé
 
Inscription : juillet 2007
Messages : 201
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 201
Points : 227
Points : 227
pas possible de faire les 2.
Dans la page de redirection tu peux essayer de recuperer les infos que tu aimerai avoir.
acirfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2007, 12h03   #4
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605

Utilise une session si tu veux transmettre des données entre 2 pages sans les faire apparaitre dans l'adresse.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2007, 20h15   #5
Membre habitué
 
Inscription : septembre 2007
Messages : 272
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 272
Points : 145
Points : 145
Citation:
Envoyé par trotters213 Voir le message
Utilise une session si tu veux transmettre des données entre 2 pages sans les faire apparaitre dans l'adresse.
Pour la session, c'est pas possible car c'est pour transmettre les infos à un autre site.

Citation:
Envoyé par acirfa Voir le message
pas possible de faire les 2.
Dans la page de redirection tu peux essayer de recuperer les infos que tu aimerai avoir.
Je n'ai pas très bien compris ce que tu à voulu dire, mais comment peux tu est sur que c'est impossible?
Il s'agit tout simplement de valider un formulaire POST sans qu'il apparaisse dans la source.
dawadam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 00h00   #6
Membre régulier
 
Avatar de B.Moncef
 
Étudiant
Inscription : août 2007
Messages : 75
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 75
Points : 83
Points : 83
Citation:
sans qu'il apparaisse dans la source
Tu veux dire quoi par la ?
B.Moncef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 17h08   #7
Membre habitué
 
Inscription : septembre 2007
Messages : 272
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 272
Points : 145
Points : 145
"sans qu'il apparaisse dans la source",
C'est à dire un formulaire envoyé automatiquement par php.
Et non pas un formulaire en HTML
dawadam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 17h36   #8
Membre chevronné
 
Inscription : mai 2005
Messages : 657
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 657
Points : 722
Points : 722
Salut,

Citation:
Envoyé par dawadam Voir le message
Je sais changer de page grace à header (location: etc.);
Est il possible d'utiliser cette méthode pour transmettre en même temps que la redirection, des données POST ?
Pour répondre à cette question : non, ce n'est pas possible. Une redirection avec Location: induit toujours un GET.

Ton raisonnement semble un peu confus, tu nous dis que tu veux envoyer des données en POST avec PHP, mais utiliser cURL ne te convient pas...
Soit les données sont envoyés avec PHP et le navigateur ne voit rien, soit elles sont envoyés par le navigateur et elles apparaissent forcément quelque part pour celui-ci...

Peut-etre tu pourrais préciser ce que tu cherches vraiment à faire ?
__________________
Toute la documentation Ruby on Rails : gotapi.com/rubyrails
Mes articles :
> HAML : langage de template pour Ruby on Rails
Taum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 10h23   #9
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
Bonjour a tous,
Je ne suis pas sur d'avoir tres bien compris la question. Néanmoisn, si cette dernier est : comment envoyer depuis php des données post et get en meme temps :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$GET_DATA = array ('foo' => 'bar', 'bar' => 'baz');
$GET_DATA = http_build_query($GET_DATA);
$POST_DATA = array ('foo' => 'bar', 'bar' => 'baz');
$POST_DATA = http_build_query($POST_DATA);
 
$context_options = array (
        'http' => array (
            'method' => 'POST',
            'header'=> "Content-type: application/x-www-form-urlencoded\r\n"
            ."Location: http://www.example.com\r\n"
            ."Content-Length: " . strlen($POST_DATA) . "\r\n",
            'content' => $POST_DATA
            )
        );
 
$context = context_create_stream($context_options)
$fp = fopen('http://www.example.com?'.$GET_DATA, 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 19h34   #10
Membre habitué
 
Inscription : septembre 2007
Messages : 272
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 272
Points : 145
Points : 145
Citation:
Envoyé par CR_Gio Voir le message
Je ne suis pas sur d'avoir tres bien compris la question. Néanmoisn, si cette dernier est : comment envoyer depuis php des données post et get en meme temps
Ce n'est pas sa
Je me moque du get, je doit transmettre une donné à un autre site, un code qui ne doit pas etre visible meme dans la source de la page.
Donc je ne peut pas faire simplement un formulaire POST avec un hidden.
Mais je veut arriver au meme résultat.

Citation:
Envoyé par Taum
Ton raisonnement semble un peu confus, tu nous dis que tu veux envoyer des données en POST avec PHP, mais utiliser cURL ne te convient pas...
Car avec cURL, j'ai réussi à envoyer des information POST ce qui est très bien, mais sa n'a aucune influence sur l'utilisateur car il n'est pas redirigé. Je voudrai que sa fasse comme un simple formulaire HTML: sa transmet les donné en redirigent
dawadam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 21h19   #11
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
Citation:
Ce n'est pas sa Je me moque du get, je doit [...]
Bizarement je le prend mal .....peut etre est ce la fatigue ...

Je te dirai gentillement d'allé voir les regle du forum tu y apprendra a poser une question. En gros : personne n'a rien compris a ta question, a un moment, faut se remetre en question ....

Citation:
Est il possible d'utiliser cette méthode(il parle de la fonction header()) pour transmettre en même temps que la redirection, des données POST ?
Je te repond oui mais le comportement du navigateur va dépandre ensuite des donné que tu lui a donné. Est ce vraiment transmetre des donné au navigateur/client/l'utilisateur que tu souhaite ?

Citation:
Il s'agit tout simplement de valider un formulaire POST sans qu'il apparaisse dans la source.
Citation:
Tu veux dire quoi par la ?
Citation:
Je voudrai que sa fasse comme un simple formulaire HTML: sa transmet les donné en redirigent
Tu ressasse mon jeune ami. Casse toi la tete a expliquer ton probeme au lieu d'utiliser des therme que tu ne metrise pas comme la redirection l'envoi de donné et j'en passe ...



_______________________________
A qui a la meileurs boule de cristal
_______________________________

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
 
 
<?php
 
// le client/l'utilisateur fait une requete sur cette page. Seul ** peut nous dire comment il y arrive ...
 
// On envoi des données en POST a un server tierce
//==================================
$POST_DATA = array ('foo' => 'bar', 'bar' => 'baz');
$POST_DATA = http_build_query($POST_DATA);
 
$context_options = array (
        'http' => array (
            'method' => 'POST',
            'header'=> "Content-type: application/x-www-form-urlencoded\r\n"
            ."Content-Length: " . strlen($POST_DATA) . "\r\n",
            'content' => $POST_DATA
            )
        );
 
$context = context_create_stream($context_options)
$fp = fopen('http://www.example.com', 'r', false, $context);
//on verifie la reponse du serveur tiers : les donné son conforme ou non
fclose($fp);
 
// On redirige le client/l'utilisateur vers la page X.php
// si ....
header('Location: http://www.exemple.com/X.php;');
?>
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 23h43   #12
Membre habitué
 
Inscription : septembre 2007
Messages : 272
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 272
Points : 145
Points : 145
J'ai malheuresement déjà l'impression de me cassé la tête, et je le fait tellement bien qu'on prend mal ce que je dit. Et je ressasse car sa me parait tellement simple que je ne sais pas comment expliquer.

je n'ai pas pris le temps de tester le code de CR_Gio car la la redirection ne se fait pas en même temps que l'envoi des données POST, mais j'ai bien compris l'idée et je pensse (j'espère) qu'il existe un moyen plus pratique d'ailleur dans mon cas, c pas sur que sa marche.

Citation:
Est ce vraiment transmetre des donné au navigateur/client/l'utilisateur que tu souhaite ?
Là je ne connais pas ces termes mais sa sonne bien.
Ne m'en veuillez pas si je galère a demander conseils, c'est que j'en ai pas l'habitude,
en plus je suis un programmeur à l'ancienne qui a tendance a ignorer les appellations techniques pour ce concentrer sur ce qui ce passe.
Je suis dsl pour vous, si sa énerve ... (je force pas à poster non plus )

Bref j'ai entendu parler de HttpRequest et j'ai regarder dans le manuel php, sa à l'air d'avoir une bonne tête, je v tester et conclure si sa marche, sinon je v me creuser la tete (avec code à l'apuis) pour expliquer le problème. Et je ferai sa le mieu du monde pour que mon amis CR_Gio soit fier de moi! (à lire sans être fatigué)
dawadam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 03h04   #13
Membre habitué
 
Inscription : septembre 2007
Messages : 272
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 272
Points : 145
Points : 145
Bon bas la class HttpRequest, sa avais l'air niquel mais sa ne fonctionne pas avec les version de PHP inférieurs à la 5, et mon serveur n'en ai pas encore là.

alors voila ce que je veut faire:

Code :
1
2
3
4
<form action='http://www.autre_site.com/' method='post'>  
<input type='hidden' name='pass' value='0123'>
<input type='submit' value='ok'>
</form>
Donc la valeur "pass" est transmise a l'autre site et l'utilisateur est amené à la page de l'autre site.

Dans mon cas, il est indispenssable que la valeur de "pass" soit masquée à l'utilisateur donc je ne peut pas utiliser un formulaire HTML.
Et je ne peut utiliser une autre méthode que le POST pour transmettre car cela dépend de l'autre site, donc je suis bien embété.

Voila tout, j'espère que c'est assé clair pour permettre à quelqu'un de trouver une solution sinon je v etre obligé de me compliquer la vie à l'infinie.
dawadam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 10h55   #14
Membre chevronné
 
Inscription : mai 2005
Messages : 657
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 657
Points : 722
Points : 722
Citation:
Donc la valeur "pass" est transmise a l'autre site et l'utilisateur est amené à la page de l'autre site.
Avec hidden, elle est bien "masquée" à l'utilisateur dans le sens où il ne la voit pas dans son navigateur.

Maintenant si tu ne veux pas qu'elle apparaisse non plus dans le code de la page, ou dans un échange quelconque avec le client, c'est impossible pour une raison évidente. Tu ne peux pas demander à un navigateur d'envoyer une donnée quelque part si tu ne lui donnes pas la donnée en question.
C'est comme si tu donnais rendez-vous à quelqu'un sans lui donner l'adresse.
C'est comme si tu demandais à quelqu'un de te faire un gateau sans lui en donner la recette.
Ca n'a aucun sens, point barre.

Ce que tu peux faire, c'est partager un secret avec le serveur qui reçoit les données, et transmettre les données par le client en crypté, auquel cas le client sait ce qu'il transmet mais ne peut rien en faire. Evidemment, cela nécessite la coopération des 2 serveurs.
__________________
Toute la documentation Ruby on Rails : gotapi.com/rubyrails
Mes articles :
> HAML : langage de template pour Ruby on Rails
Taum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 14h56   #15
Membre habitué
 
Inscription : septembre 2007
Messages : 272
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 272
Points : 145
Points : 145
Bon, ba merci pour tout.
C vrai que sa parais logique.
Mais je reste quant même perplexe ...

Car après tout, lors d'une redirection avec header(), si on mais des infos GET, la page résultante est bien transmise au navigateur. Donc à moins que les concepteurs ou oublier de prévoir cette fonction en PHP, je ne voit pas ou est le pb technique.

tampis, je v faire autrement de toute façon
dawadam 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 14h45.


 
 
 
 
Partenaires

Hébergement Web