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

Błąd z header connection

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
167 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 (289,990 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 382 wizyt
pytanie zadane 13 stycznia 2018 w PHP przez kingkushlee Gaduła (3,960 p.)
0 głosów
0 odpowiedzi 159 wizyt
pytanie zadane 20 listopada 2017 w PHP przez Piotr Jarema Użytkownik (970 p.)
0 głosów
2 odpowiedzi 742 wizyt
pytanie zadane 22 sierpnia 2017 w PHP przez hiper007 Stary wyjadacz (11,270 p.)

93,172 zapytań

142,184 odpowiedzi

321,965 komentarzy

62,496 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 918p. - dia-Chann
  2. 902p. - Łukasz Piwowar
  3. 901p. - CC PL
  4. 894p. - Łukasz Eckert
  5. 872p. - Michal Drewniak
  6. 867p. - Marcin Putra
  7. 858p. - rafalszastok
  8. 856p. - rucin93
  9. 842p. - Dawid128
  10. 840p. - Adrian Wieprzkowicz
  11. 830p. - Piotr Aleksandrowicz
  12. 826p. - Michał Telesz
  13. 819p. - Mariusz Fornal
  14. 814p. - Mikbac
  15. 812p. - TheLukaszNs
Szczegóły i pełne wyniki

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!

...