Connexion à un serveur distant avec cURL & création cookie

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Connexion à un serveur distant avec cURL & création cookie

par orgerix » 21 avr. 2009, 08:23

Tu es sur que la page d'enrgesitrement est la page index.php ?

Parce qu'il faut envoyer les données post sur la page qui fera le traitmeent du formulaire.

Connexion à un serveur distant avec cURL & création cook

par ruslan59 » 21 avr. 2009, 08:14

Oui je vais mettre ça.

Alors j'ai 2 pages du mon site

1ere page (gatewayconnect.php)

Code : Tout sélectionner

define('LOGIN', 'ruslan59'); define('PASSWORD', 'monpasswd'); define('AUTHENTIFICATION', 'http://www.site_distant.com/index.php'); define('PAGE_PRIVEE', 'http://www.site_distant.com/index.php?page=formulaire'); $sid = ''; /** * Première connexion : authentification **/ $ch = curl_init(AUTHENTIFICATION); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'login' => LOGIN, 'mdp' => PASSWORD ) ); curl_setopt($ch, CURLOPT_COOKIEJAR, realpath('cookie.txt')); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $ret = curl_exec($ch); if ($ret === FALSE) { die(curl_error()); } curl_close($ch); if (preg_match('/(PHPSESSID=[0-9a-z,-]{32,40})/i', $ret, $m)) { $sid = '?' . $m[1]; } else if (preg_match('#<input\s+type="hidden"\s+name="([^\r\n\t <>\'"\\\]+)"\s+value="([0-9a-z,-]{32,40})"\s*/?>#i', $ret, $m)) { $sid = '?' . $m[1] . '=' . $m[2]; }
Ensuite mon formulaire (form.php)

Code : Tout sélectionner

<?php include ("gatewayconnect.php"); ?> ... <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="form"> <table border="0" width="72%" cellspacing="1"> <tr> <td height="55">&nbsp;</td> </tr> <tr> <td height="5">&nbsp;</td> </tr> <tr> <td> <input type="text" id="num" maxlength="10" name="destinataire" onBlur="vNum()" onchange="ScanForEmpty()" size="18" value="N° du destinataire" OnFocus="this.value=''" style="border: 1px dotted #800080"></td> </tr> <tr> <td>Message</td> </tr> <tr> <td height="50"> <textarea rows="3" maxlength="149" id="portugal-tchat.com" onkeyup="ScanForEmpty()" name="message" cols="14" style="border: 1px dotted #800080"></textarea></td> </tr> <tr><td align="center"> <script>displaylimit("","portugal-tchat.com",149)</script> </td></tr> <tr> <td> <p align="center"> <input type="hidden" name="prenom" value="<?php echo $prenom; ?>"> <input type="hidden" name="login" value="<?php echo $login; ?>"> <input type="submit" disabled="true" onclick="vNum();" value="Envoyer" name="send" style="float: center"></td> </tr> </table> </form> ...
Et c'est là que je bloque =(
Je veux que lorsque que j'envoi le formulaire de mon site
bah c'est en même temps envoyer le formulaire du site distant


[/code]

par orgerix » 21 avr. 2009, 08:03

Pourais tu déjà montrer ce que tu as fait ?

Connexion à un serveur distant avec cURL & création cook

par ruslan59 » 21 avr. 2009, 07:49

Bonjour,
Je suis entrain de monter un projet mais à ce jour je reste bloqué sur un point.

J'aimerai pouvoir me connecter sur un espace même d'un site distant depuis une page de mon site en cours de création afin d'y envoyer des formulaires.

Le site distant vérifie l'existence des cookies de connexion pour envoyer les formulaires.

J'ai essayé avec cURL, j'arrive bien à me connecter à l'espace même, mais lors de la soumissions du formulaire (de mon site), il n y a aucune action de la part du site distant.

En gros :

Monsite.com > ma_page_d_envoi_formulaire.php

Site_distant.com > page_envoi_formulaire.php

Ce que je veux c'est que quand j'envoi le formulaire de mon site, celui ci transmet les variables au site distant et les envoi par la suite.

Voyez-vous comment je pourrais faire s'il vous plait ?

Celui ou celle qui m'aide à résoudre le problème sera récompensé !

Merci par avance