[php/ef] fehler

Brom

Gummibärchen
13 Januar 2007
656
69
So ich habe folgenden Code :

PHP:
include "ef.php";
if (isset($_GET['senden']))
{
$betrag = $_POST['betrag'];
$password = $_POST['password'];
$username = $_POST['username'];
$returned='';
$ret=@file("https://www.klamm.de/engine/lose/get.php?ef_id=$efid&ef_pw=$efpw&k_id=$username&l_pw=$password&s=$betreff&n=$betrag&k=$kennid");
for($i=0;$i<count($ret);$i++){
  $returned.=$ret[$i];
}
$werte = 5; 
$werte_array=split("[|]",$ret[0],$werte); 
$wert_1=$werte_array[0]; 
 
if($wert_1 == 1001) { 
   echo 'Vielen Dank für ihre Spende !';
   } 
elseif($wert_1 == 1002) 
{ 
echo 'EF Account existiert nicht!'; 
} 
elseif($wert_1 == 1003) 
{ 
echo 'EF Passwort falsch!'; 
} 
elseif($wert_1 == 1004) 
{ 
echo 'Nicht genug freie EF Anfragen!'; 
} 
elseif($wert_1 == 1005) 
{ 
echo 'EF Kennung existiert nicht!'; 
} 
elseif($wert_1 == 1006) 
{ 
echo 'klammUser existiert nicht!'; 
} 
elseif($wert_1 == 1007) 
{ 
echo 'klammUser ist gesperrt!'; 
} 
elseif($wert_1 == 1008) 
{ 
echo 'klammUser hat zu wenig Lose!'; 
} 
elseif($wert_1 == 1009) 
{ 
echo 'Lose Passwort falsch!'; 
} 
elseif($wert_1 == 1011) 
{ 
echo 'Anzahl nicht zulässig!';
} 
elseif($wert_1 == 1012) 
{ 
echo 'Betreff nicht zulässig!'; 
} 
else
{
echo "Fehler grrr";
}
}
else
{
include ("form.php");
}
?>

Warumm gibt der mit immer "Fehler grr" aus ?
alle ef daten sind richtig , und wenn man
HTML:
https://www.klamm.de/engine/lose/get.php?ef_id=$efid&ef_pw=$efpw&k_id=$username&l_pw=$password&s=$betreff&n=$betrag&k=$kennid
incl allen pasenden daten aufruft gehts auch ..

Mfg
Marvin
 
Zuletzt bearbeitet:
mach das @ vor dem file weg, dann gibt der dir auch nen fehler aus.

spontan würde ich sagen, dass allow_url_fopen auf off steht...
 
doch , denn klamm gibt doch z.b. aus :

1001|lalal|lalal|lalal

Mfg
Marvin
 
Du splittest hier
PHP:
$werte_array=split("[|]",$ret[0],$werte);
Nur die erste Zeile des Strings aus file(). Richtig wäre:
PHP:
$werte_array=split("[|]",$returned,$werte);

Deshalb ist der $wert_1 empty (Leerstring)
 
Zuletzt bearbeitet:
ABC, sorry das ich dir mal wieder wiedersprechen muss, aber deine Aussage ist falsch, denn $ret[0] ist die erste Zeile des Ergebnisses von file(), sein Code mit der for-Schleife ist eben einfach nur unnütz.

powergrafik, mister_nu hat dir bereits die Lösung genannt und diese ist korrekt, das Auslesen der Page vom EF funktioniert nicht und deshalb geht es nicht. Nicht einfach nur widersprechen, auch nachprüfen, ob andere mit ihren Tipps vllt richtig liegen ;)
Wenn das auslesen der Seite vom Export-Force nicht klappt, dann ist die Variable $ret[0] leer, du splittest an einer leeren Variable, erhälst (wahrscheinlich ?) wieder eine leere Variable (auf jeden Fall keinen korrekten EF-Returncode) somit durchläuft er alle Bedingungen und endet in der Bedingung, dass keine der definierten Bedingungen zutrifft

Noch mein Tipp, lieber explode nehmen, denn diese Funktion ist deutlich schneller
 
Warum soll er eigentlich bei [|] splitten?
Die Ausgabe wird doch durch einen einfachen | getrennt...
 
Ich kenn ja dein html drum herum nicht, aber wenn du die form mit der post-Methode abschickst, dann muss die action ungefähr so aussehen: action="datei.php?senden=true"

Wenn der Sendenparameter fehlt, ist es klar dass es nicht geht!

PHP:
if (isset($_GET['senden'])) // Hier fragst du auf get ab.
{
$betrag = $_POST['betrag']; // hier post variablen! Vielleicht wieder nur ein HTML-Problem?
$password = $_POST['password'];
$username = $_POST['username'];
$returned='';
$ret=@file("https://www.klamm.de/engine/lose/get.php?ef_id=$efid&ef_pw=$efpw&k_id=$username&l_pw=$password&s=$betreff&n=$betrag&k=$kennid");
// ...
}

Also einfach den Submit-Button senden nennen und aus $_GET['senden'] $_POST['senden'] machen. ;)