Extremefall
Mitglied
Hallo,
ich habe folgendes Problem: curl liefert bei mir eine weiße (leere) Seite zurück. Mein Code:
Das ganze wurde an den HTML Code angepasst.
Hier noch einmal die dazugehörige Variablendeklaration:
Wisst ihr, wo der Fehler liegt und wie ich den Inhalt erhalte? Es handelt sich um einen Login.
Ich wäre für jede Hilfe dankbar.
ich habe folgendes Problem: curl liefert bei mir eine weiße (leere) Seite zurück. Mein Code:
PHP:
<?php
function curl($url){
$go = curl_init($url);
curl_setopt ($go, CURLOPT_URL, $url);
//follow on location problems
if (ini_get('open_basedir') == '' AND ini_get('safe_mode' == 'Off')){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($go, CURLOPT_POST, 1);
curl_setopt($go, CURLOPT_HEADER, 0);
curl_setopt($go, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($go, CURLOPT_COOKIEFILE, "cookie.txt");
$arrSubmit = "ctl02$txtBenutzername=xxxx&ctl02$txtPasswort=xxxxxx&ctl02$btnLogin=weiter";
curl_setopt($go, CURLOPT_POSTFIELDS, $arrSubmit);
curl_setopt ($go, CURLOPT_FOLLOWLOCATION, $l);
$syn = curl_exec($go);
}else{
$syn = curl_redir_exec($go);
}
curl_close($go);
return $syn;
}
//follow on location problems workaround
function curl_redir_exec($ch)
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
$arrSubmit = "ctl02$txtBenutzername=xxxxxxxxx&ctl02$txtPasswort=xxxxxxxxx&ctl02$btnLogin=weiter&__VIEWSTATE=/wEPDwULLTEwODU4OTkxMzRkZJameM6ksrAXGiqwwlYvX80NgqHL&__EVENTVALIDATION=/wEWBALAo9uXCgK10rnVAQLLus+1BQLpvY+ZD9v3JTJTdsdZzFD3l2npiyDZyqLc";
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrSubmit);
static $curl_loops = 0;
static $curl_max_loops = 20;
if ($curl_loops++>= $curl_max_loops)
{
$curl_loops = 0;
return FALSE;
}
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
list($header, $data) = explode("\n\n", $data, 2);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code == 301 || $http_code == 302)
{
$matches = array();
preg_match('/Location:(.*?)\n/', $header, $matches);
$url = @parse_url(trim(array_pop($matches)));
if (!$url)
{
//couldn't process the url to redirect to
$curl_loops = 0;
return $data;
}
$last_url = parse_url(curl_getinfo($ch, CURLINFO_EFFECTIVE_URL));
if (!$url['scheme'])
$url['scheme'] = $last_url['scheme'];
if (!$url['host'])
$url['host'] = $last_url['host'];
if (!$url['path'])
$url['path'] = $last_url['path'];
$new_url = $url['scheme'] . '://' . $url['host'] . $url['path'] . ($url['query']?'?'.$url['query']:'');
curl_setopt($ch, CURLOPT_URL, $new_url);
return curl_redir_exec($ch);
} else {
$curl_loops=0;
return $data;
}
}
$html = curl("https://light.dsbcontrol.de/DSBlightWebsite/(S(zidzvunllqa5m2551nrui532))/Homepage/IFrame.aspx?ID=b1156653-7c27-461a-bb5f-65683ff4aeaf&Width=834&Height=472");
echo $html;
?>
HTML:
<form name="form1" method="post" action="IFrame.aspx?ID=b1156653-7c27-461a-bb5f-65683ff4aeaf&Width=834&Height=472&MyDate=0" id="form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEwODU4OTkxMzRkZJameM6ksrAXGiqwwlYvX80NgqHL" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBALAo9uXCgK10rnVAQLLus+1BQLpvY+ZD9v3JTJTdsdZzFD3l2npiyDZyqLc" />
<input name="ctl02$txtBenutzername" type="text" id="ctl02_txtBenutzername" style="width:200px;" />
<input name="ctl02$txtPasswort" type="password" id="ctl02_txtPasswort" style="width:200px;" />
<input type="submit" name="ctl02$btnLogin" value="weiter" id="ctl02_btnLogin" style="width:200px;" />
Hier noch einmal die dazugehörige Variablendeklaration:
PHP:
$arrSubmit = "ctl02$txtBenutzername=xxxxxxx&ctl02$txtPasswort=xxxxxxxxxx&ctl02$btnLogin=weiter&__VIEWSTATE=/wEPDwULLTEwODU4OTkxMzRkZJameM6ksrAXGiqwwlYvX80NgqHL&__EVENTVALIDATION=/wEWBALAo9uXCgK10rnVAQLLus+1BQLpvY+ZD9v3JTJTdsdZzFD3l2npiyDZyqLc";
$html = curl("https://light.dsbcontrol.de/DSBlightWebsite/(S(zidzvunllqa5m2551nrui532))/Homepage/IFrame.aspx?ID=b1156653-7c27-461a-bb5f-65683ff4aeaf&Width=834&Height=472");
Ich wäre für jede Hilfe dankbar.