Memberlogin nicht!

escaped

Grünschnabel
hiho,

ich hab e mir dieses Tutorial angeschaut (http://www.tutorials.de/tutorials9684.html) und es nachgeschrieben wenn ich mich aber einlogge erscheint folgender Fehler:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web186/html/test/login.php on line 21

Warning: Cannot add header information - headers already sent by (output started at /home/www/web186/html/test/login.php:21) in /home/www/web186/html/test/login.php on line 36

login.php
PHP:
<?php 
// Session starten
session_start ();

// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ("localhost", "#", "#"); 
if (!mysql_select_db ("#", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sq = "SELECT ". 
    "Id, Nickname, Nachname, Vorname ". 
  "FROM ". 
    "benutzerdaten ". 
  "WHERE ". 
    "(Nickname like '".$_REQUEST["name"]."') AND ". 
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
$result = mysql_query ($sql); 

if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 

  // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_nickname"] = $data["Nickname"]; 
  $_SESSION["user_nachname"] = $data["Nachname"]; 
  $_SESSION["user_vorname"] = $data["Vorname"]; 

  header ("Location: intern.php"); 
} 
else 
{ 
  header ("Location: formular.php?fehler=1"); 
} 
?>

Was is der Fehler
Vielen Dank im vorraus!

mfg escaped

PS: bin Anfänger!
 
Der erste Fehler bedeutet, das wahrscheinlich irgendetwas mit der MySQL-Query nicht stimmt.
Vielleicht solltest du dir dafür mal eine Fehlermeldung ausgeben lassen:
PHP:
$result = mysql_query ($sql);
if (!$result) {
die (mysql_error);
}

Der zweite Fehler ist mit Sicherheit auch nur deswegen passiert, weil der erste Fehler aufgetaucht ist.
 
Der zweite Fehler ist mit Sicherheit auch nur deswegen passiert, weil der erste Fehler aufgetaucht ist.
Exakt und zwar weil die MySQL Funktion einen Fehler ausgibt. Diese Ausgabe impliziert, dass header gesendet werden, also kann PHP danach keine anderen mehr schicken.

PS: bitte in Zukunft aussagekräftigere Betreffzeilen verwenden.
 
danke erstmal! Aber damit is mein prob immer noch nicht gelöst! Erspuckt jetzt ne Fehelermeldung aus(klar!). Aber ich möchte mich gerne einloggen und nicht jedesmal ne Fehlermeldung sehen! --> Ihr müsst bedenken das ich anfäner bin!

Was muss ich ändern damit der Fehler verschwindet bzw. wodurch wird der Fehler produziert?


mfg escaped

PS: ich denk immer schneller als ich schreiben kann! sollte heißen: Memberlogin geht nicht!
 
Tja dein Query liefert halt keine gültigen result-Hanlder. Insgesamt ist deine Schreibweise für das Query, naja sagen wir mal so, etwas unüblich. Was sprich denn dagegen, das ganze in eine Zeile zu packen?

Selbst wenn da keine Fehlerausgabe wäre, würdest du den header nicht setzen können, weil das session_start() in der ersten Zeile auch schon header sendet. Zumindest dann wenn du den ÜbergabeModus der SessionID auf Cookie stehen hast.

In diesem Sinne ... Sackgasse würd ich sagen ;)
 
Exakt und zwar weil die MySQL Funktion einen Fehler ausgibt. Diese Ausgabe impliziert, dass header gesendet werden, also kann PHP danach keine anderen mehr schicken.
Genau das meinte ich.
.
Selbst wenn da keine Fehlerausgabe wäre, würdest du den header nicht setzen können, weil das session_start() in der ersten Zeile auch schon header sendet. Zumindest dann wenn du den ÜbergabeModus der SessionID auf Cookie stehen hast.
Na, bist du dir da wirklch sicher?!
Ich hab' auf meinen Seiten auch als erstes session_start() stehen, die anderen Header, die ich selbst sende, werden aber dennoch richtig gesendet!
Man kann ja wohl mehr als nur einen Header senden.
Das Einzige, wo es in deinem beschriebenen Fall wirklich Probleme gibt (hab's selbst erlebt), ist, wenn man Cookies erst nach dem session_start schreiben will.
$sq ="SELECT ". .....

und dann

$result = mysql_query ($sql);

Ist damit das Problem gelöst, oder kommt dennoch eine Fehlermeldung?
Wenn ja, solltest du die hier vielleicht mal posten.
 
Zuletzt bearbeitet:
Achso pardon, nein wenn es um sowas geht, wie er da macht ist das kein Problem. Ich hatte einmal Probleme damit, weil über die header ein Dateitransfer aus einem nicht htdocs-Verzeichnis eingeleitet wurde.
Die Dateien waren bei vorrausgegangenem session_start() stehts kaputt oder bestanden nur aus ihrem header und hatten keine Daten inne.
Also einmal Kommando zurück und ich hab nichts gesagt :rolleyes: :-)
 
Zurück