• 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 .

Object Storage Arubacloud
0 głosów
1,323 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ź 456 wizyt
pytanie zadane 25 lutego 2016 w PHP przez Kubala94 Początkujący (360 p.)
+2 głosów
0 odpowiedzi 125 wizyt
pytanie zadane 6 lipca 2019 w HTML i CSS przez Nerez Użytkownik (970 p.)
0 głosów
3 odpowiedzi 632 wizyt
pytanie zadane 8 kwietnia 2017 w PHP przez marcin99b Szeryf (82,180 p.)

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...