Autor Zpráva
AlastorM
Profil *
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>&nbsp;&nbsp;&nbsp;
<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>&nbsp;<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
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>&nbsp;<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 *
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
AlastorM:
Odkaz je přeci párový tag..
AlastorM
Profil *
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
<?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
Místo konstrukcí s fopen a fwrite používej file_put_contents().
Ušetříš si práci.
AlastorM
Profil *
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
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ů

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: