Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] loguje tylko na jednej podstronie z logowaniem., loguję-włączam podstronę-wracam na logowanie- i każe znowu logowac
beatZB
post 8.01.2015, 17:12:01
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 10.12.2014

Ostrzeżenie: (0%)
-----


[php][/php]Mam taki skrypt logowania, loguję się z powodzeniem. Jednak gdy idę na index.html, i wracam na stronę z logowaniem, nie ma tam buttona wyloguj (jak powinno byc) a ponownie jest formularz logowania. Tak, jakby po przejściu na inna podstronę sam wylogował użytkownika.
Gdy operuję tylko na stronie z logowaniem, działa prawidłowo, czyli po zalogowaniu jest wyloguj, a po wylogowaniu wyświetla formularz logowania.

CODE

<?PHP
session_start();
if (!isset($_SESSION['logged'])) {
$_SESSION['logged'] == false;}

function form(){
echo '
<form action="" method="post">
<label for="login">Login</label>
<input type="text" name="login" required>
<br>
<label for="password">Haslo</label>
<input type="password" name="password" required>
<br>

<input type="submit" name="wyslano" value= zaloguj <a href="#" class="btn"></a>
</form>
';
}
//Połączenie z bazą danych MySQL PDO
$db = new PDO('mysql:host=localhost;dbname=logowanie', 'beatam', '123', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die();

if(isset($_POST['wyslano'])){ // czy submit wciśnięty
//białe znaki
$login = trim($_POST['login']);
$password = trim($_POST['password']);

//Kodowanie hasła
$password = sha1($password);


//czy użytkownik o podanych danych istnieje
$stmt = $db->prepare("SELECT * FROM users WHERE login=:login AND password=:password");
$stmt->bindValue(":login", $login, PDO::PARAM_STR);
$stmt->bindValue(":password", $password, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount()!=0){
echo "jestes zalogowany!";
/*
* sesja dla zalogowanych
*
*
*/


$_SESSION['logged'] == true;
$_SESSION['user_id'] == $row['id'];
?>

<form action="" method="post">
<input type="submit" name="wyloguj" value="Wyloguj" />
</form>


<?php
if (isset($_POST['wyloguj'])) {
$_SESSION['zalogowany'] == false;
}
}
else{
echo '<div style="color:red">Login i/lub hasło są nieprawidlowe</div>';

}
}
else form(); ?>






Chciałabym z góry dodac, że w index.html na samej górze kodu dodałam "<?php session_start(); ?>" mimo to, nie działa. Powinnam jeszcze coś dopisac ?

Gdzie zrobiłam ten kolosalny błąd?

Dziękuję z góry za wszelką pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 23:26