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

Aruba Cloud - Virtual Private Server VPS
0 głosów
551 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ź 269 wizyt
pytanie zadane 8 kwietnia 2021 w Offtop przez JakSky Stary wyjadacz (14,770 p.)
0 głosów
1 odpowiedź 280 wizyt
pytanie zadane 19 sierpnia 2020 w Python przez Dzango111 Użytkownik (660 p.)
+1 głos
2 odpowiedzi 538 wizyt
pytanie zadane 8 lutego 2022 w PHP przez gatka84 Bywalec (2,150 p.)

93,336 zapytań

142,332 odpowiedzi

322,418 komentarzy

62,672 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...