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 Augen rollen

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 unglücklich

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 unglücklich

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.


php:
1:
echo `ls -hal`;
… 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 wütend



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: unglücklich


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