Autor | Zpráva | ||
---|---|---|---|
slovacik Profil * |
#1 · Zasláno: 11. 2. 2010, 23:05:05
ahoj zasa som tu.. Sorrač , že zasa otravujem .. ale toto je fakt maličkosť. Normálne nájdem vela veci na google ale toto neviem ani ako by som tam mal hladat.. tak vám skusim vysvetliť o čo asi ide...
Mám formulár, ktorý keď odošlem má zapísať do .txt dokumentu nejaký text... A teraz ten problem: vždy ked refresh-nem stránku ten text sa mi zapíše znova do dokumentu... Malo by to vyriešit hlavičky resp hlavička .. lenže neviem ako ju v tomto prípade využiť... Ďakujem za reakcie. |
||
kvoky Profil |
#2 · Zasláno: 11. 2. 2010, 23:14:17 · Upravil/a: kvoky
Nejjednodussi je po odeslani formuláře přesměrovat stránku na nějakou stránku, na které bude hláška že se vše odeslalo, popřípadě na sebe samotnou před odesláním.
asi takhle: header("location:".$url); |
||
slovacik Profil * |
#3 · Zasláno: 11. 2. 2010, 23:32:01
prave tu je ten problem.. ja chcem aby ho poslalo na tu istú stránku..
|
||
kvoky Profil |
#4 · Zasláno: 11. 2. 2010, 23:44:52
jestli chces pred odesláním tak není nic jednoduššího než tohle:
header("location:".$_SERVER["PHP_SELF"]); tak trochu ale tusim, ze pouzivas klasiku: if (!$POST){ //Ukážeme formulář }else{ //Zápis do souboru echo "Do souboru bylo zapsáno"; } V tom případě nejde rozlišit jestli si refreshoval nebo ne, asi to budes muset trochu predelat. |
||
slovacik Profil * |
#5 · Zasláno: 12. 2. 2010, 03:13:39
Prosim ťa mohol by si mi to ošetriť nejak? Lebo už sa s tym hram dlho a stále to isté... Alebo i keby niekto iný poradil budem len rád..
<? if(isset($_POST['odoslat'])==0){ echo"Nevyplnili ste spravu <br />"; $subor= fopen("text.txt","r"); $txt=fgets($subor); $citaj=readfile("text.txt"); echo $citaj; fclose($subor); } else if (isset($_POST['odoslat'])==1) { echo "<h3> odoslané</h3>"; $farba='<bgcolor="#CCCCCC">'; $subor= fopen("text.txt","a+"); $txt=fgets($subor); $medzera=" "." "; $cas = "<b>".date("H:i:s")."</b>"; fwrite($subor,$cas.$medzera."{$_SESSION['meno']}"."<b>:</b>".$medzera.$sp.'<br />'); $citaj=readfile("text.txt"); echo $citaj; fclose($subor); } ?> |
||
AM_ Profil |
#6 · Zasláno: 12. 2. 2010, 10:10:58 · Upravil/a: AM_
slovacik:
„isset($_POST['odoslat'])==0“ funkce isset vrací true nebo false. porovnání s 0 funguje stejně jako s false, ale je to trošku vepřový zápis. Celkově ten kód je trochu hrozný, pokusil jsem se ti ho trochu opravit. Hlavně proboha to odsazování kódu, kde jsi přišel na to, že se odsazuje každý řádek o kus víc? <?php //Nevynechávat!!! if(!isset($_POST['odoslat'])){ //vykřičník znamená NOT if (!empty($_GET['sent'])){ echo "Zprava odeslana"; } else { echo"Nevyplnili ste spravu <br />"; //Dobrý zvyk je nejdřív výkonný kód, potom výstup, proto jsem výpis přesunul sem } readfile("text.txt");//ČTE SOUBOR PŘÍMO NA VÝSTUP, TAKŽE ŽÁDNÉ FOPEN, ŽÁDNÉ FGETS, ŽÁDNÉ ECHO } else { // toto vyhoď úplně, je to tam zcela nesmyslně, prostý else stačí: if (isset($_POST['odoslat'])==1) { // žádný výstup nebude, potřebujeme přesměrování echo "<h3> odoslané</h3>"; //k čemu je tohle? nevidím, že by se někde dál tahle proměnná využila: $farba='<bgcolor="#CCCCCC">'; $medzera=" "." "; $cas = "<b>".date("H:i:s")."</b>"; fwrite($subor,$cas.$medzera."{$_SESSION['meno']}"."<b>:</b>".$medzera.$sp.'<br />'); //Tohle vyhodit, nic vypisovat nebudeme, přesměrujeme se. Nicméně i tak je to špatně, funkce readfile() //vypisuje rovnou na výstup a vrací integer, takže tím echem vypisuješ pouze číslo reprezentující výsledek funkce readfile // $citaj=readfile("text.txt"); // echo $citaj; fclose($subor); header("location: {$_SERVER['PHP_SELF']}?sent=1"); //jádro pudla jest zde die(); //nemá smysl dál něco vykonávat } |
||
slovacik Profil * |
#7 · Zasláno: 12. 2. 2010, 12:38:43
Diky už to šlape.. len stáale to ma zádrhel.. ako sa zbavím toho čisla v tom dokumente ? vždy po odoslaní novej správy sa to čislo zvýši.. Dá sa to zaolat i inak teda ako je funkcia
read_file() |
||
AM_ Profil |
#8 · Zasláno: 12. 2. 2010, 13:13:19
Opravil jsem to přímo v minulém příspěvku. Nic proti, ale na php.net je velice kvalitní referenční příručka k PHP, kde si může každý sám zjistit, jak se která funkce používá. Náhodné zkoušení funkcí, které jsi někde okoukal, nevede k dobrým výsledkům.
|
||
slovacik Profil * |
#9 · Zasláno: 12. 2. 2010, 13:20:45
lenže mne to stále vypisuje to číslo i ked presne skopčím ten skript od teba... Btw toto co som pisal bol môj script.. kedže som začiatočník tak bolo aj videt ten chaotický zápis..
|
||
nightfish Profil |
#10 · Zasláno: 12. 2. 2010, 13:22:51 · Upravil/a: nightfish
slovacik:
„lenže mne to stále vypisuje to číslo i ked presne skopčím ten skript od teba“ to bude tím, že ti AM_ ten skript i okomentoval co se vypisovaného čísla týká, doporučuji přečíst komentáře na řádcích 17 a 18 v [#6] |
||
slovacik Profil * |
#11 · Zasláno: 12. 2. 2010, 13:32:18
oke vyriešene.. ako som opravoval script prave tie dva riadky som tam nejak vsunul.. Diky moc
|
||
Časová prodleva: 14 let
|
0