PHP Lose einziehen

mshnx

abgemeldet
14 Februar 2010
391
23
Hallo,

ich möchte ein ratespiel in php schreiben, man muss 10.000.000 setzen um den jackpot zu gewinnen. Dafür habe ich 3 textfelder

Klammid, Losepw, Anzahl lose


und nach dem Klick auf dem Submit button soll er die Lose einziehen die im textfeld stehen.

weiß nicht wieso es nicht geht daich jetz kein fehler sehe-.-

PHP:
<?php
$zahl = $_POST['zahl'];
$klammid = $_POST['klammid'];
$losepw = $_POST['losepw'];


 if($submit)
{
$handle = fopen ("https://www.klamm.de/engine/lose/get.php?ef_id=18114&ef_pw=*****
&k_id=$klammid&l_pw=$losepw&s=glueckspiel&n=$zahl", "r");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form method="post">
	<input type="text" name="zahl" />
    <input type="text" name="losepw" />
   	<input type="text" name="klammid" />
    <input type="submit" value="Gewinnen" name="submit" />



</form>
</body>
</html>
 
Du solltest mal via phpinfo() prüfen, was die Werte für die beiden Einstellungen allow_url_fopen und register_globals ist. Falls nur eins von beiden aus ist, wird Dein Script nicht funktionieren können, da entweder die URL nicht abgerufen werden kann oder die Variablen (die eigentlich aus $_POST kommen sollten) nicht erkannt werden.
 
Und du solltest dir angewöhnen, Usereingaben zu prüfen. Die sind immer als potentiell gefährlich anzusehen 8O
 
danke für eure Antworten, werde mit phpinfo() es mir mal anschauen und versuche es weiter :)
 
die Variablen (die eigentlich aus $_POST kommen sollten)
Tun sie doch?!

PHP:
$zahl = $_POST['zahl'];
$klammid = $_POST['klammid'];
$losepw = $_POST['losepw'];

Mal davon abgesehen, dass man den Inhalt der geposteten Variablen noch anständig prüfen sollte, ist das doch korrekt, register_globals ist doch hier gar nicht notwendig, oder hab ich da jetzt ein Brett vorm Kopf?
 
Was ist denn der Fehler? Was antwortet die EF-API denn auf deine Anfrage?

Edit: @tH das stimmt natürlich :ugly: Aber nachdem register_globals an ist, ist das wohl auch nicht das Problem...
 
enthält das Passwort irgendwelche Sonderzeichen? Ich könnte mir vorstellen, dass hier das Problem liegt.

Wenn register_globals == off wäre, würde außerdem logischerweise $submit nicht gesetzt sein. (und register_globals == on ist im Übrigen sehr ungesund. Erst recht, wenn man seine Variablen nicht prüft.)
 
Entweder vorm Kopf oder vor Zeile 7: $submit hat niemand gesetzt, ist also immer false.

$submit habe ich auch ihm nach hinein gesetzt und es funktioniert auch so nicht.

@marac er gibt gar nix aus kommischerweise.

ich hab den code nun genommen von coding-tips

mein code sieht jetz so aus:

PHP:
<?php
$zahl = $_POST['zahl'];
$klammid = $_POST['klammid'];
$losepw = $_POST['losepw'];
$submit = $_POST['submit'];


 if($submit)
{
  $returned='';
  $fp=@fopen("https://www.klamm.de/engine/lose/get.php?ef_id=18114&ef_pw=*****
&k_id=$klammid&l_pw=$losepw&s=Testüberweisung&n=$zahl&k=2","r");
  while($line=@fgets($fp,1000))
    $returned.=$line;
  @fclose($fp);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form method="post">
	Einsatz<input type="text" name="zahl" />
    Losepw<input type="text" name="losepw" />
   	Klammid<input type="text" name="klammid" />
    <input type="submit" value="Gewinnen" name="submit" />



</form>
</body>
</html>

jetz sehe ich es das er die url aufgerufen hat, da meine Anfragen weniger werden. Aber die Transaktion ist nicht zustande gekommen.
 
enthält das Passwort irgendwelche Sonderzeichen? Ich könnte mir vorstellen, dass hier das Problem liegt.

Wenn register_globals == off wäre, würde außerdem logischerweise $submit nicht gesetzt sein. (und register_globals == on ist im Übrigen sehr ungesund. Erst recht, wenn man seine Variablen nicht prüft.)

nein das Passwort enthält keine Sonderzeichen
 
@marac er gibt gar nix aus kommischerweise.
Was soll er denn auch großartig ausgeben? Außer statischem XHTML-Markup am Ende wirst du keine Ausgabe kriegen, weil das Script niemals eine macht.

Und hör bitte mit dem Doppelposten auf, es gibt ne Edit-Funktion. Danke ;)
 
Du hast mit dem neuen Code die Variable $returned erzeugt. Geb die doch mal mit Echo aus und guck mal was da drinsteht. Vielleicht hilft das ja weiter.
 
ja sorry bin noch müde ^^ ist ja grad mal 10:32 uhr -.-

hier die ausgabe:

1005|11000|-1|0|49991

1005 beudetet ja das die EF Kennung nicht simmt, habe das dann mir angeschaut stimmte wirklich nicht, habe die ef kennung angepasst aber 1005 gibt er weiterhin aus