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
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
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
nebude, spíš naopak.
holi
Profil
Tak to jste mne potěšil, děkuji za radu a poučení do budoucna.
holi
Profil
A sakra po umístěni do indexu to zase nefunguje. hláška se nezobrazí
Alphard
Profil
[#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
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: