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:
testformulier:
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?
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:
<?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:
<?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?