|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bonjour,
J'avais demandé il y a quelque temps comment faire en sorte lorsqu'un visiteur s'inscrit sur le site A, qu'il le soit aussi sur le site B. Il semble que le plus simple soit une iframe permettant d'insérer dans la page du site A, la page du site B chargée d'insérer les données dans sa base. Ce pendant que la page A insère de son coté les données dans sa propre base, comme il se doit. Mais voilà, je ne vois pas comment faire... - Le visiteur valide le formulaire d'inscription sur le site A - Il arrive sur une nouvelle page qui insère les données dans la base de A. Tout est classique jusque là. - Dans cette page, il y a une iframe qui fait apparaitre la page du site B chargée d'insérer les données dans sa base (donc B). Cela le visiteur ne le voit pas, l'iframe est invisible. - Un message de confirmation dit que le membre peut désormais utiliser ses informations sur A et B. Donc, comment faire passer les informations du formulaire du site A dans la page B qui se trouve dans l'iframe ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : juillet 2004 Messages : 1 033 ![]() |
Et pourquoi ne pas faire une requete post vers le site B après avoir inséré l'utilisateur dans le site A ?
cf fsockopen ect. Il y à deja eu quelques sujets à ce propos sur le forum. Sinon si tu veux passer par une firame. Il faut que lorsque tu affiches le résultat de l'enregistrement dans le serveur A, tu pointes le src de ta iframe vers une page du serveur A. Cette page vas générer un formulaire, dont l'attribut action pointe vers un controleur (une page php) du serveur B (controleur qui vas recevoir les données en post et les enregister dans la bdd du serveur B). Dans la page du serveur pointé par l'iframe, il faudra faire une auto validation du formulaire en JS lors de l'evenement onload. voila bbye |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
pourquoi A ne communiquerait-il pas directement avec B ?
Client <===> A <===> B Du coup pas besoin de ces horribles iframes |
|
|
00
|
|
|
#4 | |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Citation:
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
|
00
|
|
|
#5 | |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Citation:
Pour Client <===> A <===> B, je ne voudrais pas ouvrir une fenêtre de B lorsque le client valide son formulaire sur A. Ce qui me souci dans tout ça c'est faire transiter des informations entre deux sites. Il est hors de question de faire transiter les codes de la bases de données, cela va sans dire, mais rien que les informations du client, ça m'ennuit. Rq je code le passe en md5() à l'arrivé et pas pendant le transfert, mais bon, reste le mail quand même.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
Citation:
1. le client poste son formulaire sur A. 2. A fais des trucs 3. A demande à B de faire des trucs 4. B fais des trucs 4. B renvoie une réponse (à A) 5. A fais des trucs 6. A renvoie une réponse (au client) => le client ne sait pas que B existe... pas d'iframe cachée ou autres siouxeries... Citation:
|
|||
|
|
00
|
|
|
#7 | |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bon quand je passerai à la pratique j'y verrai plus clair, là je m'informe à l'avance le temps que ça se décante.
Citation:
C'est justement ce qui me parrait impossible. De client vers bd A c'est ok. Mais de client de A vers bd de B, forcément les informations du client transitent sur le réseau (ok j'y connais pas grand chose mais bon). Et là elles peuvent donc être interceptée. Ceci dit si seul le pseudo, l'email et le pass transitent, sachant que le pass est codé par la page B avant l'insertion dans la bd B, le pirate qui récupère ça va en faire quoi ? Que dalle, il aura un mail, bon, mais le pass qu'il aura aura été encodé par un md5() plus un paquet de sel. L'important c'est qu'il n'ai pas les informations de la BD, non ? Ou alors il faut une même bd pour les deux sites, du ssl etc... mais là ça me saoule, c'est que pour des forums, c'est pas des boutiques en ligne avec CB etc... Et en plus si le pirate veut le code d'une personne en particulier, il va falloir qu'il sniffe pile au moment de l'inscription. Vous en pensez quoi ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
Deuxièmement quand A communique avec B, il est un client vis à vis de B. C'est exactement comme si le client (le navigateur) attaquait directement B. Ton navigateur ne connait pas les informations de connexion à la base de données de A. Donc A ne connait pas les informations de connexion à la base de données de B... Et même, pour peu que A et B soit chez le même hébergeur, j'aurais tendance à dire que tu as plus de chance d'être intercepté entre Client et A que entre A et B... |
|
|
|
00
|
|
|
#9 | ||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Citation:
Donc j'en déduis que tu ne vois point d'inconvénients en terme de sécurité à ce système ? Du moins pas d'inconvénients majeurs ? Citation:
Par contre je ne vois toujours pas comment insérer les données dans bdB depuis la page de B chargé de le faire, sans ouvrir cette page B dans A...
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#11 | |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
J'ai édité le post au dessus mais comme tu as posté en meme temps, tu ne le verras peut être pas. Je reprend :
Citation:
Me voilà rassuré coté sécurité, par contre je ne vois toujours pas comment insérer les données dans bdB depuis la page de B chargé de le faire, sans ouvrir cette page B dans A... histoire de ne pas ouvrir x fenêtre de divers sites lorsque le client valide le formulaire d'inscription sur A.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Imaginons que A et B soit tous les deux hébergés chez un hébergeur H.
Quand A communique avec B, il y a quand même peu de chance que A sorte du réseau de H pour atteindre B, puisqu'ils sont dans la même infrastructure. Alors qu'avec ton navigateur, quand tu communiques avec A, les paquets de données transitent à travers internet et j'estime qu'il y a plus de chance qu'un voisin se connecte sur ta passerelle wifi que das l'infrastructure de l'hébergeur. (avis personnel qui n'engage que moi bien entendu) |
|
|
00
|
|
|
#13 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Ok,
Bon quand je passerai à la pratique il faudra surement que je ré ouvre un post, mais au moins là je vois que l'idée est valable. Merci
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#14 | |||||||
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
Code formulaire fournit par A :
Code login.php (A) :
Code error_in_login.php (B) :
Bien sur pas testé. |
|||||||
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
J'ai rien compris. Avant la technique, voyons l'idée générale.
- Le client est sur formulaire.php de A. - Il valide le formulaire avec email et pass. - Il arrive sur confirmation.php de A. - Confirmation.php de A envoie les données dans BD de A. Tous est normal jusqu'ici. Maintenant comment fait-on intervenir la page confirmation.php de B ? - Le client est sur formulaire.php de A. - Le client valide, on ouvre deux pages, confirmation.php de A et en _blank confirmation.php de B. - Les deux pages confirmation.php font leur boulot respectif vis à vis de leurs bases de donnée. Problèmes : - Je ne sais pas si on peut ouvrir deux fenêtres en validant un formulaire. -C'est de toute façon bidon puisqu'on ouvre deux fenêtre, si il y a 10 sites ont en ouvre 10, c'est justement ce qu'il ne faut pas. Conclusion : C'est toujours obscure pour moi.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() Inscription : juillet 2004 Messages : 1 033 ![]() |
Ce que tu n'arrives pas à omprendre c'est que lorsque l'on te dit que le site A communique avec le site B, le navigateur n'intervient pas.
En effet dans ce cas de figure on vas forger une requete HTTP en POST. Que l'on vas envoyé en PHP vers une page du serveur B. Et cette page vas se comporter comme si un client navigait avec un navigateur, sauf que ce n'est pas la cas. Récapitulatif (ou tentative) : -> Client Envoie une requete vers le site A (utilise son navigateur) ----> Le Site A enregistre les données dans la BDD ----> Le site A créé une requete HTTP-POST en utilisant PHP ----> Le site A envoie la requete à destination du serveur B (http://serveurb.com/inserUser.php par exemple) --------> Le site B recoit la requete HTTP --------> Le site B enregistre les données dans sa base de données --------> Le site B affiche une page avec un message confirmant l'insertion ----> Le Site A lit la réponse, accessoirement en fait quelquechose ----> Le site A génére la page de réponse pour le client ----> Le site A envoie la réponse au client --> Le client recoit la réponse (utilise son navigateur) --> Le client affiche la réponse à l'utilisateur (utilise son navigateur) -> * CONGRATZ * Vous êtes inscrit (utilise son navigateur) En esperant que cela t'aide à comprendre la mécanique. bbye |
|
|
00
|
|
|
#17 | ||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Oui alors disons que ça s'éclaircit.
Citation:
Citation:
- Le client valide un formulaire sur une page du site A. - Il se retrouve sur la page de confirmation du site A. - Un message de confirmation lui dit qu'il est inscrit sur les deux. - Mais tout à été transparent quant à l'inscription sur B, aucune page/fenêtre de B n'a eu besoin d'être ouverte par le client, ou automatiquement, pour insérer les données du formulaire dans bdB en plus de bdA. C'est ça, on est sur la même longueur d'onde EpoX ? Si oui, il me reste donc à comprendre, en terme de code pur, comment envoyer les données Vers confirmation.php de B depuis confirmation.php de A le tout sans ouvrir aucune page de B dans le navigateur.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||
|
|
00
|
|
|
#18 | ||
|
Membre Expert
![]() Inscription : juillet 2004 Messages : 1 033 ![]() |
C'est tout à fait cela
Quand au comment, deux méthodes, fsockopen ou socket_create. Je me contenterai de la première, la seconde n'étant pas forcèment utile ici. Code :
|
||
|
|
00
|
|
|
#19 | |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
- http://php.net/curl - http://php.net/file_get_contents
|
|
|
|
00
|
|
|
#20 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Ok c'est chouette, je sais que mon projet est possible.
Dès que je passerai à l'action, je saurai quels outils utiliser. Merci à tous ! **edit** Euh, une question quand même pour mieux situer le truc, fsockpen a été créer pour quoi au départ ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com