Zack
cookies vader
Hallo,
ich habe mir vor kurzem ein Loginsystem mit PHP geschrieben. Die Daten nehme ich aus einer MySql-Datenbank.
Die Login.php
Zur Datenbank connecte ich am Anfang der Index-datei, ich arbeite mit sections.
Auszug der inde.php
Leider funktioniert der Scribt nicht und ich habe auch keine Ahnung woran es liegt.
So habe ich mir das gedacht:
Ich verweise mit dem Form auf die selbe Seite. Am Anfang der Seite prüfe ich die Variable $_POST['password'] und $_POST['name'] einen Wert haben.
Wenn sie keinen Wert haben springt der Scribt zum Ende und zeigt mir das Formular an.
Solten diese jedoch einen Wert besitzen,schreibt es die $_POST Variablen in $name und $password (das password wird noch md5 verschlüsselt).
Dies habe ich einfach zum besseren arbeiten mit den Variablen gemacht, hat glaube ich keiner lei Einfluss auf den Scribt.
Danach wird in der MySql tabelle "user" nach dem Namen und dem dazu gehörigen Passwort gesucht. Werden beide in der selben Spalte gefunden, gibt der query einen Wert zurückt.
Wenn der query einen Wert wieder gibt, wird "eingelog" ausgegeben.
Wenn nicht wird "pech" ausgeben.
(Dies dient zur Zeit nur als Überprüfung! Ich werde später bei Wert Zurückgabe die session füllen und dann auf eine Adminseite verweise wo am anfang die session geprüft wird. Bei keiner Wert Rückgabe wird eine Fehler meldung gezeigt.)
Das Problem:
Nachdem ich auf Login gedrückt habe überspringt er die ganze Abfrage und zeigt mir mein Form wieder an. Dies dürfte aber nicht der Fall sein, da ich $_POST['name'] und $_POST['password'] mit isset auf einen Inhalt überprüft habe. Da ein Inhalt vorhanden ist müsste das Scribt weiterarbeiten und nicht einfach zum else springen. Dies macht es aber leider (so wie es aussieht).
Die Datenbank und die Tabelle existieren.
Sieht wer einen Fehler? Kann mir wer helfen?
Danke!
mfg Ra7or
ich habe mir vor kurzem ein Loginsystem mit PHP geschrieben. Die Daten nehme ich aus einer MySql-Datenbank.
Die Login.php
PHP:
<?php
if(isset($_POST['name']) and ($_POST['password']))
{
$name = $_POST['name'];
$passwd = md5($_POST['password']);
$sql = "SELECT
COUNT(*) as Anzahl
FROM
user
WHERE
name = '$name' AND password = '$passwd';";
$result = mysql_query($sql) OR die(mysql_error());
if (implode(mysql_fetch_assoc($result)))
{
echo "<h2>eingelogt</h2>";
}
else
{
echo "<h2>pech</h2>";
};
}else{
echo "
<h2>Admin Login</h2>" .
"<center>
<form action=\"index.php?section=login\" method=\"post\">
<input type=\"text\" name=\"Name\" value=\"Name\">
<input type=\"password\" Name=\"password\" value=\"Password\">
<input type=\"submit\" name=\"login\" value=\" Einloggen \">
</form>" .
"</center>";
}
?>
Zur Datenbank connecte ich am Anfang der Index-datei, ich arbeite mit sections.
Auszug der inde.php
PHP:
<?php
error_reporting(E_ALL);
session_start();
include "inc/var.php";
include "inc/config.php";
include "inc/function.php";
// Zur MySQL connecten und DB selecten
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
mysql_select_db(MYSQL_DATABASE) OR
die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
// Session starten wenn ?section=login geöffnet wurde
if(isset($_GET['section']) AND ("login" == $_GET['section'])) {
session_start();
}
........................
?>
So habe ich mir das gedacht:
Ich verweise mit dem Form auf die selbe Seite. Am Anfang der Seite prüfe ich die Variable $_POST['password'] und $_POST['name'] einen Wert haben.
Wenn sie keinen Wert haben springt der Scribt zum Ende und zeigt mir das Formular an.
Solten diese jedoch einen Wert besitzen,schreibt es die $_POST Variablen in $name und $password (das password wird noch md5 verschlüsselt).
Dies habe ich einfach zum besseren arbeiten mit den Variablen gemacht, hat glaube ich keiner lei Einfluss auf den Scribt.
Danach wird in der MySql tabelle "user" nach dem Namen und dem dazu gehörigen Passwort gesucht. Werden beide in der selben Spalte gefunden, gibt der query einen Wert zurückt.
Wenn der query einen Wert wieder gibt, wird "eingelog" ausgegeben.
Wenn nicht wird "pech" ausgeben.
(Dies dient zur Zeit nur als Überprüfung! Ich werde später bei Wert Zurückgabe die session füllen und dann auf eine Adminseite verweise wo am anfang die session geprüft wird. Bei keiner Wert Rückgabe wird eine Fehler meldung gezeigt.)
Das Problem:
Nachdem ich auf Login gedrückt habe überspringt er die ganze Abfrage und zeigt mir mein Form wieder an. Dies dürfte aber nicht der Fall sein, da ich $_POST['name'] und $_POST['password'] mit isset auf einen Inhalt überprüft habe. Da ein Inhalt vorhanden ist müsste das Scribt weiterarbeiten und nicht einfach zum else springen. Dies macht es aber leider (so wie es aussieht).
Die Datenbank und die Tabelle existieren.
Sieht wer einen Fehler? Kann mir wer helfen?
Danke!
mfg Ra7or
Zuletzt bearbeitet: