[PHP/EF] EF-Problem

Retep

Well-known member
ID: 102024
L
29 April 2006
378
4
Der Loseeinzug auf meiner Seite funktioniert nicht mehr. So sieht das Ganze aus:

***
$einsatz=$_POST[anzahl];
$returned='';
$ret=@file("https://www.klamm.de/engine/lose/get.php?[...]");
for($i=0;$i<count($ret);$i++)
$returned.=$ret[$i];
$werte = 5;
$werte_array=split("[|]",$ret[0],$werte);
$wert_1=$werte_array[0];
$wert_2=$werte_array[1];
if($wert_1!=1001){header("location: eingabefalsch.php"); exit;}
***

Man landet nun immer unter eingabefalsch.php, obwohl dieser Code genau so wochenlang schon funktionierte und ich nichts verändert habe.
Wenn ich die Zeile
https://www.klamm.de/engine/lose/get.php?[...]
manuell in den Browser eingebe, funktionierts noch.

Hat jemand eine Idee?
 
Man landet nun immer unter eingabefalsch.php, obwohl dieser Code genau so wochenlang schon funktionierte und ich nichts verändert habe.

Wenn du am Script nichts verändert hast, dann vielleicht an deinen Einstellungen am Server/Webspace? Vielleicht wird bei dir das Aufrufen der Datei von klamm nicht gemacht bzw. funktioniert nicht. Ist aber nur eine Vermutung ;).
 
.

Wenn du am Script nichts verändert hast, dann vielleicht an deinen Einstellungen am Server/Webspace? Vielleicht wird bei dir das Aufrufen der Datei von klamm nicht gemacht bzw. funktioniert nicht. Ist aber nur eine Vermutung ;).

Das Aufrufen welcher Datei?
Ich habe jetzt anstatt der Header-Weiterleitung mal
echo "Wert ist"; echo $wert_1; eingefügt,
Ausgabe lautet nur: Wert ist
Die Variable $wert_1 scheint also ein leerer String zu sein, wie kann das nun sein? Stehe jetzt völlig auf dem Schlauch.
Hoffe, dass vielleicht jemand eine Idee hat, evtl. ne Debugging-Vorgehensweise?
 
Du holst dir hier ja extern Informationen von klamm:

$ret=@file("https://www.klamm.de/engine/lose/get.php?[...]");

Durch das @ werden keine Fehlermeldungen ausgegeben. Wenn du das entfernst und das Problem an dieser Zeile liegt, dann müsstest du eigentlich eine Fehlermeldung bekommen.
 
.

Du holst dir hier ja extern Informationen von klamm:

$ret=@file("https://www.klamm.de/engine/lose/get.php?[...]");

Durch das @ werden keine Fehlermeldungen ausgegeben. Wenn du das entfernst und das Problem an dieser Zeile liegt, dann müsstest du eigentlich eine Fehlermeldung bekommen.

Stimmt, ich dank Dir. Bekomme nun folgende beiden Fehlermeldungen:

file(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in [...] on line 11

Warning: file(https://www.klamm.de/engine/lose/validate.php?ef_id=[...]): failed to open stream: Connection refused in [...] on line 11

Mal schauen ob ich herausfinde, was das bedeutet. Wenn jemand das sofort weiss, hab ich nichts gegen einen Post ;)
 
.

Ich habe herausgefunden, dass dies bedeutet, dass nicht mehr mit file auf diese externe Adresse zugegriffen werden kann. Mir ist leider nicht klar, wie ich das ändern kann und erst recht nicht, warum es vorher funktioniert hat.

Kann es evtl. an einer Einstellungsänderung seitens des Providers liegen?
 
Kann es evtl. an einer Einstellungsänderung seitens des Providers liegen?

Jo, das ist der Nachteil, wenn man keinen eigenen Server hat *g*. Ich würde die einfach mal anschreiben und nachfragen, ob die etwas geändert haben, wenn ja warum und ob sie es wieder umstellen können, weil du das unbedingt brauchst.
 
Ich habe herausgefunden, dass dies bedeutet, dass nicht mehr mit file auf diese externe Adresse zugegriffen werden kann.
Wenn dein Webspace-Provider allow_url_fopen deaktiviert, dann macht er das aus sicherheitstechnischen Gründen. Wie dabu schon gesagt hat, mal nachfragen, ob sie es dir freischalten, wenn du darlegst, dass du diese Option nur für eine Verbindung zu klamm-EF benutzt. Von vielen Providern kenne ich es, dass die damit nur Geld machen wollen für die erneute Freischaltung.

Eine andere Möglichkeit, wenn dein Provider Sockets erlaubt, ist es, selber direkt den HTTP-Request zu senden und auszuwerten.
Wenn du keine Ahnung hast, wie das geht, kannst du einfach tleilax' Snippet benutzen. Das is schon fix und fertig und komplett analog zu file() :) https://www.klamm.de/forum/showpost.php?p=523165&postcount=3

Btw.
:arrow: Programmierung
 
.

Ich danke für die Hilfe @ dabu, theHacker.
Es war in der Tat so, dass mein Provider eine Einstellung geändert hatte; ich hab dann darum gebeten, dass dies rückgängig gemacht wird.

Jedenfalls funktioniert es jetzt wieder so, wie es vorher war.