|
 |
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
 |
|
Hey,
ich habe ein kleines Problem mit meinem Login: Wenn ich mich einlogge, werde ich ja logischerweise auf die Seite "login_action.php" weitergeleitet, von wo ich dann in den LogIn-Bereich geleitet werde. Auf der Seite kommt allerdings diese Fehlermeldung:
Zitat: |
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in /users/zsavenue/www/Login/login_action.php on line 18 |
Wenn ich aber auf "Weiterleiten" klicke, komme ich auf die nächste Seite, so wie's sein soll.
Der Code sieht momentan so aus [& stammt aus dem Login-TuT hier bei GB]:
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:
35:
36:
37:
|
<?php
session_start();
include("datenbank.php");
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
if(!empty($_POST["username"]) && !empty($_POST["password"]))
{
$username = $_POST["username"];
$password = $_POST["password"];
$abfrage = mysql_query("SELECT Name, Passwort FROM Turnierrieter WHERE name = '$username' LIMIT 1");
$daten = mysql_fetch_array("$abfrage");
if($daten[passw] == $passwort)
{
$_SESSION["name"] = $username;
echo "Login erfolgreich! <br> <b><a href="http://zsavenue.square7.ch/Login/checkuser.php" target="_self">Weiterleitung</a></b>";
}
else
{
echo "Benutzername und/oder Passwort waren falsch. <br><a href="login.php">Login</a>";
}
}
else
{
echo "Bitte fülle alle Felder aus! <br><a href="login.php">Zurück</a>";
}
?>
</body>
</html> |
|
zum ausprobieren:
klick
Benutzername: Admin
Passwort: Admin
Ich hoffe, dass mir jemand helfen kann (:
LG
__________________
|
|
14.10.2010 22:56 |
|
|
kext
»Ich bin ein HAL 9000 Supercomputer.«
 

Dabei seit: 28.11.2008
Beiträge: 119
Herkunft: Planet Erde
 |
|
Und es heißt auch nicht $daten[passw] sondern $daten['Passwort'], wenn deine Query denn richtig ist.
Ansonsten ist die Query falsch, weil die Feldernamen falsch geschrieben sind. Außerdem schreibt man Feldernamen in Backticks (`).
__________________

|
|
14.10.2010 23:02 |
|
|
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
Themenstarter
 |
|
Vroni, danke, nun wird keine Fehlermeldung mehr angezeigt
Was nun allerdings noch bleibt: Wenn ich mich jetzt mit den im Starpost angegebenen Daten einloggen möchte, erscheint die Meldung, dass Benutzername bzw. Passwort fehlerhaft seien. Dabei bin ich mir hunderpro sicher, dass ich keine Rechtschreibfehler gemacht habe bei der Eingabe des Benutzernamens und Passwort...
__________________
|
|
14.10.2010 23:26 |
|
|
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
Themenstarter
 |
|
nein, daran liegt's nicht :/ habs grad ausgebessert, dennoch, das Problem bleibt...
__________________
|
|
14.10.2010 23:35 |
|
|
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
Themenstarter
 |
|
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:
35:
36:
37:
|
<?php
session_start();
include("datenbank.php");
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
if(!empty($_POST["username"]) && !empty($_POST["password"]))
{
$username = $_POST["username"];
$passwort = $_POST["password"];
$abfrage = mysql_query("SELECT 'name' , 'passw' FROM turnierreiter WHERE 'name' = '$username' LIMIT 1");
$daten = mysql_fetch_array ($abfrage);
if($daten['passw'] == $passwort)
{
$_SESSION['name'] = $username;
echo "Login erfolgreich! <br> <b><a href="http://zsavenue.square7.ch/Login/checkuser.php" target="_self">Weiterleitung</a></b>";
}
else
{
echo "Benutzername und/oder Passwort waren falsch. <br><a href="login.php">Login</a>";
}
}
else
{
echo "Bitte fülle alle Felder aus! <br><a href="login.php">Zurück</a>";
}
?>
</body>
</html> |
|
__________________
|
|
14.10.2010 23:42 |
|
|
 |
Oli
Server-Administrator
    
Dabei seit: 13.06.2010
Beiträge: 1.540
 |
|
Hi,
in MySQL gehören Feldnamen in sogenannte Backticks:
´ oder ` - nicht ' oder "
Die von dir verwendeten einfachen Anführungszeichen stellen Text dar.
Somit rufst du bei dieser Abfrage ...
code: |
1:
|
SELECT 'name' , 'passw' FROM turnierreiter WHERE 'name' = '$username' LIMIT 1 |
|
... einen Datensatz ab, bei dem der Text 'name', der selbe Text ist, wie das, was in $username steht.
Du vergleichst also nicht, wie du es wohl vor hattest, $username mit dem Feld `name`. Außerdem vermute ich, dass dir MySQL auch nicht die Felder `name` und `passw` zurückgibt, sondern eben die Texte, da auch hier die falschen Zeichen sind.
LG
|
|
15.10.2010 10:44 |
|
|
 |
kext
»Ich bin ein HAL 9000 Supercomputer.«
 

Dabei seit: 28.11.2008
Beiträge: 119
Herkunft: Planet Erde
 |
|
` - nicht ´ oder ' oder "
Auf der deutschen Tastatur erzeugt man immer zwei davon auf einmal, wenn man mit gedrückt gehaltener Shift-Taste zweimal die Akzenttaste drückt.
__________________

|
|
15.10.2010 11:08 |
|
|
 |
Oli
Server-Administrator
    
Dabei seit: 13.06.2010
Beiträge: 1.540
 |
|
Zitat: |
Original von kext
` - nicht ´ oder ' oder "
Auf der deutschen Tastatur erzeugt man immer zwei davon auf einmal, wenn man mit gedrückt gehaltener Shift-Taste zweimal die Akzenttaste drückt. |
Danke fürs Korrigieren, du hast natürlich Recht, es funktioniert wirklich nur mit ` . Das Andere wäre auch gar kein Backtick gewesen...
Was das Eingeben anbelangt, ich glaube mich zu erinnern, dass man die Taste einmal betätigen und dann die Leertaste drücken kann, um nur eines dieser Zeichen zu erzeugen. Kann das leider nicht testen, arbeite unter Linux, welches (bei meiner Konfiguration) ohnehin immer nur eines eingibt.
@Raindrops:
Du musst:
- wenn es sich um Feldnamen (Spalten der Datenbanktabelle) handelt, Backticks ` verwenden
- wenn es sich um Feldwerte (Inhalt) handelt, einfache Anführungszeichen ' verwenden
Außerdem sollte man auch den Tabellennamen in Backticks schreiben. Der Query sieht korrekt also so aus:
code: |
1:
|
SELECT `name` , `passw` FROM `turnierreiter` WHERE `name` = '$username' LIMIT 1 |
|
|
|
15.10.2010 11:38 |
|
|
Kuhmuhphu

Probiers mal mit Gemütlichkeit
 
Dabei seit: 20.12.2009
Beiträge: 3.168
Herkunft: Hinter den 7 Bergen..
 |
|
heißen deine tabellenfelder wirklich name und passw?
Und heißt deine erste interne Seite checkuser?
Denn checkuser sollst du includen aber nich auf die seite direkt weiter leiten
|
|
14.10.2010 23:58 |
|
|
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
Themenstarter
 |
|
die Tabellenfelder heißen name & passw
oh nein, meine erste interne Seite heißt Start.html also muss ich den checkuser.php in login_action.php includen oder auf der Start.html Seite?
__________________
|
|
15.10.2010 00:12 |
|
|
Kuhmuhphu

Probiers mal mit Gemütlichkeit
 
Dabei seit: 20.12.2009
Beiträge: 3.168
Herkunft: Hinter den 7 Bergen..
 |
|
auf der start.html
wobei nenn sie mal lieber statt html php
gleich oben vor dem <html> includen
|
|
15.10.2010 00:18 |
|
|
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
Themenstarter
 |
|
okay, hab's jetzt in Start.php umbenannt & auch direkt includet...das ursprüngliche Problem behebt das allerdings nicht =/
__________________
|
|
15.10.2010 00:21 |
|
|
Kuhmuhphu

Probiers mal mit Gemütlichkeit
 
Dabei seit: 20.12.2009
Beiträge: 3.168
Herkunft: Hinter den 7 Bergen..
 |
|
davon ging ich auch nich aus xDD
Habs nur eben bemerkt
|
|
15.10.2010 00:23 |
|
|
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
Themenstarter
 |
|
achsu
__________________
|
|
15.10.2010 00:23 |
|
|
Kuhmuhphu

Probiers mal mit Gemütlichkeit
 
Dabei seit: 20.12.2009
Beiträge: 3.168
Herkunft: Hinter den 7 Bergen..
 |
|
ok..
php: |
1:
|
if($daten['passw'] == $passwort) |
|
änder hier mal das t zu einem d
|
|
15.10.2010 00:26 |
|
|
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
Themenstarter
 |
|
hab mir das jetzt mal mit echo ausgeben lassen. Wenn ich mich jetzt einlogge, sieht das so aus:
Zitat: |
Der Username ist korrekt
Das Passwort ist korrekt
Benutzername und/oder Passwort waren falsch.
Login |
__________________
|
|
15.10.2010 09:57 |
|
|
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
Themenstarter
 |
|
Muss ich jetzt überall wo " oder ' sind die austauschen oder wie wie jetz?
__________________
|
|
15.10.2010 11:23 |
|
|
Raindrops
Sie ist ein starkes Mädchen.
 

Dabei seit: 08.09.2007
Beiträge: 6.211
Themenstarter
 |
|
ahh, danke nun klappt es
__________________
|
|
15.10.2010 11:59 |
|
|
|
 |
Impressum
|
|