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

Błąd z header connection

Object Storage Arubacloud
0 głosów
132 wizyt
pytanie zadane 22 listopada 2019 w PHP przez manager96 Bywalec (2,050 p.)

Warning: Cannot modify header information - headers already sent by (output started at /lab6/zaloguj.php:4) in /lab6/zaloguj.php on line 53

 

Cześć, powyższy błąd występuje podczas logowania, kiedy zamierzam zalogowanego użytkownika przenieść na inną podstronę. Już nie mam pojęcia co to może być, proszę o pomoc. Oczywiście czytałem niektóre wątki ludzi którzy założyli podobne tematy. Niestety żadne ob_start() i ob_end_flush nie pomogły natomiast nie rozumiem jak ogarnąć jakiś BOM ponieważ niektórzy uważają że to przez to. Co myślicie? Poniżej plik zaloguj.php:

<?php
session_start();
?>

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

    $host = "hosting1936384.online.pro";
	$db_user = "00261256_lab6";
	$db_password = "xXx.";
	$db_name = "00261256_lab6";

	$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");
	
		if ($rezultat = @$polaczenie->query(
		sprintf("SELECT * FROM uzytkownicy WHERE user='%s'",
		mysqli_real_escape_string($polaczenie,$login))))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$wiersz = $rezultat->fetch_assoc();
				
				if (password_verify($haslo, $wiersz['pass']))
				{
					$_SESSION['zalogowany'] = true;
					$_SESSION['id'] = $wiersz['id'];
					$_SESSION['user'] = $wiersz['user'];
				
					
					unset($_SESSION['blad']);
					$rezultat->free_result();
					header('Location: menu.php');
				}
				else 
				{
					$_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
					header('Location: lab6.php');
				}
				
			} else {
				
				$_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
				header('Location: lab6.php');
				
			}
			
		}
		
		$polaczenie->close();
	}
?>

 

1 odpowiedź

0 głosów
odpowiedź 22 listopada 2019 przez manager96 Bywalec (2,050 p.)

Problem okiełznany, jakby ktoś potrzebował, header location to jakaś przestarzała funkcja z którą generalnie pełno ludzi ma problemy, więc polecam zrobić to javascriptem

		echo '<script type="text/javascript">location.href = "index.php"</script>';

 

komentarz 22 listopada 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Nie, header() to nie jest przestarzała funkcja i ten kto umie jej użyć nie ma problemów. Po prostu nie można wysłać nagłówka w momencie, gdy została wysłana już jakaś treść odpowiedzi.

Dla przykładu: nie możesz zrobisz najpierw echo aby wyświetlić jakieś dane, a później wysłać nagłówek przez header(). Najpierw musisz wysłać wszystkie nagłówki, dopiero na końcu możesz zrobić echo aby coś wyświetlić. Dotyczy się to też białych znaków i wszystkiego co będzie traktowane jako zawartość odpowiedzi.

Podobne pytania

0 głosów
2 odpowiedzi 326 wizyt
pytanie zadane 13 stycznia 2018 w PHP przez kingkushlee Gaduła (3,960 p.)
0 głosów
0 odpowiedzi 147 wizyt
pytanie zadane 20 listopada 2017 w PHP przez Piotr Jarema Użytkownik (970 p.)
0 głosów
2 odpowiedzi 556 wizyt
pytanie zadane 22 sierpnia 2017 w PHP przez hiper007 Stary wyjadacz (11,270 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

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

...