firstlord18
Erfahrenes Mitglied
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:
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:
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:user1%%pw1
user2%%pw2
etc.
PHP:
<?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' method='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['pw'], $_POST['user']);
echo "<meta HTTP-EQUIV=Refresh content='0, URL=".$PHP_SELF."'>";
}
else {
if (logged()) {
echo "Eingeloggt";
}
else {
showform();
}
}
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