Autor | Zpráva | ||
---|---|---|---|
nicneveda Profil * |
#1 · Zasláno: 5. 5. 2013, 18:00:28
Ahoj, chtěl bych se zeptat jak z formuláře uložit "příspěvek" do části php nebo html souboru. Třeba takhle:
<html> <head> <title>Má první stránka</title> </head> <body> SEM BY SE ULOŽILA DATA </body> </html> |
||
Chro Profil |
#2 · Zasláno: 5. 5. 2013, 19:11:27
Ve zpracovávajícím skriptu si složíš řetězec a ten uložíš do souboru.
$html_start = '<html>...'; if (get_magic_quotes_gpc()) { $_POST['text'] = stripslashes($_POST['text']); } $html_end = '</body></html>'; file_put_contents('soubor.html', $html_start.$_POST['text'].$html_end, LOCK_EX); |
||
nicneveda Profil * |
#3 · Zasláno: 5. 5. 2013, 19:18:42
No právě, mě jde o to jak napsat ten zpracovávající skript...
|
||
Chro Profil |
#4 · Zasláno: 5. 5. 2013, 20:40:39
Tak začnem s formulářem. Ten si vlož třeba do souboru index.php
<form action="zpracuj.php" method="POST"> <textarea name="text" cols="30" rows="20"></textarea><br> <input type="submit" name="odeslano" value="Odeslat"> </form> <?php if (isset($_POST['text']) && isset($_POST['odeslano'])) { $html_start = '<html> <head> <title></title> </head> <body> '; if (get_magic_quotes_gpc()) { $_POST['text'] = stripslashes($_POST['text']); } $html_end = ' </body> </html>'; if (file_put_contents('soubor.html', $html_start.$_POST['text'].$html_end, LOCK_EX)) { echo 'data byla vlozena do <a href="soubor.html">soubor.html</a>'; } else { echo 'chyba pri vkladani dat'; } } ?> |
||
nicneveda Profil * |
#5 · Zasláno: 6. 5. 2013, 16:54:20
Ano, to uloží třeba text "auto" jenže tím přepíše celý dokument. Já potřebuji aby se text vložil do určité části dokumentu, viz. moje první otázka...
|
||
Tori Profil |
#6 · Zasláno: 6. 5. 2013, 16:58:06
|
||
nicneveda Profil * |
#7 · Zasláno: 6. 5. 2013, 17:02:23
Problém je že v jazyce PHP se nevyznám, neumím ho... A tak je těžké si něco napsat sám.
|
||
Tori Profil |
#8 · Zasláno: 6. 5. 2013, 17:18:13
nicneveda:
Aha, tak už jsem si přečetla celé vlákno. [#4] funguje stejně jako to, co jsem navrhovala. „to uloží třeba text "auto" jenže tím přepíše celý dokument.“ A co by to tedy mělo dělat? 1. Opakovaně přepisovat pouze jednu část téhož dokumentu? anebo 2. Po každém odeslání formuláře vytvořit nový dokument? 3. ...? |
||
nicneveda Profil * |
#9 · Zasláno: 6. 5. 2013, 17:29:06 · Upravil/a: nicneveda
Takhle... Mám dokument:
<html> <head> <title>Má první stránka</title> </head> <body> -nová uložená data- -stará uložená data- -stará uložená data- -stará uložená data- -stará uložená data- </body> </html> Takže teoreticky by se to mohlo ukládat vždy na řádek 6... |
||
nicneveda Profil * |
#10 · Zasláno: 6. 5. 2013, 19:37:59
tzn. celý text by se posunul a na řádku 6 by se udělalo volno pro další příspěvek
|
||
Tori Profil |
Tak upravená verze [#4]:
Data z formuláře si budete ukládat do souboru data.html. Kostru HTML stránky uložíte jako PHP skript (prostě jen s příponou .php) a obsah souboru data.html do ní vložíte kam budete chtít. Formulář je stejný jako ve [#4]. Skript zpracuj.php na uložení dat bude vypadat takto: <?php if (isset($_POST['text']) && isset($_POST['odeslano'])) { if (get_magic_quotes_gpc()) { $_POST['text'] = stripslashes($_POST['text']); } // tady načtete původní obsah souboru, přilepíte před něj data z formuláře a uložíte zpátky. $novyObsah = $_POST['text'] . file_get_contents('data.html'); if (file_put_contents('data.html', $novyObsah, LOCK_EX)) { echo 'data byla vlozena do <a href="stranka.php">stranka.php</a>'; } else { echo 'chyba pri vkladani dat'; } } <html> <head> <title>Má první stránka</title> </head> <body> <?php include 'data.html'; ?> </body> </html> |
||
nicneveda Profil * |
#12 · Zasláno: 7. 5. 2013, 15:03:45
Děkuji za výpomoc. Ale na závěr ještě jedna otázka: Jde do formuláře doplnit data o kterých uživatel neví? (nezobrazí se mu) Třeba:
-Uživatel napíše: Pes je přítel člověka -A ve skutečnosti se odešle <b>Uživatel napsal:<b><i>Pes je přítel člověka<i> |
||
Tori Profil |
#13 · Zasláno: 7. 5. 2013, 19:51:12
nicneveda:
Upravte si řádek 9 v [#11] - okolo textu z formuláře budou tagy <i> a před něj přilepíte ještě ten tučný text.
|
||
nicneveda Profil * |
#14 · Zasláno: 7. 5. 2013, 20:14:41 · Upravil/a: nicneveda
Tak... teď asi fakt vypadám jako totální id*ot ale pochopil jsem správně že mám udělat z řádku 9 toto?:
$novyObsah = $_POST[<i>'text'<i>] . file_get_contents('data.html'); -rovnou vyhodí chybu serveru...
ale i když zkusím tohle... $novyObsah = $_POST['<i>text<i>'] . file_get_contents('data.html'); druhý kus kódu měl být $novyObsah = $_POST['<i>text<i>'] . file_get_contents('data.html');
|
||
nicneveda Profil * |
#15 · Zasláno: 9. 5. 2013, 15:14:32
Pomůže mi jěště někdo?
|
||
tatyalien Profil |
#16 · Zasláno: 9. 5. 2013, 16:10:26
$novyObsah = '<b>Uživatel napsal:<b><i>'. $_POST['text'] .'</i>'. file_get_contents('data.html'); |
||
nicneveda Profil * |
#17 · Zasláno: 9. 5. 2013, 16:23:47
Díky!
|
||
Časová prodleva: 11 let
|
0