Autor | Zpráva | ||
---|---|---|---|
holi Profil |
Zdravím, po doporučení jedno z vás jsem si udělal tuto hlášku http://php.vrana.cz/informovani-uzivatele-o-vysledku-operace.php mám ji danou na mazání obrázků, konkrétně kontroluje po unlinku jestli existují soubory, pokud ano odešle přes session zprávu, že byl smazán, pokud ne, odešle, že nebyl. Ten script ze začátku byl blbě napsán, protože je tam jedna triviální chyba kterou jsem si opravil. Jenže zase se nic v dalším souboru nevypisovalo dokud jsem nad to nedal session_start(). Jenže s přidáním této funkce mi vyskočila tato chyba:
"Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\www\tomasholan.eu\admin\index.php:9) in C:\www\tomasholan.eu\admin\gallery.php on line 2" Zdrojové kody: <?php //Soubor delete.php if (file_exists("../galerie/projekty/thumb/".$name)){ unlink ("../galerie/projekty/thumb/".$name);} if (file_exists("../galerie/projekty/large/".$name)){ unlink ("../galerie/projekty/large/".$name);} if(file_exists("../galerie/projekty/full/".$name)) { unlink ("../galerie/projekty/full/".$name);} session_start(); $_SESSION["message"] = "<center>Obrázek ".$name." byl smazán.</center>"; header('location: index.php?admin=gallery'); } //soubor gallery.php <?php session_start(); if (isset($_SESSION["message"])) { echo "<p>".$_SESSION["message"]."</p>"; unset($_SESSION["message"]);} ?> tu chybu mi to píše v souboru gallery.php. Ještě jsem zapoměl podotknout že chybu mi to sice vypíše, ale hlášku taky, zkoušel jsem dát ten script s vypsáním uplně nahoru v souboru gallery.php, ale efekt je stejný |
||
AM_ Profil |
#2 · Zasláno: 14. 1. 2011, 19:37:30
session_start() posílá hlavičky, tudíž musí předcházet jakémukoli výstupu. ta chyba znamená, že v souboru index.php na řádce 9 něco vypisuješ, a pak teprve se volá session_start().
Obecně pokud máš jeden index.php, který includuje ostatní soubory, měl by být session_start() na úplném začátku toho indexu a nikde jinde. |
||
holi Profil |
#3 · Zasláno: 14. 1. 2011, 19:40:28
a nebude to teda žádná chyba dát session_start() do indexu i kdyžž v něm session vůbec nevyužívám
|
||
AM_ Profil |
#4 · Zasláno: 14. 1. 2011, 19:42:07
nebude, spíš naopak.
|
||
holi Profil |
#5 · Zasláno: 14. 1. 2011, 19:42:58
Tak to jste mne potěšil, děkuji za radu a poučení do budoucna.
|
||
holi Profil |
#6 · Zasláno: 14. 1. 2011, 19:52:09
A sakra po umístěni do indexu to zase nefunguje. hláška se nezobrazí
|
||
Alphard Profil |
#7 · Zasláno: 14. 1. 2011, 23:10:49
[#6] holi
print_r($_SESSION["message"]); je v pořádku?
Na jinou stránku než index.php se nedostáváte? Muselo by tam být session_start(). Napište více podrobností. |
||
holi Profil |
#8 · Zasláno: 14. 1. 2011, 23:59:30 · Upravil/a: holi
v souboru index.php mám nahoře nad vším <?php session_start() ?> pak mám soubor gallery.php na který se dostávám pomocí index.php?admin=gallery
z něj mažu soubory pomocí souboru delete.php a v něm mám toto: <?php if (file_exists("../galerie/projekty/thumb/".$name)){ unlink ("../galerie/projekty/thumb/".$name);} if (file_exists("../galerie/projekty/large/".$name)){ unlink ("../galerie/projekty/large/".$name);} if(file_exists("../galerie/projekty/full/".$name)) { unlink ("../galerie/projekty/full/".$name);} session_start(); $_SESSION["message"] = "<center>Obrázek ".$name." byl smazán.</center>"; header('location: index.php?admin=gallery'); } ?> Stráka se přesměruje z5 do index.php?admin=gallery a mel by vypsat hlášku pomocí. <?php if (isset($_SESSION["message"])) { echo "<p>".$_SESSION["message"]."</p>"; unset($_SESSION["message"]);} ?> ale nevypíše když to v gallery udělám takto <?php session_start(); if (isset($_SESSION["message"])) { echo "<p>".$_SESSION["message"]."</p>"; unset($_SESSION["message"]);}?> takto sice vypíše, ale zároveň se tam objeví chyba z prvního příspěvku. řešením mělo být dát právě session_start() do indexu ale to se hláška zase neobjeví ale ani chyba. edit:/ print_r() též nepomohl |
||
Časová prodleva: 13 let
|
0