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

Problem z logowaniem.

Object Storage Arubacloud
0 głosów
279 wizyt
pytanie zadane 3 maja 2016 w PHP przez KariK-02 Mądrala (6,030 p.)

Witam! Mam problem z logowaniem, gdy klikam w przycisk przenosi mnie do pliki, w którym dokonuje się logowanie, ale nic się nie dzieje, ani mnie nie przekierowuje, ani wyskakuje error.

index.php

<?php

session_start();

if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
{
	header('Location: admin.php');
	exit();
}

?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Admin</title>
		<link rel="stylesheet" href="css/style.css" media="screen" title="no title" charset="utf-8">
		<link href='https://fonts.googleapis.com/css?family=Comfortaa&subset=latin,latin-ext,cyrillic,cyrillic-ext,greek' rel='stylesheet' type='text/css'>
  </head>
  <body>
		<div class="header_1">
			<a href="index.php">Witaj w logowaniu do panelu administratora</a>
		</div>
		<header class="header_2">
			<h1>Admin-panel</h1>
			<h2>Zaloguj się</h2>
		</header>
		<form class="" action="zaloguj.php" method="post">
			<input type="text" name="nick" value="" placeholder="Podaj nick..."><br>
			<input type="password" name="haslo" value="" placeholder="Podaj hasło..."><br>
			<input type="submit" name="post" value="Zaloguj się">
		</form>
		<div class="div_empt">
			<a href="#">Powrot do strony głownej fan klubu</a>
		</div>
    <?php
	     if(isset($_SESSION['blad']))	echo $_SESSION['blad'];
     ?>
  </body>
</html>

zaloguj.php

<?php

	session_start();

	if ((!isset($_POST['nick'])) || (!isset($_POST['haslo'])))
	{
		header('Location: index.php');
		exit();
	}

	require_once "db.php";


	if ($db->connect_errno!=0)
	{
		echo "Error: ".$db->connect_errno;
	}
	else
	{
		$login = $_POST['nick'];
		$haslo = $_POST['haslo'];

		$login = htmlentities($login, ENT_QUOTES, "UTF-8");

		if ($rezultat = $db->query(
		sprintf("SELECT * FROM baza_reg WHERE user='%s'",
		mysqli_real_escape_string($db,$login))))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$wiersz = $rezultat->fetch_assoc();

				if (password_verify($haslo, $wiersz['haslo']))
				{
					$_SESSION['zalogowany'] = true;
					$_SESSION['id'] = $wiersz['id'];
					$_SESSION['nick'] = $wiersz['nick'];
					$_SESSION['haslo'] = $wiersz['haslo'];

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

			} else {

				$_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
				header('Location: index.php');

			}

		}

		$db->close();
	}

?>

 

2 odpowiedzi

0 głosów
odpowiedź 3 maja 2016 przez Vodoo Dyskutant (9,270 p.)
wybrane 4 maja 2016 przez KariK-02
 
Najlepsza
W takim przypadku proponuję napisać po każdym if'ie echo [jakiś unikalny tekst], zobaczysz jak po kolei wykonuje się kod i w końcu dojdziesz gdzie jest błąd.

Wiem, że jest to "ułomna" metoda, ale często pomaga :D
komentarz 4 maja 2016 przez KariK-02 Mądrala (6,030 p.)
Spróbuję :)
komentarz 4 maja 2016 przez KariK-02 Mądrala (6,030 p.)
Dzięki, fakt zadziałało :)
komentarz 28 lutego 2017 przez Proszek73 Obywatel (1,140 p.)
Gdzie był u Ciebie błąd? Mam dokładnie ten sam problem :/
komentarz 28 lutego 2017 przez KariK-02 Mądrala (6,030 p.)
Nie pamiętam już, ale po każdym ifie pisałem echo
0 głosów
odpowiedź 3 maja 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

Masz włączone wyświetlanie błędów PHP?

SELECT * FROM baza_reg WHERE user='%s'

Nazwa tabeli to na pewno "baza_reg"? Chcę się upewnić, bo w nazwie jest słowo baza, a w zapytaniu SELECT odwołujemy się do konkretnej tabeli, a nie całej bazy i nie wiem czy po prostu tak sobie nazwałeś tabelę czy tu popełniasz błąd.

Jeśli PHP nie wyrzuci żadnego błędu to proponuję sprawdzić http://php.net/manual/en/mysqli.error.php, może coś jest źle gdzieś w zapytaniu.

komentarz 3 maja 2016 przez KariK-02 Mądrala (6,030 p.)
edycja 3 maja 2016 przez KariK-02

Tak mam włączone pokazywanie błędów. Do pewności pokażę Ci zawartość pliku db.php

<?php
  $db = mysqli_connect("localhost", "root", "", "baza") or die(mysqli_error());
 ?>

I "baza_reg" to nazwa tabeli :)

 

komentarz 3 maja 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

Skoro później używasz obiektowego mysqli to i połączyć by się wypadało obiektowo: http://php.net/manual/en/mysqli.construct.php (pierwszy przykład ładnie pokazuje jak to powinno wyglądać). Polecę jeszcze PDO, jest lepsze od mysqli.

Nie sądzę jednak, aby to było rozwiązanie problemu, ale oczywiście i tak zrób jak być powinno. Z pytaniem o tabelę jak rozumiem nie trafiłem, rzeczywiście nazywa się ona "baza_reg" tak? Sprawdź w takim razie mysqli error (wyświetl to po zapytaniu), może coś zwróci.

Podobne pytania

0 głosów
1 odpowiedź 116 wizyt
pytanie zadane 18 maja 2016 w SQL, bazy danych przez Dariusz Piechota Użytkownik (730 p.)
0 głosów
0 odpowiedzi 416 wizyt
0 głosów
1 odpowiedź 159 wizyt
pytanie zadane 22 października 2017 w SQL, bazy danych przez Szczur Nowicjusz (190 p.)

92,568 zapytań

141,420 odpowiedzi

319,620 komentarzy

61,954 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!

...