Ich suche eine Möglichkeit auf der Seite von unserem Str.Verk.amt die Wunschkennzeichensuche per php/CURL zu benutzen.
Folgendes funktioniert, wenn ich die jsessionid vorher aus dem Firefoxcookie auslese und manuell einsetze.
Hier mit (Code im Web gefunden) kann ich scheinbar ein Cookie setzen, was auch funktioniert .. wenn ich aber die jsesionid aus dem darüber gesetzten cookie benutze, dann funktioniert es nicht.
Habt ihr ne Idee dazu?
Gruß
Jens
Folgendes funktioniert, wenn ich die jsessionid vorher aus dem Firefoxcookie auslese und manuell einsetze.
Code:
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );
curl_setopt($ch, CURLOPT_URL, 'https://apps.kdo.de:443/wuakz/app;jsessionid=DC00A74EA241C1DA1157EC1132ED7654?service=page/Auswahl');
curl_setopt($ch, CURLOPT_POST, 1);
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieURL);
//curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieURL);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'service=direct/1/Suchen/border.$Form&sp=S0&Form0=$RadioGroup,$RadioGroup$2,$Checkbox,inputBuchstaben,inputZiffern,$FormConditional,$FormConditional$0,$FormConditional$1,$ImageSubmit,$FormConditional$2&$RadioGroup=0&$RadioGroup$2=0&inputBuchstaben=J&inputZiffern=*');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$ergebnis1 = curl_exec($ch);
/*
if($ergebnis1=curl_exec($ch) === false)
{
echo 'Curl-Fehler: ' . curl_error($ch);
}
else
{
echo 'Operation ohne Fehler vollständig ausgeführt'."\r\n";
}
*/
echo $ergebnis1;
curl_close($ch);
Hier mit (Code im Web gefunden) kann ich scheinbar ein Cookie setzen, was auch funktioniert .. wenn ich aber die jsesionid aus dem darüber gesetzten cookie benutze, dann funktioniert es nicht.
Code:
$ergebnis = get_url("https://apps.kdo.de/wuakz/app?kdnr=4000");
function get_url( $url, $javascript_loop = 0, $timeout = 5 )
{
$url = str_replace( "&", "&", urldecode(trim($url)) );
$cookie = tempnam ("/tmp", "CURLCOOKIE");
$ch = curl_init();
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_ENCODING, "" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); # required for https urls
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout );
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );
$content = curl_exec( $ch );
$response = curl_getinfo( $ch );
curl_close ( $ch );
if ($response['http_code'] == 301 || $response['http_code'] == 302)
{
ini_set("user_agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
if ( $headers = get_headers($response['url']) )
{
foreach( $headers as $value )
{
if ( substr( strtolower($value), 0, 9 ) == "location:" )
return get_url( trim( substr( $value, 9, strlen($value) ) ) );
}
}
}
if ( ( preg_match("/>[[:space:]]+window\.location\.replace\('(.*)'\)/i", $content, $value) || preg_match("/>[[:space:]]+window\.location\=\"(.*)\"/i", $content, $value) ) &&
$javascript_loop < 5
)
{
return get_url( $value[1], $javascript_loop+1 );
}
else
{
return array( $content, $response, $cookie );
}
}
Habt ihr ne Idee dazu?
Gruß
Jens