Ako v PHP zapisat data do html
4 příspěvky
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Potrebujem spravit nieco ako jednoduchy chat. A neviem dostat data z formularu odoslaneho na server do dokumentu html a znovu nacitat zmeneny subor.
-
Nevím, jak přesně myslíš to "dostat do html dokumentu a znovu ho načíst". Pokud nevíš, jak se přenášejí data mezi jednotlivými stránkami, tak ti ten chat dá ještě zabrat. Data z formuláře na jedné stránce se do druhé přenášejí dvěma základními způsoby. V tagu <FORM> nastavíš do vlastnosti "action" soubor, na který se mají informace přenést a do vlastnosti "method", která metoda http protokolu se má využít. Ty využiješ buď metodu GET nebo POST. GET připojí data za doménovou adresu (http://wz.cz/forum/read.php?xyz=2345&abc=efg&t=4834) POST je posílá zvlášť. Na té druhé stránce máš potom tato data přístupná v podobě tzv. superglobálních proměnných (jsou to vlastně asociativní pole - pole obsahující data z formuláře) $_GET a $_POST. K proměnným "xyz", "abc", "t" se potom dostaneš: $_GET['xyz'], $_GET['abc'], $_GET['t'] nebo $_POST['xyz'], $_POST['abc'], $_POST['t']
-
tak predevsim se asi nebude jednat o dokument html, ale o dynamicky generovanou html stranku... pokud zvladnes odeslat z formulare data a prijmout je (popsano v predchozim prispevku), tak uz staci mit na disku nejaky textovy soubor, ktery bude obsahovat "chat" - napr. poslednich dvacet prispevku. jak si ho zformatujes, to uz je na tobe. pak uz staci soubor otevrit, z prijatych dat do nej pridat novy prispevek (popripade odebrat nejstarsi - vytvorit cely soubor znovu), soubor uzavrit a pak ho nacist do dynamicky generovane html stranky chatu - tedy vse pres php, zadne staticke html dokumenty. pokud jsme si nerozumeli, tak se omlouvam...
-
No já to dělám tak, že: <? if ($Zprava!=""): SetLocale(LC_ALL, "Czech"); //Nastavení češtiny $fp=FOpen("./zpravy.html","a"); //Zapsání příspěvku do souboru: FPutS($fp,"<B>$REMOTE_USER </B> "); FPuts($fp,StrFTime("(%A %d. %B): ")); FPutS($fp,NL2BR(HTMLSpecialChars($Zprava))); FPutS($fp,"<BR><BR>\n"); FClose($fp); Header("Location: http://$SERVER_NAME$SCRIPT_NAME"); //Presmerovani zpet! Proto musí být tahle php část na začátku stránky- //ani volný řádek nesmí být před tím! exit; endif; ?> <!-- Tady můžeš mít nějaký začátek stránky, cokoliv --> <HR> <?php include("zpravy.html"); /*To je ta moje html stránka, bez hlavičky a bez patičky, jen ty příspěvky */ ?> <HR> Zde můžeš napsat svůj příspěvek: <FORM METHOD=POST> <TEXTAREA NAME="Zprava" Cols="90" Rows="6"> </TEXTAREA> <INPUT TYPE="Submit" Value="Odeslat"> </FORM> <!-- Zbytek stránky --> Mám to v adresáři, kde se musí člověk přihlásit, proto nežádám jméno a čtu jej z $REMOTE_USER.