• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Panel logowania w PHP , user zalogowany na każdej podstronie .

VPS Starter Arubacloud
0 głosów
1,307 wizyt
pytanie zadane 17 lutego 2016 w PHP przez Kubala94 Początkujący (360 p.)

Witam, mam pytanie zrobiłem system logowania z  odcinka kursu PHP , Pana Mirosława https://www.youtube.com/watch?v=Pp578w7C9hE   , następnie "podpiąłem" ten panel logowania do mojej strony , która napisałem w html , działa OK ale pytanie jak zrobić żeby działało na każdej podstronie serwisu .. tzn żeby użytkownik był zalogowany cały czas nawet jeśli przejdzie na podstronę (obecnie jak kliknę w inna podstronę to się wylogowuje , nawet jak przejdę na stronę główną zaraz po zalogowaniu) jak to napisać w php? Jestem początkującym , proszę o wyrozumiałość :)

Kod PHP:

plik zaloguj.php na który jest przekierowanie po wpisaniu danych logowania 


<?php

	session_start();
	
	if((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
	{
		header('Location: index.html');
		
		exit();
	}
	require_once "connect.php";
	
	$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
	
	if ($polaczenie->connect_errno!=0)
	{
		echo "Error:".$polaczenie->connect_errno;
	}
	else
	
	{
	 $login = $_POST['login'];
	 $haslo = $_POST['haslo'];
	 
	  $login = htmlentities($login,ENT_QUOTES, "UTF-8");
	  $haslo = htmlentities($haslo,ENT_QUOTES, "UTF-8");
	
		
	if($rezultat = @$polaczenie->query(
	sprintf("SELECT * FROM uzytkownicy WHERE user='%s' AND pass='%s'",
	mysqli_real_escape_string($polaczenie,$login),
	mysqli_real_escape_string($polaczenie,$haslo))))
	{
		$ilu_userow = $rezultat->num_rows;
		if($ilu_userow>0)
		{
			$_SESSION['zalogowany'] = true;
			
			$wiersz = $rezultat->fetch_assoc();
			$_SESSION['id'] = $wiersz['id'];
			$_SESSION['user'] = $wiersz['user'];
			$_SESSION['email'] = $wiersz['email'];
			$_SESSION['kontovip'] = $wiersz['kontovip'];

			
			unset($_SESSION['blad']);
			$rezultat->free_result();
			
			header('Location: profile.php');
			
		}else{
			
			$_SESSION['blad'] = '<span style="color:red"> Nieprawidłowy login lub hasło!</span>';
			header('Location: index.php');
		}
		
	}
	$polaczenie->close();
	
	}
 
?>

 

 

2 odpowiedzi

0 głosów
odpowiedź 17 lutego 2016 przez Kubala94 Początkujący (360 p.)
dalsza cześć kod plik profile.php

<?php

session_start();

if (!isset($_SESSION['zalogowany']))
    {
        header('Location: index.html');
        exit();
    }

?>

logout.php


    <?php

    echo "<p>Witaj ".$_SESSION['user'].'![<a href="logout.php">Wyloguj się</a>]';
    echo "<p><b>E-mail</b>:".$_SESSION['email'];
    echo "|<b>Konto Vip</b>:".$_SESSION['kontovip']."</p>";
?>

w indeksie mam wklejone to :

<?php
    session_start();
    
    if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
    {
        header('Location: profile.php');
        exit();
    }
?>

<?php
                    if(isset ($_SESSION['blad'])) echo $_SESSION['blad'];

                        ?>

formularz logowania

Zaloguj się: <br />
						<br />
						
						 <form action="zaloguj.php" method="post">
							Login: <br/> <input type="text" name="login" /> <br />
							Hasło: <br /> <input type="password" name="haslo" />
							
							<input type="submit" value="Zaloguj" />
						  
						</form> 

 

0 głosów
odpowiedź 18 lutego 2016 przez No Lime Gaduła (4,540 p.)
Można powiedzieć, że tak się dzieje. W tym znaczeniu, że jesteś zalogowanu również na innej podstronie. Tylko Ty prawdopodobnie jeszcze nie zadbałeś o to żeby inna podstrona wyświetlała się inaczej dla zalogowanego/niezalogowanego użytkownika. Mam na myśli tutaj np. inny pasek nawigacji (dla niezalogowanego będzie chociażby Zaloguj się/Zarejestruj się a dla zalogowanego np. Wyloguj się lub Witaj "Nick usera"!). Aby coś wyświetlić dla np. zalogowanego możesz dla przykładu stworzyć warunek if. Jeżeli zmienna sesyjna "zalogowany" przyjmuje wartość TRUE, wtedy zrób... co zechcesz żeby działo się dla takiego użytkownika. Na samym początku raczej warto zadbać o wyświetlenie dla takiego osobnika przycisku Wyloguj który "odprowadzałby" osobę która w niego kliknie do skryptu PHP który zmienia wartość zmiennej sesyjnej na FALSE i wtedy już na wcześniejszej podstronie taki przycisk Wyloguj po prostu się nie pojawi.
komentarz 18 lutego 2016 przez Kubala94 Początkujący (360 p.)
Dzięki za odpowiedz , pomyślę nad tym . P.S. mam przycisk "wyloguj" jest on widoczny dla użytkownika po zalogowaniu .

Podobne pytania

0 głosów
1 odpowiedź 452 wizyt
pytanie zadane 25 lutego 2016 w PHP przez Kubala94 Początkujący (360 p.)
+2 głosów
0 odpowiedzi 121 wizyt
pytanie zadane 6 lipca 2019 w HTML i CSS przez Nerez Użytkownik (970 p.)
0 głosów
3 odpowiedzi 613 wizyt
pytanie zadane 8 kwietnia 2017 w PHP przez marcin99b Szeryf (81,480 p.)

92,452 zapytań

141,262 odpowiedzi

319,080 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...