Frage von maxe0203, 63

Wo ist der fehler in der PHP datei?

Hallo Community,

ich weiß nicht wo im folgenden Quelltext der Fehler ist. Ich möchte von der PHP Datei aus auf MySQL zugreifen bzw auf eine auf MySQL liegende Datebank zugreifen. Nur es funktioniert nicht. Es soll eine Art Login werden. Hier der Quellcode:

<?php

$pw = $_POST['pw'];

$name = $_POST['name'];

$answer = $_POST['ans'];

$host="localhost";

$user="meinbenutzername";

$password=meinpasswort;

$db=mysql_connect($host, $user, $password) or die ("Verbindung fehlgeschlagen");

$dbname="derdatenbankname";

mysql_select_db($dbname, $db);

$sql = "SELECT Passwort FROM kunden WHERE benutzername ='$name'";

$result = mysql_query($sql);

$passw = mysql_result($result, 0);

if (strcmp($name, "vorname.nachname")==0 && strcmp(str_rot13($pw), "unyyb1")==0) { echo (""); }

else echo ("");

mysql_close ($db);

?>

Antwort
von mastema666, 30

Was mir so auf die schnelle auffällt: 

Das Passwort sollte in Anführungszeichen:

$password=meinpasswort; // falsch
$password = 'passwort'; // richtig

Allgemein: Die mysql_* Funktionen sollte man nicht mehr benutzen, ist veraltet und wird auch in Zukunft nicht mehr unterstützt, statt dessen besser PDO nutzen: http://www.peterkropff.de/site/php/pdo.htm

$sql = "SELECT Passwort FROM kunden WHERE benutzername ='$name'";

Nicht wirklich falsch, aber unsauber und unperformant (wenn auch minimal). 

Besser: 

$sql = "SELECT Passwort FROM kunden WHERE benutzername = '". $name ."'";

Und womit du Username / PW da vergleichst versteh ich nicht, benutzt du da feste Werte (so siehts jedenfalls aus)? Dann ist die DB Abfrage nutzlos, was du da abfragst benutz du jedenfalls ja nicht für die Prüfung ;)

Antwort
von EightSix, 33

Was soll denn passieren und was passiert stattdessen?

Kommentar von maxe0203 ,

also ich habe 1 Benutzer auf der Datenbank mit passwort. Mit dem möchte ich mich auf meiner Website im Login Bereich anmelden. Wenn ich aber Benutzername und Passwort richtig angebe, öffnet er trotzdem die ,,else-Schleife" und spuckt mir die HTML Datei aus, die aufgemacht werden soll wenn das Passowrt oder der Nutzername falsch ist.

Kommentar von EightSix ,

Es gibt in deinem Script die Variablen $pw, $passw und $password. Wer soll da noch durchblicken?

Nicht dass da jetzt der Fehler liegt, aber sie machen es sehr mühsam deinen Code zu lesen und sich überhaupt auf die Fehlersuche zu konzentrieren.

Antwort
von marc2108, 37

Kannst du die Fehlermeldung posten?

Kommentar von maxe0203 ,

Es gibt keine wirkliche, nur es funktioniert nicht

Antwort
von maximilianus7, 21

--- und du benutzt das ergebnis der datenbankabfrage ($passw) nicht.

Keine passende Antwort gefunden?

Fragen Sie die Community