Bonjour,

je developpe un site avec un peu d'ajax dedans (xmlHTTPrequest) et j'ai besoin de poster (methode POST) des variables vers un server ayant un domaine différent. Pour raison de sécurité, les navigateurs interdisent l'utilisation de xmlHTTPrequest sur un domaine différent du server initial.

J'ai donc eu l'idée de créé une page php qui me servira à effectuer le POST.
Le seul soucis c'est que le fsockopen me provoque un Maximum execution time. (le script tourne en boucle donc).
et je ne vois ce qui ne va pas dans mon script.
Merci d'avance pour votre aide.

Cyril

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
<?
$site = "www.site_avec_un_autre_domaine.com";
$url = "/la_page_cible.php";
 
// Build your POST query
$req = "var1=$v1&var2=$v2&var3=$v3";
$header="";
 
// Header info to connect to the server
 
$header .= "POST $url HTTP/1.1\r\n";
$header .= "HOST: $site \r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= 'Content-Length: ' . strlen($req) . "\r\n\r\n";
$header .= "Connection: close\r\n\r\n";
 
 
 // Open up a connection on port 80 to server
 $fp = fsockopen ($site, 80, $errno, $errstr, 30);
 stream_set_timeout($fp, 2);
 
 echo "<br><br>".$site;
 
 // Can't connect? Then DIE!
 if (!$fp)
 	die("I couldn't connect to $site<br>Erreur n°$errno <br>$errstr" ); 
 
// send POST request
fputs($fp, $header . $req); 
 
// evite une éventuelle attente
flush();
 
// Receive POST request
$response = "";
while ( !feof($fp) ) {
		$response = fread($fp,2000);
		echo $response;
}
 
// ferme la connexion
fclose($fp);
?>