Hi,
also ich habe hier mal den Teil der Benutzverwaltung geschrieben, wo man sich einloggen kann. Die Datei, in der die ganzen Usernames und Passwords gespeichert werden, sieht wie folgt aus:
So, nun habe ich halt mal versucht, ein Script zu coden, welches auch auf Funktionen basiert, damit es nicht so viel Quelltext wird. Ich hoffe, jemand kann mir helfen:
Vielen Dank im Vorraus !!
Edit: Achso, vllt sollte ich noch mein Problem posten ?? Also:
Ich möchte ja, dass man sich einloggen kann. wenn ich nun auf submit drücke. Eigentlich müsste dann action=pruef ausgeführt werden, wie auch im Form Tag geschrieben, wird es aber nicht. In der URL steht dann:
admin.php?user=user&pw=pw
aber es soll doch admin?action=pruef ausgeführt werden, sodass man danach eingeloggt ist, sofern man richtige Login daten eingegeben hat. Seht Ihr da irgendwo einen Fehler im Code ??
also ich habe hier mal den Teil der Benutzverwaltung geschrieben, wo man sich einloggen kann. Die Datei, in der die ganzen Usernames und Passwords gespeichert werden, sieht wie folgt aus:
user1%%pw1
user2%%pw2
etc.
user2%%pw2
etc.
PHP-Code:
<?php
session_save_path("./sessionsave/");
session_start();
// Variables:
$pwfile="user_pw.txt";
// automatischen Admin anlegen:
if(!file_exists($pwfile)) {
$fp=fopen($pwfile, "a+");
fputs($fp, "user%%pw");
fclose($fp);
}
function logged() {
if(!$_SESSION['user'] OR !$_SESSION['pw']) {
return false;
}
else {
if(pruef($_SESSION['pw'], $_SESSION['user'])) {
return true;
}
else {
return false;
}
}
}
function showform() {
echo "<form action='admin.php?action=pruef' action='post'>";
echo "<br><br>USER: <input type='text' name='user'><br><br>";
echo "PW: <input type='text' name='pw'><br><br>";
echo "<input type='submit' value='Log-In'></form>";
}
function pruef($postpw, $postuser) {
$p_pw = strtolower(trim($postpw));
$p_user=strtolower(trim($postuser));
if(!$p_pw) { $f = "<br>Kein Passwort angegeben<br>"; }
if(!$p_user) { $f.= "<br>Keinen Username angegeben<br>"; }
if($f) { echo "<center><br>".$f."</center>"; }
else {
$data=file($pwfile);
foreach ($data as $temp) {
$e=explode("%%", $temp);
if ($p_pw==$e[1] AND $p_user=$e[0]) {
$_SESSION['user']=$e[0];
$_SESSION['pw']=$e[1];
return true;
}
}
}
if(!$_SESSION['user'] OR !$_SESSION['pw']) {
return false;
}
}
function logout() {
foreach($_SESSION as $temp) {
unset($temp);
$temp=array();
}
session_destroy();
}
// AUSGABE:
if($_GET["action"]=="pruef") {
pruef($_POST['user'], $_POST['user']);
echo "<meta HTTP-EQUIV=Refresh content='0, URL=".$PHP_SELF."'>";
}
else {
if (logged()) {
echo "Eingeloggt";
}
else {
showform();
}
}
Edit: Achso, vllt sollte ich noch mein Problem posten ?? Also:
Ich möchte ja, dass man sich einloggen kann. wenn ich nun auf submit drücke. Eigentlich müsste dann action=pruef ausgeführt werden, wie auch im Form Tag geschrieben, wird es aber nicht. In der URL steht dann:
admin.php?user=user&pw=pw
aber es soll doch admin?action=pruef ausgeführt werden, sodass man danach eingeloggt ist, sofern man richtige Login daten eingegeben hat. Seht Ihr da irgendwo einen Fehler im Code ??
Kommentar