Starší komentáře ke článku: Hlavičky (headers) v PHP

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Molir

Datum vložení: 9.8.2001 10:50:57

URL v Location musi byt absolutni? Sakra sakra, to by me zajimalo, proc mi funguje i relativni ;-) treba pri presmerovani po zpracovani dat odeslanych formularem na "vysledkovou" stranku... a ze to pouzivam skoro porad, IMO je Location nejpouzivanejsi hlavickou v PHP aplikacich...

Avatar

Autor komentáře: Jarda

Datum vložení: 9.8.2001 11:03:36

taky je na okresce maximalne 90 a dost lidi jezdi jako prase :)

holt norma je norma.. ale prohlizece to zvladnou, tak jaka krec :)

Avatar

Autor komentáře: Mirek

Datum vložení: 9.8.2001 11:52:33

$headers neni $hadr
takze ten priklad nefunguje.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 10.8.2001 13:17:19

Rád bych jen podotkl dvě věci. Location by sice podle normy mělo být uváděno absolutně, nicméně funguje i s relativním odkazem. IMHO nutit všechny k absolutním zápisům je pěkný nesmysl ze strany tvůrců norem. Dále se pak také tvrdí, že Location, stejně jako ostatní hlavičky, musí být prohlížeči odeslána před jakýmkoli obsahem (HTML, obrázek a pod.). Toto také není tak úplně pravda - například Apache předešlé verze s PHP v4.0.4 akceptoval hlavičku Location kdekoli, teprve nejnovější verze dvojice Apache+PHP generuje chybu.


BTW: Používám Location k pohybu mezi jednotlivými skripty. Nevíte o nějaké jiné metodě?

Avatar

Autor komentáře: rasto

Datum vložení: 20.8.2001 20:21:36

jaksi mi neni jasne jak docilit aby mi php automaticky psalo kdy jsem dokument naposled modifikoval. diky za odpoved

Avatar

Autor komentáře: Quip

Datum vložení: 23.8.2001 2:40:10

posledni upravy <?php echo Date("H:i ~ d.m. Y", GetLastMod()); ?>

Avatar

Autor komentáře: Quido

Datum vložení: 24.11.2001 1:27:29

No jak bych to rekl ja jsem sam zkousel ruzne vystavovani hlavicek, ale nijak se
mi nepodarilo tuhle promennou dostat. Na ruznych maillistech jsem potkal nazor,
ze tato promenna zalezi na tom jak je nastaveny webserver. Vetsinou jsem postrehl
{nazyval bych to takto, protoze ja jsem zacatecnik v Php}, ze tuto moznost lide
pouzivaji k identifikaci napr. pro prohlizec kdy byla stranka modifikovana.
Napr.takovymto skriptem:
$MTime = filemtime($SCRIPT_FILENAME);
$LMTime = date("D, d M Y H:i:s G\MT", $MTime);
Header("Last-Modified: $LMTime");
//echo "Header(\"Last-Modified: $LMTime\");";

Domnivam se, ze tato moznost je k pouziti, ale zatim jsem ji neodzkousel.
Ja radsi pouzivam "hloupy" vlastni skript pro zobrazeni informace
kdy byla stranka updatovana. Pravda to se prede mnou prispel
pan Quip tak funguje, ale uz jsem narazil na problem toho, ze tvurce
nemodifikoval jenom hlavni soubor (kde vetsinou tento priklad byva vlozen),
ale napr. jiny soubor v adresari ktery neincludoval, ale ktery ja dal pouzivany.
Proto pouzivam tento skript:

<?php
################################################################
# #
# Vypis datumu posledniho zapisu v adresari #
# quido@users.sourceforge.net Y2k1 pro PHP4 #
# #
################################################################

/// nastavime si nektere veci:
$mesice = array(1=>"ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"); /// cz ;o))
$nejmladsi=0; ///nastavim hodnotu nejmensi na nulu abychom z nej neco dostali
$soubor_arr = Array();
$cesta_k_adresari=""; ///pokud se toto zmeni na jmeno adresare tak se bere jiny adresar. sam mam vyzkouseno relativni cesty
/// ----------- nactu si vsechny soubory v aktualnim adr.
if($cesta_k_adresari != "") chdir($cesta); ///tady se meni cesta ovsem za predpokladu ze nejaka zmena je ;o) jinak bere aktualni dir
$dir = opendir(".");
while($file_in_dir=readdir($dir))
{
if( (!eregi("^(.|..)$",$file_in_dir) ) && ( !Is_Dir("$file_in_dir") ) ) $soubor_arr[] = $file_in_dir;
}
CloseDir($dir);
Sort($soubor_arr); ///radsi setridim soubory v poli
/// ----------------- konec nacteni
/// a ted nasleduje pruchod souborama a zjistovani ktery je nejmladsi
foreach($soubor_arr as $pocet_souboru_v_addr => $soubor)
{
if (filemtime($soubor)>$nejmladsi) ///podminka zjistovani stari
{
$nejmladsi=filemtime($soubor);
$nejmladsi_jmeno=$soubor;
}
}
$pocet_souboru_v_addr++; ///pripocitam jednicku protoze zacatecni index pole je 0
$datum=date("d ",$nejmladsi).$mesice[(int)Date("m", $nejmladsi)].date(" Y \v H:i:s.", $nejmladsi); /// vypis upravim do Cs podoby
/// a nasleduje nasledny vypis zjistenych potreb ;o)
echo "Poslední zápis byl proveden v souboru <B>".$nejmladsi_jmeno."</B> dne ".$datum." z celkem ".$pocet_souboru_v_addr. " souborů." ;
?>

Tento skript je variabilni a da se dal upravit na rekursivni prochazeni adresaru
v pripade, ze se napise jako funkce.Pak by nemel byt problem pouzivat ho
kompletni strom aplikace. Ochrana proti tomu aby nevypisoval skryte
soubory je taky nasnade takze to by bylo vse.
Nevim jestli pomuze a ani nevim jestli jsem zpravne pochopil dotaz,
ale doufam, ze to pomuze. Jinak bych mel upozornit, ze tento priklad
by mel fungovat pod PHP4 (teda hlavne to foreach), ale mel by se dat prepsat
i pod PHP3. Mozna bych to k lepsimu pouziti prepsal na tu funkci.
Uf, tak jsem se vypsal. Pokud se Vam to nekomu nelibilo tak ;o))
Q.
Ps:pokud chcete nekdo vic nastudovat problematiku headers
tak se podivejte na:
<a href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html' target='_blank'>http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html</a>
jinak tento odkaz jsem ziskal na:
<a href='http://www.php.net/manual/en/function.header.php' target='_blank'>http://www.php.net/manual/en/function.header.php</a>

Pss:Az ted jsem si vsiml jak tenhle prispevek vypada v teto velikosti,
takze jestli chcete mit ten muj priklad zpravne a prehledne zobrazeny
podivejte se ne nej treba v Joeovy || Notpadu.

Psss:A taky nevim jak tento prispevkovac zobrazi ten bold na
na vypisu toho infa v tom mem prikladu.

Avatar

Autor komentáře: Pavel Koukolicek

Datum vložení: 23.3.2002 11:35:52

Vite nekdo, jak v hlavicce poslat falesne IP ?? (aby se to tvarilo jako IP pocitace, ze ktereho prisel pozadavek)

Avatar

Autor komentáře: frankie

Datum vložení: 9.12.2004 14:09:39

nasiel si nejaku moznost?

Avatar

Autor komentáře: Martin

Datum vložení: 11.4.2005 15:04:36

header("referer: www.google.com"); 8-D

Avatar

Autor komentáře: hrrrrdl

Datum vložení: 5.5.2003 20:49:36

Accept-Charset: windows-1250; q=0.7, us-ascii; q=0.3

jak je to s temi carkami a stredniky?

Avatar

Autor komentáře: Dr.Eggm@n

Datum vložení: 19.7.2007 8:47:15

Ak chete presuvat stranku cez header("location"); a chete ho pouzit napr. v strede kodu pise vam chybu. Ja mam fintu ako to spravit. To je kod: Toto pred <HTML> <?php function url($adresa) { header("location: ".$adresa); exit; } ?> a potom hocikde v kode toto: <?php url("http://interval.cz"); ?>

Avatar

Autor komentáře: rob

Datum vložení: 23.1.2009 21:46:09

uvedná rada mi vrací: Warning: Cannot modify header information - headers already sent by (output started at...

Zpět na článek | Úvodní stránka Interval.cz