Hallo!
Ich probier so nen bißchen mit php zur Zeit rum um es zu lernen und als weitere Programmiersprache
zu beherrschen. Einige Sachen habe ich bisher ganz gut hinbekommen doch jetzt versuch ich mal nen
Login zu programmieren und schon tauchen die ersten Probleme auf. Hab schon viel gelesen aber
leider komm ich nicht weiter. Und zwar jedesmal wenn ich mich einloggen möchte Kommt jedesmal
die Fehlermeldung "Ungültiges Passwort!". Ich habe schon erstmal Testuser in der Datenbank
angelegt deswegen kann nur nen logischer Fehler sein.
Lange rede kurzer Sinn hier mein Quelltext:
Index.php Ist meine Startseite
Code:
<?php error_reporting(E_ALL);
include "data.php";
if(isset($_GET['section']) AND ("admin" == $_GET['section'])) {
session_start();
}
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
echo " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
echo "<html>\n";
echo " <head>\n";
echo " <title>Startseite</title>\n";
echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"page1.css\" />\n";
echo " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
echo " </head>\n";
echo " <body>\n";
if(get_magic_quotes_gpc()) {
// wenn magic_quotes_gpc auf 1 steht
foreach($_POST as $key => $value) {
$_POST[$key] = stripslashes($value);
}
}
echo " <div id=\"root\">\n"; // ganz oberer Div-Holder
echo " <div id=\"logo\">\n";
echo " Der hier kommt nen Logo hin";
echo " </div>\n";
echo " <div id=\"links\">\n"; // linkes Menu
echo " [*]<a href=\"index.php?section=start\">Home</a>\n";
echo " [*]<a href=\"index.php?section=admin\">Login</a>\n";
echo " [*]<a href=\"index.php?section=gb\">Gästebuch</a>\n";
echo " </div>\n";
echo " <div id=\"mitte\">\n"; // In der Mitte der Inhalt
include "inhalt.php";
echo " </div>\n";
echo " <br style=\"clear:both;\" />\n"; // css-float beenden
echo " </div>\n";
echo " </body>\n";
echo "</html>\n";
?>
Inalt.php
Code:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here</title>
</head>
<body>
<?php
if(isset($_GET['section']) AND isset($dateien[$_GET['section']])) {
include $dateien[$_GET['section']];
} else {
include $dateien['start'];
}
?>
</body>
</html>
data.php
Code:
<?php
$dateien = array();
$dateien['gb'] = "gb.php";
$dateien['start'] = "start.html";
$dateien['admin'] = "admin.php";
?>
admin.php hier muss der Fehler sein
Code:
<?php
include "funktion.php";
include "config.php";
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
mysql_select_db("test") OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
// Hier kann man jetzt MySQL-Querys senden
if(isset($_GET['action']) AND ("logout" == $_GET['action'])) {
session_destroy();
echo "
\n";
echo " Sie haben sich ausgeloggt. Um wieder in den Adminbereich\n";
echo " zu kommen müssen sie sich wieder Einloggen\n";
echo "</p>\n";
} else {
if(isset($_POST['UserID']) AND '0' == $_POST['UserID']) {
echo "
\n";
echo " Bitte wählen sie einen Benutzernamen aus.\n";
echo "</p>\n";
} else {
if(isset($_POST['UserID'], $_POST['Password']) AND
login_right(addslashes($_POST['UserID']),
addslashes($_POST['Password']))) {
$_SESSION['ID'] = $_POST['UserID'];
}
if(isset($_SESSION['ID'])) {
echo "
\n";
echo " Willkommen im Adminbereich
\n";
echo " <a href=\"index.php?section=admin&".SID."\">Repeat</a>\n";
echo " <a href=\"index.php?section=admin&action=logout&".SID."\">Ausloggen</a>\n";
echo "</p>\n";
} else {
if(isset($_POST['submit'])) {
// Der Submit-Button wurde gedrückt
// aber der Login ist falsch. Deshalb
// erstellen wir eine Fehlermeldung
echo "<p class=\"error\">\n";
echo " Ungültiges Password.\n";
echo "</p>\n";
}
echo "<form action=\"index.php?section=admin\" method=\"post\" class=\"admin_form\">\n";
echo " <table>\n";
echo " <tr>\n";
echo " <th colspan=\"2\">\n";
echo " <h2>Adminbereich</h2>\n";
echo " </th>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td>\n";
echo " <label for=\"name\">Name:</label>\n";
echo " </td>\n";
echo " <td>\n";
$sql = "SELECT
`ID`,
`Name`
FROM
`users`
ORDER BY
`Name` ASC;";
$result = mysql_query($sql) OR die(mysql_error());
echo " <select size=\"1\" name=\"UserID\" id=\"name\">\n";
echo " <option value=\"0\" selected=\"selected\">Bitte wählen</option>\n";
while($row = mysql_fetch_assoc($result)) {
echo "<option value=\"".$row['ID']."\">".$row['Name']."</option>\n";
}
echo " </select>\n";
echo " </td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td>\n";
echo " <label for=\"password\">Password:</label>\n";
echo " </td>\n";
echo " <td>\n";
echo " <input type=\"password\" name=\"Password\" id=\"password\"/>\n";
echo " </td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td colspan=\"2\">\n";
echo " <input type=\"submit\" name=\"submit\" value=\"Abschicken\" />\n";
echo " <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
echo " </td>\n";
echo " </tr>\n";
echo " </table>\n";
echo "</form>\n";
}
}
}
?>
funktion.php
Code:
<?php
function login_right($id, $pass)
{
$sql = "SELECT
COUNT(*) as Anzahl
FROM
users
WHERE
ID = '".$id."' AND
Password = MD5('".$pass."');";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result); mysql_free_result($result);
return $row['Anzahl'];
}
?>
Die config.php ist nur für die Zugangsdaten zur Datenbank.
Achtet nicht auf Grafik und so ist nur erstmal das ich das Grundprinzip hinbekomme und
verstehe. Ich hoffe jemand sieht den Fehler oder hat soar Verbesserungsvorschläge.
Ist jemand von euch Php Programmierer? Und vorallem wie sieht es mit Php Projekten in der Praxis
aus bzw. mit welchen Projekten hat man dort zu tun? Nur damit ich mir mal nen
Bild machn kann
MFG
Lara