Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Fehler in login_action.php (https://www.gegen-bilderklau.net/thread.php?threadid=177395)
Geschrieben von BabyHanah am 28.11.2010 um 11:42:
Fehler in login_action.php
Hallo
Die Fehlermeldung:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /users/ponyhofivanhoe/www/login_action.php on line 18
Benutzername und/oder Passwort waren falsch.
Login
Sie kommt immer, wenn ich mich einloggen möchte
Das ist mein Code:
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:
38:
39:
|
<?php
session_start();
include("datenverbindung");
?>
<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 mitglieder WHERE name = '$username' LIMIT 1");
$daten = mysql_fetch_array($abfrage);
if($daten[passw] == $passwort)
{
$_SESSION["name"] = $username;
echo "Login erfolgreich! <br> <b><a href="intern.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>
|
|
Geschrieben von kext am 28.11.2010 um 12:11:
Deine SQL-Abfrage schlägt fehl. Mit echo mysql_error(); kannst du mehr herausfinden.
Deine Abfrage ist sehr unsicher und ermöglicht nicht angemeldeten Dritten deine Datenbank zu löschen. Außerdem kommen Feld- und Tabellennamen in Backticks (`). Probier mal:
php: |
1:
|
$abfrage = mysql_query("SELECT `name`, `passw` FROM `mitglieder` WHERE `name` = '".mysql_real_escape_string($username)."' LIMIT 1"); |
|
Geschrieben von BabyHanah am 28.11.2010 um 12:39:
Jetzt kommt das
Zitat: |
Warning: shell_exec() has been disabled for security reasons in /users/ponyhofivanhoe/www/login_action.php on line 11
|
Geschrieben von kext am 28.11.2010 um 13:50:
Dann sind die Backticks nicht im String. Poste mal bitte den kompletten Code mit allen Zeilen. Du hast vermutlich irgendwo falsche Anführungszeichen gesetzt.
… ist auch gültiger PHP-Code und gibt unter UNIX mit deaktiviertem Save-Mode den Verzeichnisinhalt aus.
Geschrieben von BabyHanah am 28.11.2010 um 14:04:
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:
38:
39:
|
<?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 `mitglieder` WHERE `name` = '".mysql_real_escape_string($username)."' LIMIT 1");
$daten = mysql_fetch_array($abfrage);
if($daten[passw] == $passwort)
{
$_SESSION[`name`] = $username;
echo "Login erfolgreich! <br> <b><a href="intern.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>
|
|
Geschrieben von kext am 28.11.2010 um 14:52:
Da
php: |
1:
2:
3:
4:
5:
|
if(!empty($_POST[`username`]) && !empty($_POST[`password`]))
{
$username = $_POST[`username`];
$passwort = $_POST[`password`]; |
|
gehören KEINE Backticks hin. Das sind Stringschlüssel, also kommen sie in ganz normale Anführungszeichen oder einfach weglassen als schlechte Alternative.
php: |
1:
2:
3:
4:
5:
|
if(!empty($_POST["username"]) && !empty($_POST["password"]))
{
$username = $_POST["username"];
$passwort = $_POST["password"]; |
|
Geschrieben von BabyHanah am 28.11.2010 um 15:21:
Wo sollen diese Backticks denn sonst hin? egal wo cih sie hinsetzte, es kommt dauernd eine Fehlermeldung
Geschrieben von kext am 28.11.2010 um 16:30:
NUR in die SQL-Abfragen, die mit mysql_query() durchgeführt werden, für Spalten und Tabellennamen, also da wo ich sie in meinem obigen Post hingesetzt habe. Nirgendwo sonst kommen Backticks hin.
php: |
1:
2:
|
$abfrage = mysql_query("SELECT `name`, `passw` FROM `mitglieder` WHERE `name` = '".mysql_real_escape_string($username)."' LIMIT 1");
// Hier: ^ ^ ^ ^ ^ ^ ^ ^ |
|
Geschrieben von BabyHanah am 28.11.2010 um 16:55:
Da sind die ja da. Aber es kommt immernoch diese Blöde Fehlermeldungen:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /users/ponyhofivanhoe/www/login_action.php on line 18
Benutzername und/oder Passwort waren falsch.
Login
Immernoch der Code:
code: |
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:
38:
39:
40:
|
<?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 `mitglieder` WHERE `name` = '".mysql_real_escape_string($username)."' LIMIT 1");
$daten = mysql_fetch_array($abfrage);
if($daten[passw] == $passwort)
{
$_SESSION[name] = $username;
echo "Login erfolgreich! <br> <b><a href="intern.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>
|
|
Geschrieben von kext am 28.11.2010 um 17:27:
Zitat: |
Original von kext
Deine SQL-Abfrage schlägt fehl. Mit echo mysql_error(); kannst du mehr herausfinden. |
php: |
1:
2:
3:
|
$abfrage = mysql_query("SELECT `name`, `passw` FROM `mitglieder` WHERE `name` = '".mysql_real_escape_string($username)."' LIMIT 1");
if (!$abfrage) echo mysql_error();
$daten = mysql_fetch_array($abfrage); |
|
Geschrieben von BabyHanah am 28.11.2010 um 17:32:
Jetzt kommt das:
Bitte fülle alle Felder aus!
obwohl ich alles eingegeben habe
Bei diesem Code
code: |
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:
38:
39:
40:
41:
|
<?php
session_start();
include("datenbank.php");
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
if(!empty($_POST["name"]) && !empty($_POST["password"]))
{
$username = $_POST["name"];
$passwort = $_POST["password"];
$abfrage = mysql_query("SELECT `name`, `passw` FROM `mitglieder` WHERE `name` = '".mysql_real_escape_string($name)."' LIMIT 1");
if (!$abfrage) echo mysql_error();
$daten = mysql_fetch_array($abfrage);
if($daten[passw] == $passwort)
{
$_SESSION[name] = $name;
echo "Login erfolgreich! <br> <b><a href="intern.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>
|
|
Forensoftware: Burning Board, entwickelt von WoltLab GmbH