Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziwny warning
Forum PHP.pl > Forum > Gotowe rozwiązania
mouk
Mam sobie taki skrypcik, ktory w moim sklepie ma wyswietlic wszystkie produkty alfabetycznie i ewentulany wybrany produkt dodac do koszyka.

Skrypt wyglada tak:
alfabetycznie.php

[php:1:a2d099977f]<?php

<html>
<head>
<title>Produkty posortowane alfabetycznie</title>
<LINK rel="stylesheet" href="style.css" type="text/css">

</head>
<body>
<?

if (!isset($user_id)) {
$token = md5(uniqid(rand()));
setcookie("user_id",$token,time()+86400,"/","ksiegarnia.com.pl");
}



$connection = mysql_connect ("localhost")
or die ("nie mozna nawiazac polaczenia z serwerem");


$db = mysql_select_db("ksiegarnia", $connection) or die ("Nie mozna wybrac bazy danych");

$sql = "select IDksiazki,tytul,autor, cena, kategoria from ksiazki order by tytul asc";

$sql_result = mysql_query ($sql, $connection) or die ("Nie moge pobrac listy ksiazek");



?>

<center><h1> Produkty posortowane alfabetycznie:</h1> </center>
<br><br>


<?
while ($row = mysql_fetch_array($sql_result))
{

$IDksiazki = $row["IDksiazki"];
$tytul = $row["tytul"];



echo "<br>-<a href ="pokaz_ksiazke.php?IDksiazki=$IDksiazki">$tytul</a><br>";
}
?>


</body>
</html>


?>[/php:1:a2d099977f]

po wyswietleniu tej strony pojawia mi sie taki warning:

Warning: Cannot add header information - headers already sent by (output started at c:foxservwwwalfabetycznie.php:8) in c:foxservwwwalfabetycznie.php on line 12

Czy ktos wie co w tym wszystkim jest nie tak?
Foxx
nie taki znowu on dziwny...
Cytat
setcookie() określa ciasteczko (ang. cookie) do wysłania z nagłówkami HTTP. Ciasteczko musi być wysłane zanim jakiekolwiek inne nagłówki zostaną wysłane (to jest ograniczenie ciasteczek, nie php). To wymaga od ciebie umieszczenia wywołań tej funkcji przed znacznikami <html> czy <head>.

czyli tuż za "<?"
nawet zaplątana spacja powoduje ten błąd
cichy
To pojawia się dlatego że ciacho
[php:1:648e1026cb]<?php
setcookie("user_id",$token,time()+86400,"/","ksiegarnia.com.pl");
?>[/php:1:648e1026cb]
musi być wysłane do przegladarki przed czymkolwiek innym.
A Ty masz na początku skryptu:
Kod
<html>

<head>

<title>Produkty posortowane alfabetycznie</title>

<LINK rel="stylesheet" href="style.css" type="text/css">



</head>

<body>

Co uniemożliwia mu wysłanie ciasteczka.
Pozdrawiam
Ive
jeśli to nie pomoże (bo ja miałem czasami problemy z wyniesieniem przed te tagi to polecam walnąć na początku strony funkcję ob_start() a po zalogowaniu ob_end_flush()
mouk
Wielkie dzieki, rzeczywiscie pomogło, mam kilka ksiazek o php, a nigdzie tam nie bylo napisane, ze cookies-y musza byc na samykm początku.
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.