- Mitglied seit
- 7 Aug 2004
- Beiträge
- 1,494
- Punkte für Reaktionen
- 8
- Punkte
- 38
Hallo Welt,
Ich habe auf meinem Webserver eine cronjob-ausgelöstes PHP-Skript, das mir täglich eine SMS per SMSLink schickt.
Das ganze funktioniert mit voipwise.com problemlos, aber sobald ich SMSLISTO verwende, scheitert der SMSlink-Aufruf mit der Meldung "session lost" und ich lande auf der Login Seite(https://myaccount.smslisto.com/clx/index.php?part=timeout).
Der PHP-generierte SMSlink ist absolut fehlerfrei - wenn ich mir diesen per echo ausgeben lasse und in meinen Browser einfüge, wird die SMS mir Erfolgsmeldung versandt.
Offensichtlich verweigert der SMSLISTO Server die SMSLinks, die von meinem Server aufgerufen werden. Da ich es auch auf anderen Servern in ganz anderen IP-ranges probiert habe, liegt es auch nicht an der IP-Adresse. Ich vermute, daß SMSLISTO irgendwas am Header nicht mag, aber auch die Veränderung sämtlicher Header Details sowie die Verwendung von GET und POST, HTTP/1.0 und HTTP/1.1 method, waren erfolglos und endeten mit "session lost".
Meine getpage Funktion (unten) rufe ich wie folgt auf:
und das ist die getpage Funktion:
Hat jemand eine Idee, woran es liegt und vor allem, wie man das ganze löst? Oder ist das ganze etwa von Betamax beabsichtigt?
Grüße
Inquisitor
Ich habe auf meinem Webserver eine cronjob-ausgelöstes PHP-Skript, das mir täglich eine SMS per SMSLink schickt.
Das ganze funktioniert mit voipwise.com problemlos, aber sobald ich SMSLISTO verwende, scheitert der SMSlink-Aufruf mit der Meldung "session lost" und ich lande auf der Login Seite(https://myaccount.smslisto.com/clx/index.php?part=timeout).
Der PHP-generierte SMSlink ist absolut fehlerfrei - wenn ich mir diesen per echo ausgeben lasse und in meinen Browser einfüge, wird die SMS mir Erfolgsmeldung versandt.
Offensichtlich verweigert der SMSLISTO Server die SMSLinks, die von meinem Server aufgerufen werden. Da ich es auch auf anderen Servern in ganz anderen IP-ranges probiert habe, liegt es auch nicht an der IP-Adresse. Ich vermute, daß SMSLISTO irgendwas am Header nicht mag, aber auch die Veränderung sämtlicher Header Details sowie die Verwendung von GET und POST, HTTP/1.0 und HTTP/1.1 method, waren erfolglos und endeten mit "session lost".
Meine getpage Funktion (unten) rufe ich wie folgt auf:
Code:
getpage("https://myaccount.smslisto.com/clx/sendsms.php?username=username&password=password&from=username&to=+1234567890&text=report");
und das ist die getpage Funktion:
Code:
<?PHP function getpage($url)
{
// get the host name and url path
$parsedUrl = parse_url($url);
$host = $parsedUrl['host'];
if (isset($parsedUrl['path'])) {
$path = $parsedUrl['path'];
} else {
// the url is pointing to the host like http://www.mysite.com
$path = '/';
}
if (isset($parsedUrl['query'])) {
$path .= '?' . $parsedUrl['query'];
}
if (isset($parsedUrl['port'])) {
$port = $parsedUrl['port'];
} else {
// most sites use port 80
$port = '80';
}
$timeout = 10;
$response = '';
// connect to the remote server
$fp = @fsockopen($host, '80', $errno, $errstr, $timeout );
if( !$fp ) {
echo "Cannot retrieve $url";
} else {
// send the necessary headers to get the file
fputs($fp, "GET $path HTTP/1.0\r\n" .
"Host: $host\r\n" .
"User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)\r\n" .
"Accept: */*\r\n" .
"Accept-Language: en-us,en;q=0.5\r\n" .
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n" .
"Keep-Alive: 300\r\n" .
"Connection: keep-alive\r\n" .
"Referer: $host\r\n\r\n");
// retrieve the response from the remote server
while ( $line = fread( $fp, 4096 ) ) {
$response .= $line;
}
fclose( $fp );
// strip the headers
$pos = strpos($response, "\r\n\r\n");
$response = substr($response, $pos + 4);
}
// return the file content
return $response;
}
?>
Hat jemand eine Idee, woran es liegt und vor allem, wie man das ganze löst? Oder ist das ganze etwa von Betamax beabsichtigt?
Grüße
Inquisitor
Zuletzt bearbeitet: