witam
mam skrypt logowania. jaki jest taki jest. działa wszystko poza tym kiedy login i haslo jest poprawne i powinno przenieść na inną stonę i wyświtlic że jest sie zalogowanym jako. sprawdza login i hasło oraz przenosi na podaną podstronę ale wyświetla że jest się nie zalogowanym. wklejam skrypt:
<?php
require_once 'user.class.php'; // Dołączamy rdzeń systemu użytkowników
// Zabezpiecz zmienne odebrane z formularza, przed atakami SQL Injection
$login = htmlspecialchars(mysql_real_escape_string($_POST['login']));
$pass = mysql_real_escape_string($_POST['pass']);
if ($_POST['send'] == 1) {
// Sprawdź, czy wszystkie pola zostały uzupełnione
if (!$login or empty($login)) {
die ('<p class="error">Wypełnij pole z loginem!</p>');
}
if (!$pass or empty($pass)) {
die ('<p class="error">Wypełnij pole z hasłem!</p>');
}
$pass = user::passSalter($pass); // Posól i zahashuj hasło
// Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
$userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE login = '$login' AND haslo = '$pass'"));
if ($userExists[0] == 0) {
// Użytkownik nie istnieje w bazie
echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
}
else {
// Użytkownik istnieje
$user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user
// Przypisz pobrane dane do sesji
$_SESSION['login'] = $login;
$_SESSION['pass'] = $pass;
echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
}
}
else {
/**
* FORMULARZ LOGOWANIA
*/
?>
<form method="post" action="index.php">
<label for="login">Login:</label>
<input type="text" name="login" maxlength="32" id="login" />
<label for="pass">Hasło:</label>
<input type="password" name="pass" maxlength="32" id="pass" /><br />
<input type="hidden" name="send" value="1" />
<input type="submit" value="Zaloguj" />
</form>
<?php
}
?>
**klasa user **__foo__
<?php
/**
* Klasa wykonująca wszystkie podstawowe operacje
* @author Sobak
* @package User System
*/
class user {
public static $user = array();
/**
* Zwraca tablicę ze wszystkimi danymi o użytkowniku.
* Indeksy tablicy odpowiadają nazwom pól w bazie danych (login, pass etc...)
* @param string $login
* @param string $pass
* @return array
*/
public function getData ($login, $pass) {
if ($login == '') $login = $_SESSION['login'];
if ($pass == '') $pass = $_SESSION['pass'];
self::$user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE login='$login' AND haslo='$pass' LIMIT 1;"));
return self::$user;
}
/**
* Zwraca tablicę ze wszystkimi danymi o użytkowniku, tak jak powyższa metoda klasy,
* ale rozpoznaje użytkownika nie po podaniu loginu i hasła tylko po podaniu ID.
* Używana np. do wyświetlania strony profilu.
* @param int $id
* @return array
*/
public function getDataById ($id) {
$user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE id='$id' LIMIT 1;"));
return $user;
}
/**
* Jeśli użytkownik jest zalogowany - zwraca true, w przeciwnym wypadku - false
* @return bool
*/
public function isLogged () {
if (empty($_SESSION['login']) || empty($_SESSION['pass'])) {
return false;
}
else {
return true;
}
}
/**
* "Soli" hasło przed jego zahashowaniem funkcją md5()
* @param string $pass
* @return string
*/
public function passSalter ($pass) {
$pass = '$@@#$#@$'.$pass.'q2#$3$%##@';
return md5($pass);
}
}
ewentualnie poprosze o inny skrypt :/