Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z PHP


Gość Vosly_

Rekomendowane odpowiedzi

Opublikowano

Witam wszystkich mam problem z php na AZ.PL otóż gdy wchodzę na stronę wszystko działa niby ok. ale kiedy próbuję przekierować np. przez

header("location: ?web=main");

lub zalogować się przez sesje nic nie działa a plan hostingowy to Premium [najdroższy] próbowałem zmienić wersje php na starsze ale jest albo biała strona albo kod widać ;x

Opublikowano

Kluczem do rozwiązania Twojego problemu jest zrozumienie co robi funkcja header. Wśród nowych programistów krąży przekonanie, że jest to funkcja do przekierowania (bo właśnie w tym celu większość niedoświadczonych programistów jej używa). Tak naprawdę funkcja header dodaje nowy nagłówek HTTP, czyli - komenda używana do komunikacji pomiędzy przeglądarką a serwerem. Komenda location jest jedną z nich.

 

Jak wiemy, pakiet HTTP (mówię teraz o odpowiedzi z serwera) składa się z nagłówka i zawartości. Warto podkreślić że w pakiecie HTTP nagłówek znajduje się przed zawartością - to jest klucz Twojego problemu. A dokładniej?

 

Jeżeli mamy kod:

echo "Siemano";
header("Location: index.php");

Już jesteśmy skazani na błąd. Dlaczego? Ponieważ zawartość dokumentu została zdefiniowana (lub częściowo) za pomocą polecenia echo, a następnie próbujemy dodać nagłówek. Wiemy już że tak nie można, ponieważ w pakiecie HTTP najpierw występuje nagłówek, a potem zawartość. Tutaj jest na odwrót.

 

Więc jak rozwiązać Twój problem? Upewnij się, że przed wywołaniem funkcji header w Twoim kodzie nie definiujesz zawartości pakietu, poprzez echo, znaczniki html (poza <?php ?>) itp. Najlepiej by było, żebyś udostępnił nam Twój kod.

 

p.s. Nie wyświetlasz wszystkich błędów. Dodaj to na samej górze strony:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
Opublikowano

Chociażby to działało to i tak sesje dalej nie działają zresztą temat do zamknięcia ponieważ zmieniam hosting [testowałem i normalnie kod działa który wrzuciłem na pakiet premium]. Bardzo dziękuje ci za dokładne opisanie i na pewno przyda mi się to w przyszłości :)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...