Supportnet Computer
Planet of Tech

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
"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:
Zitat:
$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:
Zitat:
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
, dass die Zugangsdaten immer falsch sind, auch wenn ich die richtigen Daten eingebe.

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");
}


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:
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
Zitat:
if (mysql_num_rows ($result) > 0)
nicht wahr?

Antwort 6 von rabies

Versuch mal
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:

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)
{


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
Zitat:
formatiesiert
gibts kein Ton mehr, das ist normal, weil nach dem formatieren "nichts" mehr auf der Festplatte ist.

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

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 ??

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.