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.