Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Brauche dringend Hilfe bei Login.php
Frage
Hallo allerseits,
ich versuche grade einen Login mithilfe von SQL zu erstellen. Dazu habe ich vier Dateien.
1. Die eigentliche Login-Datei, welche in der Datenbank Nutzer und Passwort ausliest
2. Eine Datei mit Inhalt ausschließlich für eingeloggte, in die ich per include eine weitere Datei einfüge, welche kontrolliert, ob man auch wirklich eingeloggt ist.
4. Die Logout-Datei
Ich erhalte nun leider eine Fehlermeldung in der login.php. Hier ist mal der Code:
[code]session_start ();
$connectionid = mysql_connect ("localhost", "Benutzername", "Passwort");
if (!mysql_select_db ("Datenbank", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"id, username, nachname, vorname ".
"FROM ".
"test_users".
"WHERE ".
"(username like '".$_REQUEST["name"]."') AND ".
"(passwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
$data = mysql_fetch_array ($result);
$_SESSION["user_id"] = $data["id"];
$_SESSION["user_nickname"] = $data["username"];
$_SESSION["user_nachname"] = $data["nachname"];
$_SESSION["user_vorname"] = $data["vorname"];
header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
} [/code]
Wenn ich nun die login.php aufrufe, dann zeigt er das Formular zwar an, jedoch kommt nach Eingabe des Benutzernamens und Passworts folgende Fehlermeldung:
[quote]Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/mein/verzeichnis/zur/login.php on line 11
Warning: Cannot modify header information - headers already sent by (output started at /www/mein/verzeichnis/zur/login.php:11) in /www/mein/verzeichnis/zur/login.php on line 20[/quote]
Was mache ich falsch?
Danke für jede Antwort!
Gruß,
Üsch
Antwort 1 von rabies
Hallo,
Der Fehler wird, so denke ich, an
Das die zweite Fehlermeldung mit dem Header kommt, wird wahrscheinlich daran liegen, dass vorher schon die Fehlermeldung mit SQL-Statement kam. Eine Ausgabe sehe ich dort ja soweit nicht?!
--rabies.
Der Fehler wird, so denke ich, an
"test_users".
liegen. Hier fehlt denke ich ein Leerzeichen nach 'test_users'. Somit würde das im SQL-Statement so aussehen: '... FROM test_usersWHERE ...
'. Das die zweite Fehlermeldung mit dem Header kommt, wird wahrscheinlich daran liegen, dass vorher schon die Fehlermeldung mit SQL-Statement kam. Eine Ausgabe sehe ich dort ja soweit nicht?!
--rabies.
Antwort 2 von Uesch
Sorry, aber verstehe ich nicht ganz. Meinst du jetzt so:
??
Weil bei dir ist ja nach test_users grade KEIN Leerzeichen, oder?
Kannst du vll mal den kompletten Code so wie ich oben posten so wie du denkst, dass er richtig ist?
Danke!
Gruß,
Üsch
Zitat:
$sql = "SELECT ".
"id, username, nachname, vorname ".
"FROM ".
"test_users". "WHERE ".
"(username like '".$_REQUEST["name"]."') AND ".
$sql = "SELECT ".
"id, username, nachname, vorname ".
"FROM ".
"test_users". "WHERE ".
"(username like '".$_REQUEST["name"]."') AND ".
??
Weil bei dir ist ja nach test_users grade KEIN Leerzeichen, oder?
Kannst du vll mal den kompletten Code so wie ich oben posten so wie du denkst, dass er richtig ist?
Danke!
Gruß,
Üsch
Antwort 3 von Uesch
Stand wohl auf dem Schlauch, sorry, hab das jetzt hinbekommen, es kommt keine Fehlermeldung, nur leider sagt mir die formular.php, in welcher übrigens folgendes steht:
Hier ist nochmal der Code von login.php
Woran könnte es liegen, dass er immer sagt, dass Benutzer und Passwort falsch sind?
Zitat:
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
, dass die Zugangsdaten immer falsch sind, auch wenn ich die richtigen Daten eingebe.if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
Hier ist nochmal der Code von login.php
Woran könnte es liegen, dass er immer sagt, dass Benutzer und Passwort falsch sind?
Zitat:
$sql = "SELECT ".
"id, username, nachname, vorname ".
"FROM ".
"test_users ". "WHERE ".
"(username like '".$_REQUEST["name"]."') AND ".
"(passwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
$data = mysql_fetch_array ($result);
$_SESSION["user_id"] = $data["id"];
$_SESSION["user_nickname"] = $data["username"];
$_SESSION["user_nachname"] = $data["nachname"];
$_SESSION["user_vorname"] = $data["vorname"];
header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
}
$sql = "SELECT ".
"id, username, nachname, vorname ".
"FROM ".
"test_users ". "WHERE ".
"(username like '".$_REQUEST["name"]."') AND ".
"(passwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
$data = mysql_fetch_array ($result);
$_SESSION["user_id"] = $data["id"];
$_SESSION["user_nickname"] = $data["username"];
$_SESSION["user_nachname"] = $data["nachname"];
$_SESSION["user_vorname"] = $data["vorname"];
header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
}
Antwort 4 von disco
moin
bekommst du denn auch ein result zurück?
gib mal das $data array aus und schau, ob da überhaupt was drin steht.
so wie du es beschreibst ist diese bedingung nämlich nicht wahr:
g,
disco
bekommst du denn auch ein result zurück?
gib mal das $data array aus und schau, ob da überhaupt was drin steht.
so wie du es beschreibst ist diese bedingung nämlich nicht wahr:
if (mysql_num_rows ($result) > 0)
g,
disco
Antwort 5 von Uesch
Also wenn ich einfach mit echo "$data" mache passiert gar nix.
Ein result bekomme ich auch nicht zurück. Es passiert nix außer, dass da steht, dass die Daten falsch sind...
wieso ist die Bedingung
Ein result bekomme ich auch nicht zurück. Es passiert nix außer, dass da steht, dass die Daten falsch sind...
wieso ist die Bedingung
Zitat:
if (mysql_num_rows ($result) > 0)
nicht wahr?if (mysql_num_rows ($result) > 0)
Antwort 6 von rabies
Versuch mal
--rabies.
print_r($data)
anstatt echo $data
--rabies.
Antwort 7 von rebel
mein sound geht nicht mehr es kommt kein ton biite helfen biteeeeeeeeeeee!!!!!!!!!!!!
Antwort 8 von Uesch
Danke rabies.
Habe grade extrem lange rumprobiert und dann folgendes versucht:
Ich weiß zwar nicht warum, aber es funktioniert einwandfrei...
Gruß,
Üsch
Habe grade extrem lange rumprobiert und dann folgendes versucht:
Zitat:
$sql = "SELECT
username, passwort, id, vorname, nachname
FROM
test_users
WHERE
username = '".$name."' AND passwort = '".md5 ($pwd)."'";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
$sql = "SELECT
username, passwort, id, vorname, nachname
FROM
test_users
WHERE
username = '".$name."' AND passwort = '".md5 ($pwd)."'";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
Ich weiß zwar nicht warum, aber es funktioniert einwandfrei...
Gruß,
Üsch
Antwort 9 von hhahf
ej üsch hilf mir bitte weisst du warum kein ton mehr kommt seit ich den computer formatiesiert habe???
Antwort 10 von harrrharrr
@hhahf
nach
Solltest du aber neu installiert haben, musst du den Treiber für die Soundkarte noch installieren.
Gruß
harrr
nach
Zitat:
formatiesiert
gibts kein Ton mehr, das ist normal, weil nach dem formatieren "nichts" mehr auf der Festplatte ist.formatiesiert
Solltest du aber neu installiert haben, musst du den Treiber für die Soundkarte noch installieren.
Gruß
harrr
Antwort 11 von hhaf
wie kann ich das installieren ?? hab keine ahnung von Pc sry??
Antwort 12 von harrrharrr
@hhaf
Stell doch eine eigene, neue Anfrage mit Angaben zu deinem PC, sprich motherboard, soundkarte usw. dann will ich dir gerne weiterhelfen.
Gruß
harrr
Stell doch eine eigene, neue Anfrage mit Angaben zu deinem PC, sprich motherboard, soundkarte usw. dann will ich dir gerne weiterhelfen.
Gruß
harrr
Antwort 13 von hafa
kannst du mir nicht deine e mail adresse geben MSN ??
Antwort 14 von harrrharrr
Zitat:
kannst du mir nicht deine e mail adresse geben MSN ??
kannst du mir nicht deine e mail adresse geben MSN ??
du kannst mir deine über den Pager geben, dann melde ich mich bei dir.
Gruß
harrr
Antwort 15 von hafa
alba_ag@hotmail.com
Antwort 16 von rabies
Ist es jetzt für manche User mitlerweile zu schwer, einen eigenen Thread aufzumachen? Hier rein gehörte das echt nicht...
SCNR,
--rabies.
SCNR,
--rabies.