Seite 2 von 8
Re: Fremde Scripte
Verfasst: 6. Januar 2009, 17:29
von Rizzo
Es soll so laufen das sich registrierte User Codes kaufen können (Paypal etc.) dann weitergeleitet werden
auf die Seite wo die Codes generiert werden.
Nun kann man mit dem Code ein Gebot abgeben.Mache ich das kommt die Meldung
Ihr Gebot von x,xx Euro wurde nicht eingetragen.
Falscher PIN
Warum Falsch, die Codes wurden doch generiert und eingetragen (allerdings nicht beim User,sondern in einer extra Tabelle)
Re: Fremde Scripte
Verfasst: 6. Januar 2009, 17:52
von EasyHP
Komisch, nein, nicht komisch. Ich hab mir den Code noch einmal angesehen - der Code ist unlogisch, aber theoretisch richtig. Ersetze bitte das alles ...
Code: Alles auswählen
<?php
$code = $_POST["code"];
$user = $_POST["user"];
$gebot = $_POST["gebot"];
if( $code == "" OR $user == "" OR $gebot == "")
{
echo "Eingabefehler. Bitte alle Felder korrekt ausfüllen. <a href=\"artikel1.php\">Zurück</a>";
exit;
}
$result = mysql_query("SELECT id FROM a1 WHERE code LIKE '$code'");
$menge = mysql_num_rows($result);
if($menge == 0)
{
$eintrag = "INSERT INTO a1 (code, user, gebot) VALUES ('$code', '$user', '$gebot')";
$eintragen = mysql_query($eintrag);
if($eintragen == true)
{
echo "Ihr Gebot von <b>$gebot</b> Euro wurde nicht eingetragen. <br><br>Falscher PIN <a href=\"artikel1.php\"><br><br>zur Übersicht</a>";
}
else
{
echo "Fehler beim Speichern des Gebotes. <a href=\"artikel1.php\">Zurück</a>";
}
}
else
{
echo "Ihr eingegebener Pin ist schon verwendet. <a href=\"artikel1.php\">Haben Sie sich vertippt?</a>";
}
?>
... mit dem hier ...
Code: Alles auswählen
<?php
$code = $_POST["code"];
$user = $_POST["user"];
$gebot = $_POST["gebot"];
if( $code == "" OR $user == "" OR $gebot == "")
{
echo "Eingabefehler. Bitte alle Felder korrekt ausfüllen. <a href=\"artikel1.php\">Zurück</a>";
exit;
}
$result = mysql_query("SELECT id FROM a1 WHERE code LIKE '$code'");
$menge = mysql_num_rows($result);
if($menge == 0)
{
$eintrag = "INSERT INTO a1 (code, user, gebot) VALUES ('$code', '$user', '$gebot')";
$eintragen = mysql_query($eintrag);
if($eintragen == false)
{
echo "Fehler beim Speichern des Gebotes. <a href=\"artikel1.php\">Zurück</a>";
}
else
{
echo "Ihr Gebot wurde eingetragen.. <a href=\"artikel1.php\">Weiter</a>";
}
}
else
{
echo "Ihr eingegebener Pin ist schon verwendet. <a href=\"artikel1.php\">Haben Sie sich vertippt?</a>";
}
?>
... jetzt sollte es funktionieren - Schande über mich, das ich da nicht gleich draufgekommen bin.
LG, Tim
Re: Fremde Scripte
Verfasst: 6. Januar 2009, 18:44
von Rizzo
...fast.....der Code wird angenommen....
...allerdings wenn ich mir einen ausdenke wird der auch angenommen....
Da ist also noch eine Kleinigkeit faul.....
Re: Fremde Scripte
Verfasst: 6. Januar 2009, 20:28
von EasyHP
Wie meinst du das?
Re: Fremde Scripte
Verfasst: 6. Januar 2009, 21:12
von daniel
bei dem code kann ich nicht verstehen, warum eine Fehlermeldungangezeigt werden soll, wenn der Befehl INSERT.... = true zurückgibt.
achso das hat Tim ja schon berichtigt.
mein Lösungsvorschlag:
war LIKE im SQL-Befehl nicht dafür, wenn die der entsprechende Wert in der Tabellenzelle irgendwo vorhanden ist??? villeicht liegt es ja daran, dass du dir immer einen Code ausgedacht hast, der im Code enthalten ist. also zB: du hast 357 eingegeben und der code heißt 12348
357157.
ich würd da lieber das hier nehmen:
Re: Fremde Scripte
Verfasst: 6. Januar 2009, 21:33
von Rizzo
Ich meine wenn z.B. ein generierter Code "bnghtzu" lautet wird er angenommen,
wenn ich mir einen ausdenke der nicht generiert worden ist wird er auch angenommen,
was ja nicht Sinn der Sache sein kann......
@Daniel

nein,leider auch nicht.
Muß da nicht noch irgendwie sowas rein das vorher abgefragt wird aus der DB ob der Code
vorhanden und noch nicht verbraucht ist

Re: Fremde Scripte
Verfasst: 6. Januar 2009, 21:42
von daniel
moment da ist immer noch was unlogisch.
Code: Alles auswählen
<?php
$code = $_POST["code"];
$user = $_POST["user"];
$gebot = $_POST["gebot"];
#wenn nichts eingegeben wurde wird dieser Fehler angezeigt > OK
if( $code == "" OR $user == "" OR $gebot == "")
{
echo "Eingabefehler. Bitte alle Felder korrekt ausfüllen. <a href=\"artikel1.php\">Zurück</a>";
exit;
}
$result = mysql_query("SELECT id FROM a1 WHERE code LIKE '$code'");
$menge = mysql_num_rows($result);
#wenn keine übereinstimmung gefunden wurde, wird der Datensatz eingetragen > ???
if($menge == 0)
{
$eintrag = "INSERT INTO a1 (code, user, gebot) VALUES ('$code', '$user', '$gebot')";
$eintragen = mysql_query($eintrag);
if($eintragen == false)
{
echo "Fehler beim Speichern des Gebotes. <a href=\"artikel1.php\">Zurück</a>";
}
else
{
echo "Ihr Gebot wurde eingetragen.. <a href=\"artikel1.php\">Weiter</a>";
}
}
#wenn es nicht 0 war, also mindestens eine übereinstuimmung gefunden wurde, wird angezeigt, dass der Pin schon verwendet wird?
else
{
echo "Ihr eingegebener Pin ist schon verwendet. <a href=\"artikel1.php\">Haben Sie sich vertippt?</a>";
}
?>
soll nun beim finden eines Codes das eingetragen werden oder wenn der Code nicht gefunden wurde?
dieser Code überprüft ob es den Code noch
nicht gibt und trägt dann die Daten ein. wenn es den schon gibt sollte die Meldung angezeigt werden:
Ihr eingegebener Pin ist schon verwendet. Haben Sie sich vertippt?
Re: Fremde Scripte
Verfasst: 6. Januar 2009, 21:47
von Rizzo
Wenn der Code nicht gefunden wurde, muß ja eine Fehlermeldung kommen a' la
"Code ist ungültig" oder so ähnlich.Das passiert nicht, sondern wird trotzdem angenommen.
Ist ein Code schon genommen worden kommt auch entsprechend das richtige "Ergebnis",
das er schon verwendet worden ist.
Fehlt eine Angabe kommt auch das richtige "Ergebnis".
Re: Fremde Scripte
Verfasst: 6. Januar 2009, 21:53
von daniel
Rizzo hat geschrieben:Muß da nicht noch irgendwie sowas rein das vorher abgefragt wird aus der DB ob der Code
vorhanden und noch nicht verbraucht ist

eben das tut dieser Code ja. bzw. wie soll ddie Datenbankzeile denn aussehen, wenn der Code zwar Gültig aber noch nicht verwendet worden ist?
dafür würde ich eine zweite Tabelle erstellen, die alle gültigen Codes aulistet und wenn einer verwendet wird, wird er dort gelöscht und hier hinzugefügt mit den Daten.
oder es muss geprüft werden, wenn der Code stimmt, ob die Felder user und gebot leer sind. dann kann man für beide prüfungen die gleiche Datenbank benutzen.
dafür muss man aber natürlich wissen in welcher Tabelle die gültigen Codes "aubewahrt" werden oder die Datei, die die Gültigen Codes erstellt dann ebenfalls entsprechend abändern.
PS.: bevor der Eingabe des Users über POST vertraut wird sollte man noch prüfen, ob es diesen User überhaupt gibt, bzw, ob wirklich er dieses Formular abgesendet hat.
Re: Fremde Scripte
Verfasst: 6. Januar 2009, 21:59
von Rizzo
Es gibt folgende Datenbank für die Codes:
und für die Artikel