kaker2
15.09.2014, 17:20:31
Witam mam problem jak się zaloguje i sie chce wylogować to po tym chce wyświetlić wiadomość wylogowałeś się i przekierunkować się do strony głównej index.php i nie moge wyświetlić tego napisu zaznaczam że jest to mój pierwszy projekt jestem początkujący wiem że nie ma zabezpieczen to pomijam narazie
oto ten plik:
//deklarujemy zmienne z formularza
$login=$_POST['login'];
$haslo=$_POST['haslo'];
//sprawdzamy czy hasło i login zostało wprowadzone
if (!$login || !$haslo)
{
echo 'Proszę o wypełnienie wszystkich danych czyli login i haslo'; echo '<a href="index.php">wróć</a>'; }
//łączymy się z bazą danych mysql
if (!$polacz)
{
echo 'Błąd połączenia z bazą danych'; }
if (!$baza)
{
echo 'Błąd połączenia z odpowiednią bazą'; }
//logowanie
//Sprawdzamy czy w bazie danych znajduje się podany użytkownik z odpowiednim haslem
$sprawdz="select * from logowanie where login='".$login."' and haslo='".$haslo."' ";
//sprawdzamy czy istnieje wartość równa zapytaniu jeżeli tak rozpoczynamy sesje zalogowany
if (isset($zapyt) && $zapyt == 1
) {
$_SESSION['zalogowany']==true;
echo 'Właśnie się zalogowałeś<br>'; echo '<a href="logowanie.php?akcja==wyloguj">Wyloguj z sesjii</a>'; }
else
{
echo 'Błąd przy logowaniu<br> Proszę sprawdzić czy zostały wpisane poprawnie login i hasło <a href="index.php">wróć</a>';
}
//jeżeli istnieje zmienna akcja i ta zmienna ma wartość wyloguj to cofnij sesje zalogowany
if (isset($_GET['akcja']) && $_GET['akcja']=='wyloguj') {
$_SESSION['zalogowany']==false;
}
nospor
15.09.2014, 19:10:14
Temat: Jak poprawnie zatytulowac watekTytul ma odzwierciedla problem a nie stan twojej wiedzy. Krzyczący POCZATKUJACY jest totalnie zbędne w tytule.
ps: przenosze na przedszkole. Tam tez zakladaj ewentualne inne tematy
Martin-ZG
15.09.2014, 21:01:07
masz błąd z $_SESSION['zalogowany']
po sprawdzeniu wartości z bazy-danych musisz ustawić odpowiednia wartość w $_SESSION['zalogowany']; np $_SESSION['zalogowany']=1;
i później ją sprawdzać if np
if($_SESSION['zalogowany']==1) {
echo "dostep dla zalogowanego "
}else{
header('Location: logowanie.php');
}
widzę, że nie za bardzo rozumiesz ideę sesji, więc pokazuję objaśniam (mam nadzieję, że dużo nie nakłamię), $_SESSION to taki sprytny magazyn, który otwierasz funkcją session_start(); gdy masz otwarty ten magazyn możesz do niego chować różne dane deklarując zmienne sesyjne $_SESSION['dana1'], $_SESSION['dana2'] i masz do tych danych dostęp w całej aplikacji do póki magazyn jest otarty czyli do momentu zniszczenia sesji session_destroy() bez tego po odświeżeniu strony dane przepadają i tyle. A kontrolę dostępu musisz sam opracować ustawiając wartości tych danych w magazynie i ich sprawdzanie, jak waldek ($_SESSION['waldek']) ma tak, to moze dodawac posty, jak ma nie to moze tylko czytac itp itd
kalipek
15.09.2014, 21:37:40
Przypisz prawidłowo true i false do $_SESSION['zalogowany'] za pomocą "=", w pokazanym kodzie zastosowałeś operator porównania "==".
Odnośnie wylogowania:
if (isset($_GET['akcja']) && $_GET['akcja']=='wyloguj') {
unset($_SESSION['zalogowany']); $_SESSION['message'] = 'wylogowałeś się';
header('Location: index.php'); }
w index.php:
if(isset($_SESSION['message'])) {
echo $_SESSION['message']; unset($_SESSION['message']); // usuwasz zmienną z wiadomością, inaczej będzie wyświetlana przy każdym odświeżeniu }