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

PHP + MySql | System Logowania

Cloud VPS
0 głosów
1,048 wizyt
pytanie zadane 28 lipca 2020 w PHP przez x_000 Obywatel (1,460 p.)

Siema jest jakiś gdzieś błąd ponieważ wpisuje poprawne dane do logowania a wyskakuje błąd

KOD php:

<?php

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

	$polaczenie = @new mysqli('localhost', 'root', '', 'gitme');
	
	if ($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_errno;
	}
	else
	{
		$login = $_POST['login'];
		$haslo = $_POST['haslo'];
		
		$haslo = password_hash($haslo, PASSWORD_DEFAULT);
	
		if ($rezultat = @$polaczenie->query("SELECT * FROM users WHERE username='".$login."' AND password='".$haslo."'"))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$_SESSION['loggedin'] = true;
				
				$wiersz = $rezultat->fetch_assoc();
				$_SESSION['id'] = $wiersz['id'];
				$_SESSION['user'] = $wiersz['user'];
				$_SESSION['dimage'] = $wiersz['DesktopImg'];
				
				unset($_SESSION['blad']);
				$rezultat->free_result();
				header('Location: ../');
				
			} else {
				
				$_SESSION['blad'] = '<span style="color:red">Incorrect datas.</span>';
				header('Location: index.php');
				
			}
			
		}
		
		$polaczenie->close();
	}
	
?>

BAZA DANYCH mySQL:

 

Gdzie jest błąd??? 

 

Z Góry dzięki za pomoc!!!

3 odpowiedzi

0 głosów
odpowiedź 28 lipca 2020 przez kingkushlee Gaduła (3,960 p.)
–1 głos
odpowiedź 28 lipca 2020 przez _Pita_ Stary wyjadacz (11,410 p.)
Dobrze rozumiem, że nie użyłeś funkcji password_verify()?

Jeśli tak, to właśnie to jest problemem.

 

Teraz niektórzy mogą mnie krytykować, ale mimo wszystko polecam Ci obejrzeć pierwsze 3 odcinki serii PHP Pana MZ.
komentarz 28 lipca 2020 przez _Pita_ Stary wyjadacz (11,410 p.)

O password verify nic nie pisałem.

 Wiem, chodzi mi tylko o to, że kurs mimo wszystko może pomóc.

Nie, rzucanie wyjątków też jest tam źle zrobione. To że użyjesz try catch to jeszcze nic nie znaczy. 

Jak już wspomniałem, nie jestem specjalistą, ale nie widziałem w tym kodzie rzucania wyjątków, a jedynie wyciszanie za pomocą @.

komentarz 29 lipca 2020 przez x_000 Obywatel (1,460 p.)

@_Pita_, Oglądałem z 2 lata temu.

komentarz 29 lipca 2020 przez Ehlert Ekspert (215,050 p.)

jedynie wyciszanie za pomocą @.

Tak się nie robi. 

komentarz 29 lipca 2020 przez _Pita_ Stary wyjadacz (11,410 p.)

Tak się nie robi. 

 Właśnie o to chodziło mi w tym komentarzu :D.  Autor użył @, zamiast chociażby rzucania wyjątkiem, czy innej tego typu mechaniki. System throw catch we wspomnianym przeze mnie materiale został wytłumaczony całkiem dobrze. Nie mówiąc już o password_verify(), o które tak naprawdę chodzi autorowi.

@_Pita_, Oglądałem z 2 lata temu.

W takim razie funkcja  password_verify, nie powinna być Ci obca.

komentarz 29 lipca 2020 przez Ehlert Ekspert (215,050 p.)

System throw catch we wspomnianym przeze mnie materiale został wytłumaczony całkiem dobrze. 

Ale kto tak określił? Ty? Bo prawda jest taka że chyba ta @ była lepszym rozwiązaniem.

Podobne pytania

0 głosów
4 odpowiedzi 1,423 wizyt
pytanie zadane 5 lipca 2019 w PHP przez Nerez Użytkownik (970 p.)
+2 głosów
0 odpowiedzi 168 wizyt
pytanie zadane 6 lipca 2019 w HTML i CSS przez Nerez Użytkownik (970 p.)
0 głosów
1 odpowiedź 466 wizyt
pytanie zadane 11 listopada 2022 w PHP przez mrc Nowicjusz (200 p.)

93,488 zapytań

142,421 odpowiedzi

322,772 komentarzy

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

Kursy INF.02 i INF.03
...