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

Logowanie - Różne typy kont [admin, użytkownik]

VPS Starter Arubacloud
0 głosów
353 wizyt
pytanie zadane 12 grudnia 2019 w PHP przez manager96 Bywalec (2,050 p.)

Witam mam pytanie odnośnie logowania w sytuacji kiedy mamy kilka typów kont ( admin, użytkownik, moderator  )

Oto mój skrypt logowania:

<?php
session_start();
?>

<script src="jquery-1.11.3.min.js" ></script>
    <?php
	if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
	{
		echo '<script type="text/javascript">location.href = "index.php"</script>';
		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'];
				
				unset($_SESSION['blad']);
				$rezultat->free_result();
				echo '<script type="text/javascript">location.href = "index.php"</script>';
				
			} else {
				
				$_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
				echo '<script type="text/javascript">location.href = "index.php"</script>';
				
			}
		
		}
        $result = mysqli_query($polaczenie, "SELECT * FROM uzytkownicy WHERE user='$login'");
        $rekord = mysqli_fetch_array($result); // wiersza z BD, struktura zmiennej jak w BD
     
if(!$rekord) //Jeśli brak, to nie ma użytkownika o podanym loginie



{
mysqli_close($polaczenie); 
echo "Brak użytkownika o takim loginie!"; // UWAGA nie wyświetlamy takich podpowiedzi dla hakerów
}
else {
    if ($rekord['pass'] == $haslo)
    {
        if ($rekord['typ'] == 'admin') {
            $_SESSION['admin']=true;
            header('Location: admin.php');}
            
      if ($rekord['typ'] == 'coach') {
            $_SESSION['coach']=true;
            header('Location: coach.php');}
            
     if ($rekord['typ'] == 'user') {
            $_SESSION['user']=true;
            header('Location: user.php');}
        }
    }
}
		$polaczenie->close();

	
?>

Kiedy typ użytkownika to coach  ma się zalogować jako coach i przekierować na strone coach.php

Kiedy typ użytkownika to admin ma się zalogować jako admin i przekierować na strone admin .php

Kiedy typ użytkownika to user ma się zalogować jako user i przekierować na strone user .php

Skrypt logowania działa poprawnie, loguje się jako admin/coach/user  ale problemem stanowi samo przekierowanie. Wszystko przekierowuje na admin.php

Wie ktoś jak sprawić żeby przekierowywało zgodnie z typem konta??

Oto jeszcze Index.php:

<?php
session_start();
?>

<script src="jquery-1.11.3.min.js" ></script>
<?php 
    
	if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
	{
		echo '<script type="text/javascript">location.href = "admin.php"</script>';            // tutaj moze jest błąd ale bez tego mi nie działa
		exit();
	}
    
    
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />


		<title>STRONA GŁÓWNA</title
</head>

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

				
	
			</form>

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


	


	</body>
</html>

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+6 głosów
1 odpowiedź 209 wizyt
pytanie zadane 8 kwietnia 2021 w Offtop przez JakSky Stary wyjadacz (14,770 p.)
0 głosów
1 odpowiedź 172 wizyt
pytanie zadane 19 sierpnia 2020 w Python przez Dzango111 Użytkownik (660 p.)
+1 głos
2 odpowiedzi 223 wizyt
pytanie zadane 8 lutego 2022 w PHP przez gatka84 Bywalec (2,150 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 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!

...