Login-Problem. |
Yellow
Mitglied
 

Dabei seit: 07.02.2005
Beiträge: 1.931
 |
|
Hey,
Ich habe ein Login erstellt jedoch funktioniert es nicht was mich wundert weil es bei anderen Projekten genauso ohne Probleme klappt...
Fehlermeldung:
| code: |
1:
2:
3:
4:
|
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/web306/html/Lavinia/login.php on line 16
Warning: Cannot modify header information - headers already sent by (output started at /srv/www/web306/html/Lavinia/login.php:16) in /srv/www/web306/html/Lavinia/login.php on line 31 |
|
login.php
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
|
<?php
// Session starten
session_start ();
include("db.php");
$sql = "SELECT ".
"id, name".
"FROM ".
"mitglieder ".
"WHERE ".
"(name like '".$_REQUEST["name"]."') AND ".
"(passwort = '".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_name"] = $data["name"];
header("Location: index.php?section=intern");
ob_end_flush ();
}
else
{
header("Location: index.php?section=error");
ob_end_flush ();
}
?> |
|
ich hoffen ihr könnt helfen :S
lg
|
|
01.04.2009 12:58 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
 |
|
supplied argument is not a valid MySQL result resource
heißt dass deine Abfrage nicht stimmt! Nimm mal die ganzen "." raus, die bringen GAR NICHTS! Dann fällt dir auch auf, dass hinter den Spaltennamen ein Leerzeichen fehlt
__________________
|
|
01.04.2009 14:24 |
|
|
Yellow
Mitglied
 

Dabei seit: 07.02.2005
Beiträge: 1.931
Themenstarter
 |
|
Versteh jetzt nicht genau wie du das meinst? :S
|
|
01.04.2009 16:04 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
 |
|
$sql = "SELECT ".
"id, name".
"FROM ".
"mitglieder ".
"WHERE ".
"(name like '".$_REQUEST["name"]."') AND ".
"(passwort = '".md5 ($_REQUEST["pwd"])."')";
sollte so aussehen:
$sql = "SELECT id, name FROM mitglieder WHERE (name like '".$_REQUEST["name"]."') AND (passwort = '".md5 ($_REQUEST["pwd"])."')";
__________________
|
|
01.04.2009 16:07 |
|
|
Yellow
Mitglied
 

Dabei seit: 07.02.2005
Beiträge: 1.931
Themenstarter
 |
|
Ahso okay, danke, hab das jetzt gemacht, aber bleibt noch immer die gleiche fehlermeldung :S
|
|
01.04.2009 16:15 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
 |
|
ich weiß nicht wie es bei fetch_array aussehen sollte. Ersetz mal mysql_fetch_array einfach durch mysql_fetch_assoc
Den Rest gleich lassen!
__________________
|
|
01.04.2009 16:56 |
|
|
Yellow
Mitglied
 

Dabei seit: 07.02.2005
Beiträge: 1.931
Themenstarter
 |
|
kommt dann noch immer meine error mitteilung anstatt dass ich ins interne komme ...
& hab jetzt sogar noch extra einen neuen test account erstellt und klappt noch immer nicht...
|
|
01.04.2009 17:29 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
 |
|
Log dich mal in dein phpmyadmin ein und geb es dort über der Tabelle bei MYSQL ein. Da kriegst du eine genauere Fehlermeldung
SELECT id, name FROM mitglieder WHERE name='irgendwas' AND passwort = 'md5(test)'
__________________
|
|
02.04.2009 09:25 |
|
|
Yellow
Mitglied
 

Dabei seit: 07.02.2005
Beiträge: 1.931
Themenstarter
 |
|
der zeigt mir dann folgendes an:
| code: |
1:
|
MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen). ( die Abfrage dauerte 0.0003 sek. ) |
|
|
|
02.04.2009 10:03 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
 |
|
dann sollte es eigentlich auch von deinem PHP-Skript aus funktionieren.
__________________
|
|
02.04.2009 12:39 |
|
|
Yellow
Mitglied
 

Dabei seit: 07.02.2005
Beiträge: 1.931
Themenstarter
 |
|
ja aber ich bekomm aber halt immer die meldung dass pw & name nicht stimmen würden und werde nie ins internebereich weitergeleitet.
|
|
02.04.2009 12:58 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
 |
|
dann hast du es nicht korrekt geschrieben! Auch großschreiben ist bei md5 sehr wichtig!
__________________
|
|
02.04.2009 21:06 |
|
|
Yellow
Mitglied
 

Dabei seit: 07.02.2005
Beiträge: 1.931
Themenstarter
 |
|
doch hab ich, habs genau so gemacht wie vorhin in mysql...
|
|
02.04.2009 21:35 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
 |
|
dann stell mal die If-Abfrage rein
__________________
|
|
03.04.2009 09:13 |
|
|
Yellow
Mitglied
 

Dabei seit: 07.02.2005
Beiträge: 1.931
Themenstarter
 |
|
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_assoc ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["id"];
$_SESSION["user_name"] = $data["name"];
header("Location: index.php?section=intern");
ob_end_flush ();
}
else
{
header("Location: index.php?section=error");
ob_end_flush ();
} |
|
|
|
03.04.2009 10:42 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
 |
|
ach stimmt ja, du prüfst nur obs eins mit der Kombination gibt. Ich rufe immer das Passwort von dem Namen ab. Dann kann man
1) prüfen ob der User existiert
2) ob das Passwort gleich ist
__________________
|
|
04.04.2009 10:55 |
|
|
1Sm!le

Mitglied
 

Dabei seit: 05.03.2005
Beiträge: 441
Herkunft: Berlin
 |
|
| Zitat: |
Original von Yellow
der zeigt mir dann folgendes an:
| code: |
1:
|
MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen). ( die Abfrage dauerte 0.0003 sek. ) |
|
|
Das Bedeutet, mySQL meint, die Name-Passwort-Kombination existiere nicht. Dass du dann nicht in den Bereich kommst, ist nur konsequent. Dein Fehler muss also vorher passieren.
__________________
|
|
05.04.2009 00:07 |
|
|
|
Impressum
|