Jak vytvořit diskusi

Toto je nejjednodušší diskuse data se ukládají do souboru data.inc u kterého je potřeba změnit práva na zápis pro všechny uživatele.

Fórum na webu není chráněno a tak můžete zapisovat i HTML tagy nebo třeba programovat v php.

Zdrojový kód

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Diskuse</title>
</head>
<body>
<?
$zprava = $_POST['zprava'];

if ($zprava!=""){ //provede se pokud není prázdná zpráva
$celek="<p>$zprava</p>";
$soubor = fopen ('data.inc','a');//otevře soubor pro doplňování
fwrite ($soubor, $celek);//zapíše zprávu
fclose ($soubor); //zavře soubor
}
?>
<h1>Diskuse</h1>
<?include "data.inc"; ?>
<h2>Přidání zprávy</h2>
<form action="diskuse.php" method="post">
Zpráva: <input type="text" name="zprava"> <input type="submit" value="odeslat">
</form>
</body>
</html>

Zobrazit výsledek

Snad není co dodat čtěte komentáře v php scriptu.

Zabezpečování a vylepšení diskuse

Zde se pokusím vysvětlit kde má diskuse slabiny a jak je zabezpečit aby to fungovalo a nešlo hacknout.

Předchozí diskuse byla velice nebezpečna mohly se v ní psát html tagy nebo třeba programovat v php a nebyla omezena délka zprávy.

Tato diskuse je mnohem bezpečnější protože:

Vylepšení diskuse:

Zdrojový kód

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Dokonalejší a bezpečnější diskuse</title>
</head>
<body>
<?
$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$web = $_POST['web'];
$zprava = $_POST['zprava'];

$jmeno=HTMLSpecialChars($jmeno); //převede některé znaky na entity
$email=HTMLSpecialChars($email);
$web=HTMLSpecialChars($web);
$zprava=HTMLSpecialChars($zprava);

$jmeno=stripslashes($jmeno); //odstraní lomítka
$email=stripslashes($email);
$web=stripslashes($web);
$zprava=stripslashes($zprava);

$zprava = str_replace("\n"," <br> ", $zprava); //nové řádky nahradí <br>
$zprava = substr($zprava, 0, 10000);//zpráva bude mít maximálně 10000 znaků pomocí substr

$email_celek=" | <a href='mailto:$email'>$email</a>";
$web_celek=" | <a href='$web'>$web</a>";

if ($web=="http://"){$web_celek="";} //pokud se nevyplní nic se nevypíše
if ($email==""){$email_celek="";} // -||-

if ($zprava!="" and $jmeno!=""){ //provede se pokud není prázdná zpráva a jméno
$celek="<p>Zprávu poslal <strong>$jmeno</strong>$email_celek $web_celek</p><p>$zprava</p><hr>";
$soubor = fopen ('data-2.inc','a'); //otevře soubor pro doplňování
fwrite ($soubor, $celek); //zapíše zprávu
fclose ($soubor); //zavře soubor
}
?>
<h1>Dokonalejší a bezpečnější diskuse</h1>
<? include "data-2.inc"; ?>
<h2>Přidání zprávy</h2>
<form action="diskuse-2.php" method="post"></p>
<table>
<tr><th>*Jméno: </th><td><input type="text" name="jmeno" maxlength="25"></td></tr>
<tr><th>E-mail: </th><td><input type="text" name="email" maxlength="25"> [nepovinné]</td></tr>
<tr><th>Web: </th><td><input type="text" name="web" value="http://" maxlength="30"> [nepovinné]</td></tr>
<tr><th>*Zpráva: </th><td><textarea cols="60" rows="5" name="zprava"></textarea></td></tr>
<tr><th></th><td><input type="submit" value="odeslat"></td></tr>
</table>
</form>
</body>
</html>

Zobrazit výsledek

Reklama

Webhosting C4



Copyright (c) 2004 Tvorba Webu - Kontakt - mapa webu