Heej!

Ik ben nu aan het kijken naar een manier waardoor ik een formulier op mijn (of iemand anders) site kan invullen, laten uitvoeren en het resultaat kan laten ophalen. Helaas lukt mij dit niet helemaal.

Na veel zoekpogingen op google kom ik uit bij het volgende script:
<?php

function httpSocketConnection($host, $method, $path, $data)
{
global $Db;


$method = strtoupper($method);

if ($method == "GET")
{
$path.= '?'.$data;
}

$filePointer = fsockopen($host, 80, $errorNumber, $errorString);

if (!$filePointer)
{
throw new Exception("Chyba spojeni $errorNumber $errorString");
}

$requestHeader = $method." ".$path." HTTP/1.1\r\n";
$requestHeader.= "Host: ".$host."\r\n";
$requestHeader.= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n";
$requestHeader.= "Content-Type: application/x-www-form-urlencoded\r\n";

if ($method == "POST")
{
$requestHeader.= "Content-Length: ".strlen($data)."\r\n";
}

$requestHeader.= "Connection: close\r\n\r\n";

if ($method == "POST")
{
$requestHeader.= $data;
}

fwrite($filePointer, $requestHeader);

$responseHeader = '';
$responseContent = '';

do
{
$responseHeader.= fread($filePointer, 1);
}
while (!preg_match('/\\r\\n\\r\\n$/', $responseHeader));


if (!strstr($responseHeader, "Transfer-Encoding: chunked"))
{
while (!feof($filePointer))
{
$responseContent.= fgets($filePointer, 128);
}
}
else
{

while ($chunk_length = hexdec(fgets($filePointer)))
{
$responseContentChunk = '';


$read_length = 0;

while ($read_length < $chunk_length)
{
$responseContentChunk .= fread($filePointer, $chunk_length - $read_length);
$read_length = strlen($responseContentChunk);
}

$responseContent.= $responseContentChunk;

fgets($filePointer);

}

}




return chop($responseContent);

}

echo httpSocketConnection('localhost', 'POST', '/posts.php', 'invullen=hoi&invullen2=ja');

?>

testformulier:

<?php

if(isset($_POST['invullen']) && isset($_POST['invullen2'])) {

if($_POST['invullen'] == 'hoi' && $_POST['invullen2'] == 'ja') {

echo 'Gelukt!';

} else {

echo 'Niet gelukt :(';

}

} else {

?>

<form action="" method="POST">

<input type="text" name="invullen" />
<input type="text" name="invullen2" />
<input type="submit" value="Submit" />

</form>

<?php
}
?>

Resultaat van uitvoeren php script:
Fatal error: Maximum execution time of 60 seconds exceeded in K:\System\xampp\htdocs\posts.php on line 46

Ik wil niet dat het te lang duurt ;)

Mijn vraag is: Weet iemand hoe dit mogelijk is ZONDER cURL? Gebruik ik dit script verkeerd, of moet ik iets anders proberen?
En heb je al wat geprobeert?
Chris Horeweg op 07/12/2010 17:50:35

Dan installeer je een fatsoenlijker programma? Wamp, zend server.. Allemaal cURL ondersteuning =)


Dit toevallig al gedaan? ;-)
Gerben pHp op 07/12/2010 20:48:55

Niets :o

Leg uit.

Reageren