Autor | Zpráva | ||
---|---|---|---|
pavlos123 Profil * |
#1 · Zasláno: 18. 2. 2011, 03:18:05
Ahoj...
Našel jsem si PHP kód na zápis do souboru a teď bych ho potřeboval s vaší pomocí trochu upravit. Vše mi funguje jak má -> do souboru komentáře se zapíše text, který zadám do formuláře. Jenomže já bych ten text v komentare.php potřeboval dostat na místo kde jsou proměnné. Poradíte mi prosím? index.php <?php if (isset($_POST["submit"])) { $name_coment = htmlspecialchars($_POST["name_coment"]); $coment = nl2br(htmlspecialchars($_POST["coment"])); if ($name_coment != FALSE && $coment != FALSE) { file_put_contents("komentare.php", $name_coment."\n".$coment."\n".file_get_contents("komentare.php")); echo "<p>Komentář byl přidán.</p>"; } else { echo "<p>Nevyplnili jste jméno nebo text komentáře.</p>"; } } ?> <h1>Formulář</h1> <form action="index.php" method="post"> Jméno: <br> <input type="text" name="name_coment" size="30"> <br> Komentář: <br> <textarea name="coment" rows="10" cols="50"></textarea> <br> <input type="submit" name="submit" value="Odeslat"> </form> komentare.php <?php echo "Tu chci jméno:" .$name_coment. "<br> Tu chci komentář:" .$coment ; ?> |
||
unlucky Profil |
#2 · Zasláno: 18. 2. 2011, 04:30:04 · Upravil/a: unlucky
do souboru nedelej. To se delalo kdysi tak pred 8-9 lety. Tehdy jsem mel podobny a behem nepozornosti se mi vymazal cely soubor :D
(das poslat/odeslat komentar a das rychle STOP na prohlizeci) ale jestli chces, tak ti poslu svuj osetreny skript, jen co ho najdu |
||
Chro Profil |
#3 · Zasláno: 18. 2. 2011, 11:04:40
pavlos123:
Poznávám svůj historický kód z dob, kdy se mé znalosti PHP daly ohodnotit známkou 4--. Opravdu je lepší ukládat data do databáze, ale nebudu ti to rozmlouvat. Předpokládám, že jsi začátečník a oťukáváš si práci se soubory. Takže. Soubor komentare.php slouží jen jako úložiště dat, náhrada databáze. Chceš-li vypsat na stránku obsah v něm uložený, použij např. někde v index.php konstrukci if (file_exists("komentare.php")) { readfile("komentare.php"); } Vkládat případné HTML tagy musíš už při ukládání obsahu z formuláře, to znamená v index.php uvnitř funkce file_put_contents, příklad: file_put_contents("komentare.php", "<b>".$name_coment."</b>\n<p>".$coment."</p>\n<hr>\n".file_get_contents("komentare.php")); |
||
pavlos123 Profil * |
#4 · Zasláno: 18. 2. 2011, 12:48:00
Chro:
„Opravdu je lepší ukládat data do databáze“ Klidně bych to s tou databází vyzkoušel, no zkusím najít nějaký příklad na kterém bych to pochopil. Nebo kdyby byl někdo té ochoty a napsal mi tu co v databázi vytvořit a jaký php kód použít. (jen na pochopení...) |
||
lordfrikk Profil |
#5 · Zasláno: 18. 2. 2011, 15:36:59
Klidně mohu doporučit použít SQLite, což je databáze, která se ukládá do souboru.
|
||
pavlos123 Profil * |
#6 · Zasláno: 18. 2. 2011, 20:11:38
No tak nějak pokračuju bez té databáze. To vyzkouším později. :-)
Už mi to funguje jen bych potřeboval vědět jestli by to šlo upravit tak, aby se před uložením textu do komentare.php vymazalo předchozí uložení |
||
Chro Profil |
#7 · Zasláno: 18. 2. 2011, 21:53:48
Jasně že šlo. Předtím než PHP vykoná nějakou funkci, podívá se, zda v ní nemá další funkci nebo funkce, které je třeba vykonat dříve. Podívej se na funkci file_put_contents. Co vidíš uvnitř ní? Funkci file_get_contents. Ta zajišťuje načtení původního obsahu souboru. Tečka před ní ho spojí s obsahem z formuláře. Protože už uvnitř není jiná funkce, PHP vykoná funkci file_put_contents, tzn. uloží spojený obsah z formuláře a souboru do toho samého souboru. Co tedy uděláš? :-)
|
||
TomasJ Profil |
#8 · Zasláno: 18. 2. 2011, 22:11:40
pavlos123:
Teď nevím jestli máš na mysli umazat celý obsah a komentář vložit do prázdného souboru, nebo jestli chceš smazat jen poslední vložený komentář... |
||
pavlos123 Profil * |
#9 · Zasláno: 19. 2. 2011, 01:54:09
Tak už jsem si trochu nastudoval Mysql ...
Jen nevím jakou tabulku vytvořit a jak by měl vypad PHP kód. Zkusím ještě dál hledat nějaké příklady :-) Kdyby měl někdo nějaký tip budu vděčný. Díky |
||
lordfrikk Profil |
#10 · Zasláno: 19. 2. 2011, 12:29:47 · Upravil/a: lordfrikk
pavlos123:
„Jen nevím jakou tabulku vytvořit“ Logicky: co potřebuješ uložit? Jméno a text komentáře. Navíc každý záznam musí mít jednoznačný identifikátor (pak lze rozlišit dva záznamy, které byly poslány stejným uživatelem a se stejným obsahem - otázka, zda-li takové / duplicitní / budeš chtít také ukládat). Tabulku (a další práci s databázemi mimo PHP) doporučuji provádět v nějakém nástroji k tomu určeném. Pro MySQL je to nejznámější phpMyAdmin, ten je ale pro základní potřeby dost složitý. Proto bych spíše doporučil dokonalý Adminer od Jakuba Vrány viz http://www.adminer.org/. Tam se přihlásíš a vytvoříš si tabulku. Struktura může vypadat například takto: CREATE TABLE "komentare" ( "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" text(255) NOT NULL, "text" text NOT NULL ) (příklad je pro SQLite) Jak lze vidět, id je celé číslo (integer, navíc je jedinečné / primary key / a automaticky se bude při vkládání záznamu zvyšovat o jedno / auto increment /), name a text jsou sloupce typu text přimčemž name je navíc omezeno na 255 znaků (pochybuji, že někdo potřebuje více prostoru pro jméno). Co se týče samotné operace v PHP, je třeba jednak znát názvy funkcí a pak samozřejmě samotné SQL. Doporučuji tento seriál na Linuxzone. Já osobně se naučil SQL (základy) z knihy o PHP a MySQL, což je taky možnost. |
||
Časová prodleva: 13 let
|
0