Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] Logowanie na plikach
#1
Witam, usiłuję napisać prosty skrypt do logowania na stronę. Cały czas gdzieś jednak popełniam błąd i cały "system" nie chce działać, proszę o sprawdzenie.
- login.php - procedura logowania
- form.php - formularz logowania
- main.php - strona dostępna po zalogowaniu
- logout.php - procedura wylogowania
- passwords.txt - plik przechowujący dane logowania

login.php

<?php
function checkPass($user, $pass)
{
if(!$fd = fopen("passwords.txt", "r")) return 1;
$result = 2;
while (!feof ($fd)){
$line = trim(fgets($fd));
$arr = explode(":", $line);
if(count($arr) < 2) continue;

if($arr[0] != $user) continue;

if($arr[1] == $pass){
$result = 0;
}
break;
}
fclose($fd);
return $result;
}

session_start();
if(isset($_SESSION['zalogowany'])){
header("Location: main.php");
}
else if(!isset($_POST["haslo"]) || !isset($_POST["user"])){
$_SESSION['komunikat'] = "Wprowadź nazwę i hasło użytkownika.";
include('form.php');
}
else{
$val = checkPass($_POST["user"], $_POST["haslo"]);
if($val == 0){
$_SESSION['zalogowany'] = $_POST["user"];
header("Location: main.php");
}
else if($val == 1){
$_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
include('form.php');
}
else{
$_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
include('form.php');
}
}
?>

form.php

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Logowanie</title>
</head>
<body>
<div>
<div style="font-size:16pt">
<?php
if(isset($_SESSION['komunikat']))
echo $_SESSION['komunikat'];
else
echo "Wprowadź nazwę i hasło użytkownika.";
?>
</div>
<form action = "login.php" methood = "POST">
<table>
<tr>
<td>Użytkownik:</td>
<td>
<input type="text" name="user">
</td>
</tr>
<tr>
<td>Hasło:</td>
<td>
<input type="password" name="haslo">
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">
<input type="submit" value="Zaloguj">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>

main.php

<?php
session_start();
if(!isset($_SESSION['zalogowany'])){
$_SESSION['komunikat'] = "Nie jesteś zalogowany!";
include('form.php');
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Lista plików</title>
</head>
<body>
Jesteś zalogowany jako: <?php echo $_SESSION['zalogowany'] ?>
<br />
<a href="logout.php">Wyloguj</a>
</body>
</html>

logout.php

<?php
session_start();
if(!isset($_SESSION['zalogowany'])){
$komunikat = "Nie jesteś zalogowany!";
}
else{
unset($_SESSION['zalogowany']);
$komunikat = "Wylogowanie prawidłowe!";
}
session_destroy();
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Wylogowanie</title>
</head>
<body>
<?php echo $komunikat ?>
</body>
</html>

passwords.txt

admin:qwerty
Odpowiedz
#2
Hej.
Wydaje mi się, że chodzi o Czeski błąd w pliku form, a mianowicie w linijce:
Cytat:<form action = "login.php" methood = "POST">
masz zapisane "method" przez dwa o. I z automatu wysyła Ci dane przez GET a nie przez POST.
Pozdrawiam.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Logowanie STEAM YoutuberAidis 2 3,566 09-06-2017, 16:11
Ostatni post: martasmith
  Problem z kodem obsługującym logowanie 24soft 2 3,345 09-03-2012, 18:31
Ostatni post: 24soft
  Logowanie facebook + dodatkowy formularz na stronie dawidirzyk 5 5,257 09-10-2011, 16:38
Ostatni post: hieroshima
  Auto Logowanie. jani1992 3 3,839 02-10-2011, 05:00
Ostatni post: Flake
  Logowanie i rejestracja - includowanie toma5z 3 4,351 22-06-2011, 03:03
Ostatni post: mateo

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl