Autor | Zpráva | ||
---|---|---|---|
AlastorM Profil * |
#1 · Zasláno: 12. 3. 2011, 00:53:37
Mám soubor html s formulářem (zdrjový kód):
<form action="posli.php" name="komentare" method="post">Tvoje <input maxlength="100" size="50" name="prezdivka"><br> <input maxlength="100" size="40" name="mail"><br> <input maxlength="10" size="10" name="antispam"><br> <textarea cols="50" rows="10" name="comment"></textarea><br> <button value="vymazat" name="reset" type="reset">Vymazat</button> <button value="poslat" name="poslat">Odeslat</button><br> </form> a k tomu php soubor posli.php (zdrojový kód): <? $datafile="wall.txt"; // soubor kam se bude ukládat text $codenumber="2011"; // kontrolní kód $fp = FOpen ("$datafile", "r"); $data = FRead ($fp, FileSize("$datafile")); FClose($fp); $file = "$datafile"; $time = date("j.n.Y"); if ($antispam == "$codenumber") { $fp = fopen("$file", "w"); $write = "<a href=mailto:$mail></a> <i>$prezdivka napsal(a) dne $time:</i><br>$comment<br><br>"; FWrite ($fp, $write.$data); fclose($fp); } include("$file"); ?> PHP vůbec neumím a tak hledám na internetu jak udělat php skript, který vezme data z formuláře a uloží je do souboru - do souboru se stále nic neukládá. Ten php kód jsem poskládal z toho, co jsem našel a dle mého názoru by to mělo fungovat, ale nefunguje. Při odeslání formuláře se zobrazí následující: $prezdivka napsal(a) dne $time: $comment "; FWrite ($fp, $write.$data); fclose($fp); } include("$file"); ?> Mělo by se zobrazit - příklad: XXX napsal(a) dne 1.1.1111 Ahoj Najde se někdo, kdo poradí proč to nefunguje? |
||
G3n3sis19 Profil |
#2 · Zasláno: 12. 3. 2011, 04:40:52 · Upravil/a: G3n3sis19
zkus
<?php $datafile="wall.txt"; // soubor kam se bude ukládat text $codenumber="2011"; // kontrolní kód $fp = FOpen ("$datafile", "r"); $data = FRead ($fp, FileSize("$datafile")); FClose($fp); $file = "$datafile"; $time = date("j.n.Y"); if ($_POST['antispam'] == $_POST['codenumber']) { $fp = fopen("$file", "w"); $write = "<a href=mailto:".$_POST['mail']."></a> <i>".$_POST['prezdivka']." napsal(a) dne ".date("d.m.Y").":</i><br>".$_POST['comment']."<br><br>"; FWrite ($fp, $write.$data); fclose($fp); } include("$file"); ?> registrované globální proměný už jsou skoro zrušené, takže musíš použít $_POST |
||
AlastorM Profil * |
#3 · Zasláno: 12. 3. 2011, 13:00:48
díky, teď už to funguje. Jen řeším jednu věc ještě.
Mám tento kód: $write = "<i>www: ".$_POST['web']."</i><br><b>".$_POST['prezdivka']." napsal(a) dne ".date("d.m.Y").":</b><br>".$_POST['comment']."<br><br>"; Což se uloží a zobrazí jako: www: adresa webu XXX napsal(a) dne asasassa Nevím jak ten řádek upravit, aby adresa webu se zobrazila jako odkaz - buď se to nezobrazí vůbec, když to zkusím, nebo se zobrazí jako odkaz celý odeslaný text. Konkrétně jde o tuto část, kterou je třeba upravit: <i>www: ".$_POST['web']."</i><br> Zkoušel jsem to zapsat takto: <a href=".$_POST['web']."><br> <i>www: <a href=".$_POST['web']."></i><br> Ale jak říkám, buď se tato část nezobrazí, nebo se aplikuje na celý text Jde o možnost přidávat komentáře k článku na webu. Příspěvky se ukládají do souboru. Není to sice nic moc, ale lepší než nic :D |
||
Tori Profil |
#4 · Zasláno: 12. 3. 2011, 14:15:09
AlastorM:
Odkaz je přeci párový tag.. |
||
AlastorM Profil * |
#5 · Zasláno: 12. 3. 2011, 15:08:20
jo, to vím, ale když napíšu:
"www:<a href=".$_POST['web'].">.$_POST['web'].</a> No jednoduše nevím, kde mají být uvozovky. Stále to píše expected a unexpected .... |
||
G3n3sis19 Profil |
#6 · Zasláno: 12. 3. 2011, 15:13:13 · Upravil/a: G3n3sis19
<?php $write = "<i>www: <a href='".$_POST['web']."'>Odkaz</a></i><br><b>".$_POST['prezdivka']." napsal(a) dne ".date("d.m.Y").":</b><br>".$_POST['comment']."<br><br>"; ?> nebo <?php $write = "<i>www: <a href=\"".$_POST['web']."\">Odkaz</a></i><br><b>".$_POST['prezdivka']." napsal(a) dne ".date("d.m.Y").":</b><br>".$_POST['comment']."<br><br>"; ?> |
||
Darker Profil |
#7 · Zasláno: 12. 3. 2011, 15:58:52
Místo konstrukcí s fopen a fwrite používej file_put_contents().
Ušetříš si práci. |
||
AlastorM Profil * |
#8 · Zasláno: 12. 3. 2011, 16:27:10
Darker: jo, to jsem včera našel a nahradil, ale i tak díky za tip. Ikdyž jsem nahradil jen jeden řádek z celého kódu. Použil jsem file_get_contents místo FRead. Možná to časem vylepším více ve verzi 2. Tohle je verze 1.
G3n3sis19: díky, už to funguje. Ještě jsem si to trošku poupravil, aby to vypisovalo to, co chci. Ještě otázečka do budoucna - jak moc je náročné udělat v tom skriptu stránkování (rozdělit po určitém počtu příspěvků na další stránky)a případně to místo do souboru házet do mysql? Jde mi teď jen o vyjádření náročnosti. Zatím to zapisuje tedy do souboru, má to jednoduchou antispam kontrolu a vložený text se zadává do tabulky - při vložení delšího příspěvku to aspoň není na řádku jednom, ale na více :D. Nic moc, ale aspoň to funguje. |
||
G3n3sis19 Profil |
#9 · Zasláno: 12. 3. 2011, 16:30:46
musíš mít Mysql účet s vlastní databází a přístupem na zápis. Připojení vypadá takhle
mysql_connect("localhost", "tvojejmeno", "tvojeheslo"); mysql_select_db("tvojeDB"); localhost je tam ve většině případů. Poté vložení už záleží na struktuře tabulky do které to vkládáš. doporučuji přečíst pár tutoriálů |
||
Časová prodleva: 13 let
|
0