Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP COOKIE - Problem
Forum PHP.pl > Forum > PHP
Krystian950414
Witam, mam problem dotyczący ciastek w PHP. Problem polega na tym, że jak ustawię ciastko to w ogóle nie zapisuje zmiennej, ale tu należy dodać, że jeżeli jest to czysty plik php z samym dodawaniem wartości do ciastka oraz wpisaniem adresu bezpośrednio do tego pliku to ciastko działa.
Zakładając, że plik ciastko.php znajduje sie na serwerze pod takim adresem: www.mojadomena.pl/katalog/ciastko.php i jest on zapisany bez żadnych stylów i innych dodatków typu:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="Stylesheet" type="text/css" href="style.css" />
<title></title>
</head>

czyli taki prosty plik:

<?php
setcookie("ciastko","wartosc", 0);
?>

jak wchodzę bezpośrednio przez ten adres: www.mojadomena.pl/katalog/ciastko.php to ciasteczka działają no ale strona jest czarno biała. Jak chcę wejść na stronę aby były style, jej wygląd czyli: www.mojadomena.pl/index.php?id=katalog/ciastko to nic nie chce działać. Dodam, że serwer mam na AZ.pl i moi znajomi też mają problem z ciasteczkami oraz sesjami. Czyli wychodzi na to że serwer jest źle ustawiony? Prosiłbym was o jakieś wskazówki biggrin.gif
viking
Nie, to programista źle pisze. Przeczytaj sobie podstawy protokołu HTTP później zajrzyj na dokumentację setcookie

Cytat
Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace.


A jak już ogarniesz temat to jeszcze włącz raportowanie błędów po PHP jasno tam wyświetla warning.
Krystian950414
viking dziękuję Ci za pomoc biggrin.gif po włączeniu wyświetlania błędów okazało się, że problem tkwi w głównym pliku index.php który znajduje się w w głównym katalogu, a dokładnie wskazywało linijkę:

<?php (błąd pojawiał się tutaj)
if(isset($_GET['id'])){include($_GET['id'].'.php');}else{include('strona1.php');}
?>

usuwałem entery, spacje ale to nic nie dawało. Cały czas błąd: Cannot modify header information - headers already sent. Pomagało przeniesienie wspomnianych linijek na samą górę przed nagłówki, ale wtedy strona źle wyglądała, ponieważ całe menu było poniżej treści strony. Szukając na ten temat informacji znalazłem rozwiązanie, które polegało na włączeniu bufora wyjściowego. Teraz wszystko śmiga, ale jestem ciekawy dlaczego bez tego nie chciało działać. Dodam, że skrypt strony miałem gotowy, możliwe więc, że został on źle zrobiony? Tzn nieprawidłowa kolejność nagłówków itp? Czy może tylko powyższy kod jest źle napisany? smile.gif
viking
A czytałeś w ogóle linki które podałem? Bo obie informacje był tam podane jak na tacy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.