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

Nieprawidłowe działanie PHP

Object Storage Arubacloud
0 głosów
295 wizyt
pytanie zadane 10 sierpnia 2017 w PHP przez Farmer Obywatel (1,150 p.)

Cześć,

mam problem takiego rodzaju, że pokazuje mi się alert tego typu "
Notice: Undefined index: user in C:\xampp\htdocs\Osadnicy\gra.php on line 17 "

a potem pod nim komunikat "Witaj!", który  chciałem wypisać na ekranie 

Tutaj wrzucę kody:

To kod który wypisuje ki ten błąd:

<?php

	session_start();
?>

<!DOCTYPE HTML>	
<html lang="pl" >
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title>Osadnicy - gra przeglądarkowa</title>
</head>
<body>
	
	<?php
	
		echo "<p>Witaj".$_SESSION['user']."!";
	
	?>
	


</body>
</html>

 

Tu pozostałe kody które są potrzebne do stworzenia tego:

<?php

	session_start();
	
	require_once "connect.php";
	
	$polaczanie = @new mysqli($host, $db_user, $db_password, $db_name);
	
	if($polaczanie->connect_errno!=0)
	{
		echo "Error: ".$polaczanie->connect_errno;
	}
	else
	{
		$login = $_POST['login'];
		$haslo = $_POST['haslo'];
		
		$sql = "SELECT * FROM uzytkownicy WHERE user='$login' AND pass='$haslo'";
		
		if ($rezultat = @$polaczanie->querry($sql))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$wiersz = $rezultat->fetch_assoc();
				$_SESSION['user'] = $wiersz['user'];
				
				
				$rezultat->free_result();
				header('Location: gra.php');
			}
			else
			{
				
			}
		}
		
		$polaczanie->close();
	}

?>
<!DOCTYPE HTML>	
<html lang="pl" >
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title>Osadnicy - gra przeglądarkowa</title>
</head>
<body>
	
	Tylko martwi ujrzeli koniec wojny - Platon<br /><br />
	
	<form action="zaloguj.php" method="post">
	
		Login: <br /> <input type="text" name="login" /> <br />
		Hasło: <br /> <input type="password" name="haslo" /> <br /><br />
		<input type="submit" value="Zaloguj się" />
	
	</form>

</body>
</html>

 

O ile ktokolwiek zrozumie o co mi chodzi to bardzo proszę o pomoc

2 odpowiedzi

+1 głos
odpowiedź 10 sierpnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Ostrzeżenie to mówi, że nie ma indeksu "user" w tablicy $_SESSION. Czyli w Twoim przypadku prawdopodobnie ktoś się nie zalogował. Próbujesz wyświetlić nick osoby zalogowanej, a nikt nie jest zalogowany. A więc wypadałoby sprawdzić czy ktoś jest zalogowany, chociażby przez sprawdzenie czy ten element w tablicy istnieje.
komentarz 10 sierpnia 2017 przez Farmer Obywatel (1,150 p.)
dzięki tylko ze po kliknięciu przycisku zaloguj na stronie "...zaloguj.php" nie przenosi mnie do strony "...gra.php" tylko pozostawia mnie na stronie "...zaloguj.php" tylko że jest pusta

Dlaczego nie nie przenosi?

dać wszystkie kody?
komentarz 10 sierpnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

Może występuje jakiś błąd, a masz wyłączone ich wyświetlanie? Sprawdź.

if($ilu_userow>0)
            {
                $wiersz = $rezultat->fetch_assoc();
                $_SESSION['user'] = $wiersz['user'];
                 
                 
                $rezultat->free_result();
                header('Location: gra.php');
            }
            else
            {
                 
            }

Może po prostu wpisujesz błędne dane (zakładając że pozostała część kodu jest w porządku) i wykonuje się else czyli... nic?

komentarz 10 sierpnia 2017 przez Farmer Obywatel (1,150 p.)
jeśli chodzi o dane to nie możliwe bo biorę je z bazy danych MYSQL...
komentarz 10 sierpnia 2017 przez Farmer Obywatel (1,150 p.)
tylko ja się pytam czemu mnie to nie przekierowywuje??? :D
komentarz 10 sierpnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

Och. Jak się przyjrzałem uważniej:

if ($rezultat = @$polaczanie->querry($sql))

Nie ma querry, jest query. Usuń wszystkie @ bo przez nie dzieje się widać co... A właściwie nie widać, bo @ ukrywa błędy.

komentarz 10 sierpnia 2017 przez Farmer Obywatel (1,150 p.)
<?php

	session_start();
	
	require_once "connect.php";
	
	$polaczanie = new mysqli($host, $db_user, $db_password, $db_name);
	
	if($polaczanie->connect_errno!=0)
	{
		echo "Error: ".$polaczanie->connect_errno;
	}
	else
	{
		$login = $_POST['login'];
		$haslo = $_POST['haslo'];
		
		$sql = "SELECT * FROM uzytkownicy WHERE user='$login' AND pass='$haslo'";
		
		if ($rezultat = $polaczanie->querry($sql))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$wiersz = $rezultat->fetch_assoc();
				$_SESSION['user'] = $wiersz['user'];
				
				
				$rezultat->free_result();
				header('Location: gra.php');
			}
			else
			{
				
			}
		}
		
		$polaczanie->close();
	}

?>

W lini 20 przed "$polaczanie" była "@" czyli wyciszenie errorów 

po jej usunięciu gdy znów wpisałem login i hasło wyskoczyło mi coś takiego:
Fatal error: Call to undefined method mysqli::querry() in C:\xampp\htdocs\Osadnicy\zaloguj.php on line 20

1
komentarz 10 sierpnia 2017 przez Farmer Obywatel (1,150 p.)
dzięki o to chodziło :)
0 głosów
odpowiedź 10 sierpnia 2017 przez Ehlert Ekspert (212,670 p.)
Zapoznaj się z magiczną funkcją var_dump. Spróbuj ja sobie wywołać. Daj jej argument. Wszystko stanie się prostsze

Podobne pytania

+1 głos
3 odpowiedzi 564 wizyt
0 głosów
2 odpowiedzi 287 wizyt
0 głosów
0 odpowiedzi 509 wizyt
pytanie zadane 21 sierpnia 2017 w C i C++ przez TomaszA2 Obywatel (1,720 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

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

...