Brauche Hilfe bei PHP-Script
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abgleich
anzahl
aussehen
code
datenbank
datum
fehler
formular
funktionieren
header
herstellen
http
stimmen
string
text
umdrehen
url
verbindung
weiterleitung
-
Hallo,
Ich habe mir ein kleines Script geschrieben, das die Daten in der Textbox, mit den in der SQL-Datenbank verglichen werden. Stimmt der Text in der Textbox mit dem der Datenbank überein, wird auf die Seite success.html weitergeleitet. Stimmen die Daten nicht überein, wird man auf die Seite failed.html weitergeleitet. Leider funktioniert die Weiterleitung irgentwie nicht.
Hier mal der Code:
<?php //FOLGENDER CODE MACHT DIE EINGABEBOX UND DEN BUTTON (HTML) ?> <form method="post"> <input type="text" name="text" /> <input type="submit" value="Abgleichen" /> </form> <?php //JETZT DER CODE, DER ABGLEICHT ?> <?php //VERBINDUNG ZUR DATENBANK HERSTELLEN: $verbindung = mysql_connect("mysql.lima-city.de", "Benutzername" ,"Passwort") or die(mysql_error()); $abfrage_personen = mysql_select_db("db_267815_4") or die(mysql_error()); //ABGLEICH $_POST['text'] = $text; $abfrage = mysql_query("SELECT * FROM codes WHERE codes = '$text'"); $anzahl = mysql_num_rows($abfrage); if($anzahl == 0 OR $anzahl >= 2){ //WENN: NICHT IN DER DATENBANK header("Location:failed.html"); //Weiterleitung exit(); }elseIf($anzahl == 1){ //WENN: IN DER DATENBANK header("Location:success.html"); //Weiterleitung exit(); } ?>
Hier das Script, das nicht funktioniert: http://www.simplevideo.de/paybest
Dieser Wert ist in der SQL-Datenbank gespeichert: 123
Ich hoffe auf Hile!
MfG
SimpleVideo
Beitrag zuletzt geändert: 2.10.2012 19:07:09 von simplevideo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Access denied for user '[ZENSIERT]'@'webspace6.lima-city.de' (using password: YES)
Du hast nichtmal den Login in die Datenbank richtig geschafft. Prüfe bitte dein Usernamen und Passwort für die Datenbank. Das sollte schonmal ein Anfang sein.
Außerdem solltest du
validieren, denn so wäre es für SQL-Injections offen. Ganz einfach wäre es, wenn du dieses wohl liest: http://php.net/manual/de/function.mysql-real-escape-string.php$text
Edit: localhost geht auf Lima-City nicht, mysql.lima-city.de ist schon richtig.
Liebe Grüße -
Hallo,
Sorry. Das hat vorher funktioniert. Hatte hier in meinem Tread vergessen das Passowrt aus dem Code zu holen. Habe es daraufhin aus dem Code geholt und geändert.
Leider ist mein Problem dadurch nicht gelöst. Vielleicht kannst du mir trotzdem helfen?
MfG
SimpleVideo -
Hast du schon ein
ausprobiert und dir angeschaut? Was kommt da raus?echo $anzahl;
Probier mal statt
einheader("Location:failed.html");
Ich weiß nicht, ob der Header mit nur einer Datei überhaupt akzeptiert wird, denn es ist keine gültige URL.header("Location: http://www.simplevideo.de/failed.html");
Liebe Grüße -
Hallo,
Ne, das hat leider auch nicht funktioniert. Hast du vielleicht noch andere Idden.
Es kommt immer der selbe Fehler.
MfG
SimpleVideo -
Wie soll der ganze Spaß funktionieren, wenn du der Variablen
einen Wert in dieser Zeile zuweist?$text
$_POST['text'] = $text;
Das solltest du umdrehen und es sollte so aussehen:$text = $_POST['text'];
Damit keine SQL-Injections ausgeführt werden können sollte das so aussehen:$text = mysql_real_escape_string($_POST['text']);
Deine umständlichen ifs kannst du so zusammenfassen:if($anzahl != 1)//WENN: NICHT IN DER DATENBANK header('Location: failed.html'); //Weiterleitung else header('Location: success.html'); exit();
Dabei sollte dir aber auch klar sein, dass das Script nicht so funktionieren wird, da der "Abgleichcode" immer ausgeführt wird, auch wenn nur das Formular ausgegeben werden sollte…
Beitrag zuletzt geändert: 2.10.2012 20:33:25 von hackyourlife -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage