Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



PHP a session_start(); header;

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: PHP a session_start(); header;

Autor: zidakk ♂

17:01:59 10.01.2013

dakujem

Citovat příspěvek

 

Re: PHP a session_start(); header;

Autor: peta1 ♂

13:29:22 10.01.2013

Prikaz session, header pracuje s hlavickou pro data k odeslani
Prikaz echo, printr, var_dump, <??> abc <??>, abc <??> vypisuje obsah do dat k odeslani a hned je odesle.
Kazde echo tedy odesila uzivateli data + hlavicku. tak je bezne nastaveny server.
Dalsi pricinou muze byt kodovan UTF, kdy nektere editory vnuti do souboru znak pro utf, nazyvany BOM. Je treba pouzit editor, ktery tam ten znak neda. Znak pred zacatkem php kodu je povazovan jako data k odeslani.

Co s tim? Jsou dva zpusoby:
1. Ukladat data do promennych a vypsat az po zpracovani php kodu.
Nez uzivateli neco vypises, tak se php kodem rozhodnes, co to bude nebo jesli mu nastavis session ci presmerujes na jinou stranku pomoci header.

2. Zacnes stranku ob_start. Ob_flush se na konci uvadet nemusi. Start echa neodesila, ale uklada do pameti a flush obsah pameti odesle uzivateli.
I v tomto pripade je ale lepsi pouzit usporadani nejdriv php kod a az pak vypis uzivateli.

3. Vypnout hlaseni warningu (na serveru nebo pomoci error_reporting). Co oci nevidi...On sice pise chybu, ale podle nastaveni serveru to nekdy funguje a generuje novou hlavicku.
A tez, zobrazeny warning, jsou odesilana data. Takze, pokud mas v kodu chybu a zobrazi se warning, pak se muzou objevit i hlasky na header a session. Kdyz tam chybu nemas, pak je to ok.

abc <? session(); ?> // odesila hlavicku + text abc, session napise error
<? echo 123; session(); ?> // odesila hlavicku + text 123, session napise error
<? printr($array); session(); ?> // odesila hlavicku + text vypisu pole, session napise error
EFBBBF(hexa)<? session(); ?> // odesila hlavicku + text utf-8 bomu, session napise error
EFBBBF(hexa)<? ob_start(); session(); ?> // odesila hlavicku + text utf-8 bomu, session napise error, ob_start je uz bohuzel volane pozde ($utf8_with_bom = chr(239) . chr(187) . chr(191);)

Ono se muze zdat, ze utf-8 bom je pekne oskliva vec, ale kdyz potrebujes exportovat data z databaze do csv a otevrit v excelu, tak excel podle toho pozna, ze mas kodovani utf8 a ne latin1 nebo win1250. Ale zrovna v php kodu je to fujka.

Citovat příspěvek

 

PHP a session_start(); header;

Autor: zidakk ♂

12:39:48 08.01.2013

zdravim, mam problem, v index.php si na zaciatku spustim session_start(); a chcem to vyuzit na overovanie, ci je uzivatel prihlaseny alebo nie, ale vsade kde vyuzijem session_start() tak mi stale tam hlasi warovanie:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started

mam v indexe alebo v inych skriptoch napr. kde sa prihlasuje a vyuziva sa session pouzit exit; ? alebo neviem preco mi to hadze chybu.

tiez mi chybu hlasi

header('Refresh: 2; url=index.php?page=status');

to chcem spustit po prihlaseni aby sa vratilo k index.php a tam v casti status aby bolo uz ze kto je prihlaseny a aby ukazalo casti stranky, ktore su len pre prihlasenych uzivatelov. som zaciatocnik tak dakujem za akukolvek pomoc :)

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: