Autor | Zpráva | ||
---|---|---|---|
zoznamik Profil * |
#1 · Zasláno: 4. 2. 2007, 11:20:45
Prosim Vas poradte mi ako sa ma spravit, ze prehliadac zaznamena cookies a potom
naslednu kontrolu ci uz je dane cookies zapisane v prehliadaci. Mam taketo nieco <?php session_start; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Anketa</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <? require("db/connect.php"); // spojenie s databazou ....prikazy global $_COOKIE; //kontrola ci uz nebolo hlasovane if ($_COOKIE['anketa2Voted']){ echo "hmm"; } SetCookie('anketa2Voted'); ?> pise mi takuto chybu: Warning: Cannot modify header information - headers already sent by (output started at C:Programmexampphtdocs\_programyanketyanketa.php:11) in C:Programmexampphtdocs\_programyanketyanketa.php on line 103 co mam zle? preco mi to nejde? Poradte mi niekto. Dakujem velmi pekne. |
||
Mireczech Profil |
#2 · Zasláno: 4. 2. 2007, 11:28:38 · Upravil/a: Mireczech
Nekde Headrem presmerovavas, ale uz predtim ti jde ze scriptu nejaky vystup.
|
||
Mireczech Profil |
#3 · Zasláno: 4. 2. 2007, 11:31:41 · Upravil/a: Mireczech
Jinak jeste prototyp fce session_start(): bool session_start ( void )
|
||
zoznamik Profil * |
#4 · Zasláno: 4. 2. 2007, 11:59:04
ale nikto ste mi neporadil...prosim kde mam chybu ;((
Nekde Headrem presmerovavas ==> nepresmerovavam.... inak nemusi byt niekde v php.ini nastavene ze nech povoluje cookies? |
||
tiso Profil |
#5 · Zasláno: 4. 2. 2007, 12:10:49
zoznamik
session_start i setcookie sú funkcie čo odosielajú hlavičky, takže hádaj čo musíš urobiť? |
||
Joker Profil |
#6 · Zasláno: 4. 2. 2007, 12:14:29
zoznamik
Funkce upravující HTTP hlavičky, mezi které patří i setcookie() (nebo například header() a většinou i session_start() ) se musí volat dřív, než se odešle jakýkoliv výstup na klienta. Jednoduchá pravidla jak to udělat: - Soubor musí začínat otevírací značkou PHP, před ní nesmí být ani mezera (tj. například aby prvních 6 znaků souboru bylo "<?php ") - Volání příslušné funkce (setcookie(), header() apod.) musí být hned v tom prvním bloku skriptu (tj. mezi začátkem souboru a voláním funkce nesmí být skript nikde přerušen) - Před voláním té funkce nesmí být žádná funkce, která odešle nějaký výstup, jako třeba echo(). Metody jak toto zajistit: - Vyřídit tyhle funkce vždycky hned na začátku skriptu (obvykle před nimi dělám maximálně nějaké nastavování proměnných) - Mít web udělaný v šablonách, kdy se veškerý výstup ukládá do šablony a první odeslání výstupu na klienta je typicky až poslední příkaz před ukončením skriptu (zobrazení šablony) - Používat output buffering |
||
Mireczech Profil |
#7 · Zasláno: 4. 2. 2007, 13:01:54
Sry v te chybe jsem se prehlidl, ale pricina byla stejna,...
|
||
gaudino Profil * |
#8 · Zasláno: 5. 2. 2007, 13:59:52
zkus to cele udelat s bufferovanym vystupem....
udelas to tak, ze cely skript uzavres do od_start(); //cely skript ob_end_flush(); mohlo by to helpnout......dej vedet |
||
gaudino Profil * |
#9 · Zasláno: 5. 2. 2007, 20:56:16
sorry..to prvni je ob_start();
|
||
anonym Profil * |
#10 · Zasláno: 6. 2. 2007, 12:55:08
mám stejný problém, nefunguje mi to na mým domácím serveru ale třeba na internetu mi to funguje, podle mě musí být problém v nastavení ne? mám easyphp
|
||
Časová prodleva: 13 dní
|
|||
Danteman Profil * |
#11 · Zasláno: 19. 2. 2007, 13:27:05
Pokud se Vám toto ukazuje na serveru, tak nevim - je to jejich chyba(nemají nastaveny headery kvůli bezpečnosti - nesmysl), ne Vaše. Pokud máte domácí server nemáte nastavený ini soubor. Já na locala používam EasyPHP a tam to najdete: Složka s php/conf_files/php.ini
řádek 110 |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0