Login funktioniert nicht, sendet weiter zu fehler

@paddz, theoretisch ist es nicht falsch die ID als UserID zu verwenden, da sie ja einmalig ist..... ich weiss allerdings nicht ob dieses evtl. ein Sicherheitsrisiko darstellt.
Daher verwende ich eine eigens erstellte UserID..... diese könnte ich jedenfalls im Falle des Falles auf einfachste Weise ändern. ;)
 
Lass mal die Weiterleitungen weg und gebe statt dessen via echo() "eingelogt" bzw. "fehler" aus..... evtl. liegt das Problem ja auch an anderer Stelle.
 
Sehr guter Tipp,
er hat jetzt eine Fehlermeldung ausgespuckt:

PHP:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\projekte\Webdesign\artweise\model\system\login.php on line 11
Es ist ein Fehler aufgetreten!

Hier nochmals Code:
PHP:
<?php  
ob_start();
// Datenbankverbindung aufbauen  
include("../config.php"); 
if (!mysql_select_db("model", $dbconnect)) {  
  die ("Keine Verbindung zur Datenbank");  
}  
$sql = "SELECT id, username, nachname, vorname, email, password FROM users WHERE username = '".$_REQUEST["username"]."'";   
$result = mysql_query ($sql);   

if (mysql_num_rows ($result) > 0)   
{   
  // Benutzerdaten in ein Array auslesen.   
    $data = mysql_fetch_array ($result);   
    if($data["password"] == md5($_REQUEST["password"])) {
        session_start();
  // Sessionvariablen erstellen und registrieren   
        $_SESSION["user_id"] = $data["id"]; 
     
        // header ("Location: ../index.php?interface"); 
				echo "Erfolgreich Eingeloggt";
    } else {
        echo "Falsches Passwort!";
    }
} else {
   // header ("Location: ../index.php?fehler=1");   
	 echo "Es ist ein Fehler aufgetreten!";
} 
ob_end_flush (); 
?>
Bemühe mich selber den fehler rauszufinden :D,
aber hilfe währe sehr gut :)
 
@DrDau
Das das ein Sicherheitsrisiko wäre glaub ich nicht, da es sich dabei nur um einen Wert in der DB handelt.
Werde trotzdem deinem Statement folgen und in Zukunft jeweils ne eigene ID verwenden.

@chille

ich weis nicht genau was
ob_start();
und
ob_end_flush ();
bedeuten sollen glaub den header versandt verzögern.

Ich hab die in meinem Script nicht verwendet (habs auch aus dem Tut) und des läuft wunderbar.

[EDIT]
obiges hat sich demnach schon als nicht richtig herausgestellt
[/EDIT]

MfG
paddz
 
ob_start
void ob_start

Startet die Verwendung eines Ausgabe-Puffers.
Dieser Puffer bewirkt, dass die Ausgabe von Script-Ausgaben unterdrückt wird und diese über eine Variable abgerufen werden können.


ob_end_flush
void ob_end_flush (void)

Gibt den puffer aus und beendet die Umleitung der Inhalte in den Puffer.


Dies ist nur da um die "Header Information have alredy sendet" zu umgehen ;)
 
Demnach dürfte entweder etwas mit der Datenbankverbindung nicht stimmen..... oder mit dem Query.

@paddz, ob_start() und ob_end_flush() sorgt dafür dass das Script erstmal abgearbeitet wird bevor irgendwas an den Browser gesendet wird..... hat aber nichts mit dem Problem zu tun (siehe Fehlermeldung).
 
ja ich kontroliere das nochmal alles,
würd mich freuen,
wenn Ihr nochmals schauen könnt.
Drehe langsam durch ^^,
die kleinsten fehler sind die schlimmste :D
 
Beim Query kann es eigentlich nur ein Schreibfehler sein..... aber dass kann ich so nicht beurteilen.
Auch die Datenbankverbindung kann ich nicht beurteilen..... kenne ja die config.php nicht.
Auf jedenfall ist der Fehler irgendwo vor:
PHP:
if (mysql_num_rows ($result) > 0)
Und da gibt es ja nicht wirklich viel. ;)
 
Dies ist die config PHP,
aber die angaben sind eigentlich korrekt
PHP:
<?php 
// Bitte ändern Sie dies
$dbserver = "localhost"; // Servername meist "localhost" oder "127.0.0.1"
$dbuser = "****"; // Username
$dbpass = "****"; // Password
$dbname = "****"; // Datenbankname

// Hier bitte nichts ändern
$dbconnect = @mysql_connect("$dbserver", "$dbuser", "$dbpass");
$dbselect = @mysql_select_db("$dbname");
?>
 
Zurück