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 31/03/2007, 14h35   #1
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
Par défaut Envoyer des données par post sans formulaire

Bonjour,

Ma question paraît peut-être bizarre mais dans le cas qui m'occupe c'est une solution à un autre problème dont je n'entrerai pas dans les détails.

Je m'explique. Une première page contient un formulaire très simple, disons nom et prénom.

Code HTML :
1
2
3
4
<form action="page2.php" method="post">
Nom : <input type="text" name="nom"><br>
Prénom : <input type="text" value="prenom">
</form>

En cliquant je passe donc en page2 qui entre les données dans la bdd. A partir de là, je voudrais rediriger automatiquement l'utilisateur vers une troisième page située en dehors de mon serveur qui doit recevoir en même temps les données par post (site étranger donc impossibilité de changer les "names" et la méthode).

J'ai pensé au JavaScript qui peut soumettre un formulaire sans intervention du client mais défaut de sécurité et problèmes si JavaScript désactivé. Est-ce réalisable en PHP pur?

Là où je cale c'est que je sais envoyer des données par post à un autre serveur en restant sur le script en cours via un socket. Mais changer de page tout en soumettant les données ça je ne sais pas.

Merci pour vos conseils et réponses,

webrider
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 14h47   #2
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Salut,

oui, je crois que c'est possible avec les headers...

J'ai déjà fait ça, mais j'avais pour ça fait un browser en PHP (qui permet donc de soumettre des requetes, faire suivre une session ou parser la page retournée. J'utilisais alors l'exelente lib Snoopy

Si ça t'interesse, je peux rechercher dans mes vieux projet voir si je retrouve mon code source (envoi moi un PM).
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 14h54   #3
Membre du Club
 
Inscription : mars 2007
Messages : 123
Détails du profil
Informations personnelles :
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mars 2007
Messages : 123
Points : 67
Points : 67
vous faites pas chier : cadeau le code :

Code :
1
2
3
4
5
6
7
8
<form name="formu" action="page.php" method="POST">
<input type="hidden" name="nom" value="Dupont">
<input type="hidden" name="prenom" value="Jean-Luc">
</form>
 
.......................................
 
<button onclick="formu.submit()">Terminer</button>
  • J'ai mis un BUTTON mais tu peux mettre n'importe quoi
  • C'est vrai il faut toujourts que JS soit actif.
jpean.net est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 15h01   #4
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
En tant que militant anti-javascript, je déveopperai quand même ma solution :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
	  include "Snoopy.class.php";       
	  $snoopy = new Snoopy;
               $who = 'ROBERT pleupleu';
               $subject = 'La vie héroïque d\'un caniche';
               $msg = ''C'est un caniche qui traverse la route et paf le caniche;      			    
 
               $submit_url = 'http://www.*****.com/contact.php?action=send';
 
               $submit_vars['subject'] = $subject;
               $submit_vars['reply'] = $who;
               $submit_vars['message'] = $msg;
 
               if($snoopy->submit($submit_url, $submit_vars))
               {
                        echo 'Envoie !!! <br>'
               }
Ensuite j'avoue, ça risque de poser des problemes dans le sens ou il s'agit la d'un browser a part entiere ! Cependant j'avais beaucoup apris sur les method get et post en travaillant sur ce projet...

Ensuite, l'envoi de header simple doit également fonctionné, mais je n'ai pas de code a proposer pour ça...

EDIT : ah, et tant qu'a faire voici un lien direct vers la lib snoopy : http://ufpr.dl.sourceforge.net/sourc...y-1.2.3.tar.gz
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 15h02   #5
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
Salut gloubi et merci pour ta réponse,

Ne te casse pas la tête à aller chercher dans tes anciennes sources, je commence à voir comment je dois procéder.

Dis-moi juste si ceci ressemble à ce que tu as déjà fait :
Code :
1
2
3
4
5
6
7
8
9
10
$args = "nom=" . $nom . "&prenom=" . $prenom;
$request = "POST page3.php HTTP/1.1\n"; 
$request .= "Host: www.xyz.com\n"; 
$request .= "Connection: Close\r\n"; 
$request .= "Content-type: application/x-www-form-urlencoded\n"; 
$request .= "Content-length: $size\n\n"; 
$request .= $args."\n";
$request .= "Location: www.xyz.com/page3.php";
 
header($request);
Je ne sais pas si je dois placer Location en haut au en bas de $request, qu'en penses-tu?
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 15h04   #6
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
Désolé on a posté quasi en même temps, je vais voir le code que tu as mis!
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 15h07   #7
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Non, t'embete pas avec mon code, la solution que tu proposes me parait plus adapté à ton problème (sauf si tu as besoin de parser la page web que ta requete va retourner).

J'ai pas retrouvé mon code source avec les headers, mais ça ressemble pas mal à ce que tu proposes. Je suppose que $args est la liste de tes parametres avec url_encode et size le strlen de cette chaine.

Pour le location, je sais ne sais plus trop ou le placer non plus :p l'ideal est encore d'essayer lol
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 15h08   #8
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
Citation:
Envoyé par jpean.net
vous faites pas chier : cadeau le code :
Le faire en JavaScript c'est simple je te l'accorde, mais en PHP ça permet de s'affranchir des navigateurs et aucun client ne peut empêcher la soumission des données...
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 15h11   #9
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
Citation:
Envoyé par gloubi
sauf si tu as besoin de parser la page web que ta requete va retourner
Pas de parsage tout va bien!

Citation:
Envoyé par gloubi
Je suppose que $args est la liste de tes parametres avec url_encode et size le strlen de cette chaine.
Oui c'est tout-à-fait ça!

Citation:
Envoyé par gloubi
Pour le location, je sais ne sais plus trop ou le placer non plus :p l'ideal est encore d'essayer lol
Oui je pense aussi, je vous tiens au courant des résultats!

webrider
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 15h13   #10
Membre du Club
 
Inscription : mars 2007
Messages : 123
Détails du profil
Informations personnelles :
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mars 2007
Messages : 123
Points : 67
Points : 67
Citation:
Envoyé par webrider
Le faire en JavaScript c'est simple je te l'accorde, mais en PHP ça permet de s'affranchir des navigateurs et aucun client ne peut empêcher la soumission des données...
c'est vrai,
jpean.net est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 15h27   #11
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
MAIS je viens de me rendre compte de qqch...

En php, impossible d'envoyer un header si il y a déjà eu une sortie... Ce qui m'embête assez puisque je voudrais afficher un truc du genre "Merci de patienter pendant la redirection" sur la page 2. Du coup je pourrai plus envoyer de header! En JavaScript c'est possible!

J'ai aussi essayé le code que j'ai dit plus haut mais j'obtiens cette erreur :
Citation:
Header may not contain more than a single header, new line detected
au moment du header($request).
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 15h39   #12
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
bha tu peux passer par une page qui fait juste le header quand tu l'ouvre...

Ensuite, à toi de juger ce qui est le plus adapté :p
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 19h11   #13
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
Ben écoute dans mon cas le JavaScript m'est d'un grand secours, mais à user avec modération!

Encore merci pour vos commentaires,

webrider
__________________
Pensez au tag
webrider 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 05h51.


 
 
 
 
Partenaires

Hébergement Web