PHP Script an Exportforce anbinden

posty

PHP-MySQL
ID: 145191
L
4 August 2006
233
4
Hallo,

seit Jahren nutze ich das EF-Interface. Da mein Server-Provider die PHP-Funktion fopen() und file() abgeschaltet hat nutze ich für den Abruf der Daten fsockopen().

Doch leider geht das seit gestern auch nicht mehr.
Der Klamm-Server antwortet mir mit einer HTTP/1.1 301 Moved Permanently - Antwort.

Die Daten mit file_get_contents() auszulesen funktioniert auch nicht. Ich erhalte keine Daten mit dieser Funktion.

Hat jemand eine Ahnung ?

Url des EF-Aufrufs:
https://www.klamm.de/engine/lose/efstatus.php?ef_id=*****&ef_pw=*****

Komplette Antwort-Header von Klamm:
Code:
HTTP/1.1 301 Moved Permanently
Date: Sat, 05 Sep 2009 06:23:48 GMT
Server: Apache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Sat, 05 Sep 2009 06:23:48 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Location: https://www.klamm.de/partner/velerion.php
Vary: Accept-Encoding
Content-Length: 0
Connection: close
Content-Type: text/html

Besten Dank für Eure Tipps.
posty
 
Poste doch mal bitte den kompletten Request. Da muss ein Fehler drin sein.
Bei mir sieht das so aus:
Code:
[FONT=Lucida Sans Unicode]nc www.klamm.de 80
GET /engine/lose/efstatus.php?ef_id=&ef_pw= HTTP/1.1
Host: www.klamm.de
Connection: close

HTTP/1.1 200 OK
Date: Sat, 05 Sep 2009 07:59:35 GMT
Server: Apache
Vary: Accept-Encoding
Content-Length: 16
Connection: close
Content-Type: text/html

1002|-1|-1|-1|-1[/FONT]
 
Hm,

habe gerade etwas ein meiner Anfrage gebastelt. Und siehe das es geht.

Code:
PHP:
<?php
// Lese-Funktion
function openSock($url) {
	$p_url = parse_url($url);
	
	$host = $p_url['host'];
	$uri = $p_url['path']."?".$p_url['query'];
	
	$t   = array();
	$t   = array();
    $t[] = 'GET ' . $uri . ' HTTP/1.1';
    $t[] = 'Host: ' . $host;
    $t[] = 'Connection: close';
    $t   = implode("\r\n",$t) . "\r\n\r\n";
    
    $fp = fsockopen($host, 80, $errno, $errstr, 30);
    if (!$fp) {
        return false;
    } else {
      	if (!fwrite($fp,$t)) {
        	fclose($fp);
        	return false;
        }
        $rsp = '';
    	while(!feof($fp)) { $rsp .= fgets($fp,8192); }
    	fclose($fp);
    	return $rsp;
     }
     return false;
}

// Url zum auslesen
$url = 'https://www.klamm.de/engine/lose/efstatus.php?ef_id=&ef_pw=';
$rsp = openSock($url);

// $rsp mit Daten weiter verarbeiten....
?>

Header-Ausgabe:
Code:
HTTP/1.1 200 OK
Date: Sat, 05 Sep 2009 08:31:13 GMT
Server: Apache
Vary: Accept-Encoding
Content-Length: 16
Connection: close
Content-Type: text/html

1002|-1|-1|-1|-1

Denke, das sich mein Problem gelöst hat.

Gruß
posty
 
Dei Frage ist, warum ohne host: ein Redirect seitens klamm kommt !?
Kommt eigentlich nur wenn man https://klamm.de z.B. aufruft.
Und dann auch noch auf die Portalseite !?
 
Kann bei meinem provider ebenfalls keine sockets, fopen usw. benutzen. habe daher die ganzen Sachen auf anderen Servern über curl implementiert.