Bonjour,
j'utilise un petit script php qui me permet de simuler des requetes en post et get. je sais qu'il existe cURL mais il n'est pas installé

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<html><head></head><body>
<?php
 
 
function post_it ($datastream, $url, $method) {
 
  $url = preg_replace("@^http://@i", "", $url);
  $host = substr($url, 0, strpos($url, "/"));
  $uri = strstr($url, "/");
 
  $reqbody = "";
  foreach($datastream as $key=>$val) {
    if (!empty($reqbody)) $reqbody.= "&";
    $reqbody.= $key."=".urlencode($val);
  }
 
  if ($method == "GET") {
    $uri .= '?' . $reqbody;
  }
  echo "<br>".$uri."<br>";
  $contentlength = strlen($reqbody);
  $reqheader =  $method . " " . $uri . " HTTP/1.1\r\n".
                "Host: " . $host . "\n".
                "User-Agent: PostIt\r\n".
                "Content-Type: application/x-www-form-urlencoded\r\n".
                "Content-Length: " . $contentlength . "\r\n".
                "Connection: Close\r\n\r\n".
                $reqbody . "\r\n";
 
  echo "<br>".$reqheader."<br>";
  $socket = fsockopen($host, 80, $errno, $errstr);
 
  if (!$socket) {
    $result["errno"] = $errno;
    $result["errstr"] = $errstr;
    return $result;
  }
 
  fputs($socket, $reqheader);
 
  while (!feof($socket)) {
    $result[] = fgets($socket, 4096); 
  }
 
  fclose($socket); 
 
  return $result;
}
 
/* ---------------------------------------------------------- */
  $VARIABLE = "BLABLABLABLA \r\n";
 
  $data["UserName"] = "some";
  $data["PassWord"] = "data";
 
  $result = post_it($data, "http://localhost/test", "GET");
 
  if (isset($result["errno"])) {
    $errno = $result["errno"];
    $errstr = $result["errstr"];
    echo "<B>Error $errno</B> $errstr";
    exit;
  } else {
      for($i=0;$i< count($result); $i++) $VARIABLE .= $result[$i];
  }
  echo $VARIABLE;
 
 
?>
</body>
</html>
Seulement voilà j'ai deux questions (en fait) :
- la fonction marche très bien en post et get, mais me renvoie systématique l'entête HTTP :
HTTP/1.1 200 OK Date: Wed, 24 Jan 2007 11:52:32 GMT Server: Apache/2.2.3 (Win32) PHP/5.2.0 Content-Length: 191 Connection: close Content-Type: text/html
y a-t-il un moyen de supprimer cela sans avoir à traiter la chaine de caractère par une quelconque fonction (que je ne connais pas encore du reste)
- lorsque j'utilise ce script en GET, je peux quand même récupérer le résultat des variables en post, est-ce normal ??? sachant que ceci n'est pas vrai en utilisant un formulaire html et en utilisant les <form>

J'espère que j'ai été assez clair
Merci d'avance