Fragen zur Struktur - if-Abfrage wird nicht ausgeführt

shutdown

Erfahrenes Mitglied
Hi!

ich habe ein Problem mit folgendem Skript.
Ich finde einfach keinen Fehler in Syntax - es wird auch gar keiner gemeldet. Trotzdem erkennt er mir die If-Abfrage zur Passwort-Überprüfung nicht an und führt sie auch nicht aus.

In meinem Editor wird sie auch nicht ge-highlighted, sondern erst wenn ich die Datenbank-Abfrage ($password=(daten->password); ) weglasse. (Was ich aber nicht vorhabe, da ich das Passwort - und auch andere Daten, die ich jetzt ausgeschnitten habe, brauche).

Gibt es da noch irgendeine Regel, die mir noch nicht bekannt ist im Zusammenhang mit if-Abfragen, weshalb er mir diese if-Abfrage anscheinend garnich parsed?

Für eure Hilfe schon mal besten Dank

cu shutdown

P.S.: Seltsamerweise wird die If-Abfrage hier durch das Forum farblich richtig dargestellt - aber wie gesagt, die Passwort-Abfrage wird momentan überhaupt nicht ausgeführt.


PHP:
<?php

    session_start();
    if(!isset($_SESSION['username']))
    {
        $_SESSION['username']=$_POST['login'];
    }


    $conn = mysql_connect("gibts", "gibtsauch", "sowieso");
    if(!$conn)
    {
        echo "Verbindung zur Datenbank fehlgeschlagen.";
    }
    else
    {
        mysql_select_db("user");
    }
    $login=$_POST['login'];
    $daten = "SELECT * FROM `table` where `username`='$login'";
    $auslesen_daten = mysql_query($daten) or die("Error: " . mysql_error());
    $daten = mysql_fetch_object($auslesen_daten);

    $password = ($daten->password);

    if($password==md5($_POST[password]))
    {
        $logged_in=1;
    }


var_dump($_SESSION);
?>
 
$_POST[password] solltest du so schreiben $_POST['password'].

Ansnten mach vo dem If hatl mal var_dump($password); var_dump(md5($_POST['password']));
 
habs jetzt so abgeändert:

PHP:
var_dump($password);
var_dump(md5($_POST['password']));

    if($password==md5($_POST['password']))
    {
        $logged_in=1;
    }

hat allerdings keinerlei Auswirkungen - $password und $_POST['password'] sind gesetzt, er führt aber die vergleichende if-Abfrage nicht aus.
 
seltsam, seltsam

wenn ich vor der if-Abfrage den PHP Bereich schließe und gleich wieder öffne

?>
<?php

if....


dann funktionierts.

Kanns mir jetzt aber nicht wirklich erklären, warum :(
 
Wie überprüfst du denn ob er ins IF reinläuft?
Gibst du dir nach dem if die Variable logged_in aus?

DAs mit dem var_dump war nur dazu geacht um zu sehen ob die Werte gleich sind oder nicht. Das das am Ablauf nix ändert war klar. Nur so sieht man wenigstens mal warum der Vergleich nicht klappt.
Welche Werte gibts denn für die beiden var_dumps ?
 
Wie überprüfst du denn ob er ins IF reinläuft?
Ganz einfach: Ich rufe danach eine Aktion auf unter der Voraussetzung:

if($logged_in=="1"){echo 'ganz viel html';}

Da er mir aber egal ob, das Passwort stimmte, immer den Inhalt ausgab, konnte er die Abfrage nicht durchgegangen sein (wie gesagt - jetzt mit ?><?php funktionierts)

die var_dumps() geben für beide Variablen Hash-Werte aus - $passwort aus der Datenbank und md5($_POST['password'] die Eingabe ins Formular

naja -solange es funktioniert :-)
 
Zurück