Plik forum.php
[php:1:23ca5ba6cc]<?php
$host = "localhost";
$user = "root";
$pass = "krasnal";
$db = "forum_baza";
require("szablon.php");
require("funkcje.php");
theader();
mysql_connect($host, $user, $pass) or die("Nie mogę nawiązać połączenia z bazą!");
mysql_select_db($db) or die("Nie mogę wybrać tej bazy danych!");
Statystyka($wiadomosci, $userzy);
if(!isset($id)){
$id = 0;
}
if($m == "add_user"){
$userzy++;
}
tpanel($id, $wiadomosci, $userzy);
if($m == "form"){
tformularz(PobierzTytul($id), $id);
}elseif($m == "register"){
trejestracja();
}else{
switch($m){
case "msg": PobierzWiadomosc($id, $tytul, $tresc, $autor, $data);
Przetworz($tresc);
twiadomosc($tytul, $tresc, $autor, date("d.m.y H:i", $data));
break;
case "add": $uid = Autoryzuj($HTTP_POST_VARS['autor'], $HTTP_POST_VARS['haslo']);
if($uid > 0){
DodajWiadomosc($HTTP_POST_VARS['tytul'], $HTTP_POST_VARS['tresc'], $id, $uid);
}else{
echo "Musisz się zarejestrować, aby móc dodawać wiadomo¶ci<br>";
}
$id = 0;
break;
case "add_user":
DodajUsera($HTTP_POST_VARS['login'], $HTTP_POST_VARS['haslo']);
break;
}
PokazListe($id);
}
mysql_close();
tfooter();
?>[/php:1:23ca5ba6cc]
Plik funkcje.php
[php:1:23ca5ba6cc]<?php
function DodajUsera($login, $haslo){
$r = mysql_query("SELECT user_id FROM users WHERE user_name='$login'");
if(!$rows = mysql_fetch_row($r)){
mysql_query("INSERT INTO users (user_name, user_pass) VALUES('$login', '".md5($haslo)."')");
if($error = mysql_error()){
die("MySQL error: $error<br>");
}
}else{
echo "Na forum jest już użytkownik o takim loginie. Wybierz inny.<br>";
}
}
function Autoryzuj($login, $haslo){
$r = mysql_query("SELECT user_id FROM users WHERE user_name='$login' AND user_pass = MD5('$haslo')");
if($rows = mysql_fetch_row($r)){
if($rows[0] != 0){
return $rows[0];
}
}
return 0;
}
function DodajWiadomosc($tytul, &$tresc, $rodzic, $autor){
mysql_query("INSERT INTO messages(
msg_title,
msg_text,
msg_date,
msg_parent,
msg_author
) VALUES(
'$tytul',
'$tresc',
'".time()."',
'$rodzic',
'$autor'
)
");
if($error = mysql_error()){
die("MySQL error: $error<br>");
}
}
function PobierzWiadomosc($id, &$tytul, &$tresc, &$autor, &$data){
$r = mysql_query("SELECT m.msg_title, m.msg_text, m.msg_date, u.user_name FROM messages m, users u WHERE u.user_id = m.msg_author AND m.msg_id='$id'");
if($rows = mysql_fetch_row($r)){
$tytul = $rows[0];
$tresc = $rows[1];
$data = $rows[2];
$autor = $rows[3];
return 1;
}
return 0;
}
function Przetworz(&$tekst){
$tekst = preg_replace('#(.*?)#si', '<b>1</b>', $tekst);
$tekst = preg_replace('#(.*?)#si', '<i>1</i>', $tekst);
$tekst = preg_replace('#(.*?)#si', '<u>1</u>', $tekst);
$tekst = preg_replace('#[http](.*?)[/http]#si', '<a href="http://1">1</a>', $tekst);
$tekst = preg_replace('#[mail](.*?)[/mail]#si', '<a href="mailto:1">1</a>', $tekst);
$tekst = nl2br(strip_tags($tekst, '<a><b><i><u><font><div><hr><span><code> <center><h1><h2><h3><h4><h5><h6><h7><form><textarea>'));
}
function Statystyka(&$wiadomosci, &$userzy){
$r = mysql_query("SELECT COUNT(msg_id) AS total FROM messages");
if($rows = mysql_fetch_row($r)){
$wiadomosci = $rows[0];
}
$r = mysql_query("SELECT COUNT(user_id) AS total FROM users");
if($rows = mysql_fetch_row($r)){
$userzy = $rows[0];
}
return 0;
}
function PobierzTytul($id){
$r = mysql_query("SELECT msg_title FROM messages WHERE msg_id='$id'");
if($rows = mysql_fetch_row($r)){
return $rows[0];
}
return 0;
}
function PokazListe($id){
tstart_lista();
$r = mysql_query("SELECT m.msg_id, m.msg_title, m.msg_date, u.user_name FROM messages m, users u WHERE (u.user_id = m.msg_author) AND (m.msg_parent='$id') ORDER BY m.msg_date DESC");
if($error = mysql_error()){
die("MySQL error: $error<br>");
}
while($rows = mysql_fetch_row($r)){
telement($rows[0], $rows[1], date("d.m.Y H:i", $rows[2]), $rows[3]);
PokazListe($rows[0]);
}
tend_lista();
}
?>[/php:1:23ca5ba6cc]
Plik nowypost.php
[php:1:23ca5ba6cc]<?php
<HTML>
<HEAD>
<META HTTP-EQUIV="Content type" CONTENT="text/html"; charset=iso-8859-2">
<TITLE>Dopisanie postu</TITLE>
</HEAD>
<BODY>
<H2>Tablica dyskusyjna</H2>
<A HREF="wszystko.php">Wszystkie posty</A>______
<A HREF="nowypost.php">Dodaj nowy post</A>
<?
mysql_connect ("localhost", "root", "") or
die ("Nie można nawiązać połaczenia z bazą danych");
mysql_select_db ("bazapostow") or
die ("Nie można nawiązać połaczenia z bazą postów");
if ($co == 'wyślij') {
$ty = addslashes(htmlentities ($tytul));
$os = addslashes(htmlentities ($osoba));
$tr = addslashes(n12br(htmlentities ($tresc)));
if ($ty && $os && $tr) {
$query = ("INSERT INTO tablicapostow (osoba, tytul, tresc, "."data, ref) VALUES ('$os', '$ty', '$tr', now(), '$ref');");
mysql_query ($query);
print 'wpis został dokonany.<A HREF="wszystko.php">Powrót na stronę główna</A>';
exit;
}
}
elseif ($ref>0) {
$wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
"FROM tablicapostow WHERE nr=$ref;");
if ($rekord = mysql_fetch_array ($wynik)) {
$tresc = $rekord[2]; $tytul= $rekord[1];
$tresc = str_replace ("<br>", "", $tresc);
$tresc = str_replace ("n", "n: ", $tresc); $tresc = ": ".$tresc;
if (!(ereg ("^Re: ", $tytul))) {
$tytul = "Re: ".$tytul;
}
print "<H3>Odpowiedz na post: $rekord[1]</H3><P>Wysłany przez ";
print "</B>$rekord[0]</B>, <B>$rekord[3]</B></P>$rekord[2]<BR><HR>";
}
}
print "<H3>poślij post:</H3>";
print "<FORM METHOD=POST><INPUT TYPE="hidden" NAME="co" VALUE="";
print "wyslij"><INPUT TYPE="hidden" NAME="ref" VALUE="$ref">";
print "<B>Osoba:</B><BR><INPUT TYPE="text" NAME="osoba" ";
print "<INPUT TYPE="text" NAME="tytul" VALUE="$tytul" " ;
print "SIZE=60><BR><B>treść:</B><BR><TEXTAREA NAME="tresc" ";
print "ROWS=10 COLS=60>$tresc</TEXTAREA><BR>n";
print "<INPUT TYPE="submit" VALUE="Wyślij">";
print "</FORM>";
?>
</BODY>
</HTML>
?>[/php:1:23ca5ba6cc]
Plik szablon.php
[php:1:23ca5ba6cc]<?php
function theader(){
echo '
<html>
<head>
<title>Forum</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<meta http-equiv="content-Language" content="pl">
</head>
<body>
<h1>Forum</h1>
';
}
function tfooter(){
echo '
</body>
</html>
';
}
function twiadomosc($tytul, &$tresc, $autor, $data){
echo '
<table width=100% border=1>
<tr>
<td><h1>'.$tytul.'</h1> napisana przez ['.$autor.'] wysłana '.$data.'</td>
</tr>
<tr>
<td>'.$tresc.'</td>
</tr>
</table>
Odpowiedzi:<br>
';
}
function tpanel($id, $wiadomosci, $userow){
echo '
<b><center>.::<a href="forum.php">Index</a>::. .::<a href="forum.php?m=form&id='.$id.'">Dodaj wiadomo¶ć</a>::. .::<a href="forum.php?m=register">Zarejestruj się</a>::. .::ٱcznie Wiadomo¶ci ['.$wiadomosci.']; ٱcznie Użytkowników ['.$userow.']::.</center></b><br>
';
}
function tstart_lista(){
echo '<ul>';
}
function tend_lista(){
echo '</ul>';
}
function telement($id, $tytul, $data, $autor){
echo '
<li><a href="forum.php?id='.$id.'&m=msg">'.$tytul.' w dniu '.$data.' przez [<b>'.$autor.'</b>]</a>
';
}
function tformularz($tytul_tematu, $id){
if($id == 0){
$tytul_tematu = "";
$tresc = "Nowy temat";
}else{
$tytul_tematu = 'OdpoowiedĽ na '.$tytul_tematu;
$tresc = "Odpowiedz na $tytul_tematu";
}
echo '
<table border=1 width=100%>
<tr>
<td colspan=2 align=center><b>'.$tresc.'</b></td>
</tr>
<form method="post" action="forum.php?id='.$id.'&m=add">
<tr>
<td width=40%>Tytuł wiadomo¶ci:</td>
<td width=60%><input type="text" name="tytul" value="'.$tytul_tematu.'"></td>
</tr>
<tr>
<td width=40%>Autor:</td>
<td width=60%><input type="text" name="autor"></td>
</tr>
<tr>
<td width=40%>Hasło:</td>
<td width=60%><input type="password" name="haslo"></td>
</tr>
<tr>
<td width=40%>Tre¶ć:<br> tekst - pogrubienie<br>tekst - kursywa<br>tekst - podkre¶lenie<br>[http]url[/http] - link.<br>[mail]adres[/mail] - adres e-mail.<br>HTML dozwolony</td>
<td width=60%><textarea name="tresc" rows=9 cols=60></textarea></td>
</tr>
<tr>
<td colspan=2><input type="submit" value="Dodaj"></td>
</tr>
</form>
</table>
';
}
function trejestracja(){
echo '
<table border=1 width=100%>
<tr>
<td colspan=2>Rejestracja na forum</td>
</tr>
<form method="post" action="forum.php?&m=add_user">
<tr>
<td width=40%>Login:</td>
<td width=60%><input type="text" name="login"></td>
</tr>
<tr>
<td width=40%>Hasło:</td>
<td width=60%><input type="password" name="haslo"></td>
</tr>
<tr>
<td colspan=2><input type="submit" value="Dodaj"></td>
</tr>
</form>
</table>
';
}
?>[/php:1:23ca5ba6cc]
I ostatni plik

[php:1:23ca5ba6cc]<?php
<HTML>
<HEAD>
<META HTTP-EQUIV="Content type" CONTENT="text/html"; charset=iso-8859-2">
<TITLE>Dopisanie postu</TITLE>
</HEAD>
<BODY>
<H2>Tablica dyskusyjna</H2>
<?
function wypisz tablice ($nr) {
global $fref; global $fdata; global $fosoba; global $ftytul;
print "<UL>;
for ($i=count($fref) ; $i>=1; $i--) {
if ($fref[$i] == $nr) {
print "<LI><A HREF="wszystko.php?nr=$i">$ftytul[$i]</A>, ".
"<I>$fosoba[$i], $fdata[$i]</I>";
wypisztablice ($i);
}
}
print "</UL>";
}
mysql_connect ("localhost", "root", "") or
die ("Nie można nawiązać połaczenia z bazą danych");
mysql_select_db ("bazapostow") or
die ("Nie można nawiązać połaczenia z bazą postów");
if ($nr>0) {
$wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
"FROM tablicapostow WHERE nr=$nr;");
if ($rekord = mysql_fetch_array ($wynik)) {
$tresc = $rekord[2]; $tytul = $rekord[1];
print "<H3>$rekord[1]</H3>;
print "<P>Wysłany przez </B>$rekord[0]</B>, <B>$rekord[3]</B>:";
print "</P><P>$rekord[2]</P><HR>";
print "A HREF ="nowywpis.php?ref=$nr">Wyślij odpowiedź<A><HR>";
} else { $nr=0; }
}else { $nr=0; }
$wynik = mysql_query ("SELECT nr, osoba, tytul, data ref ".
"FROM tablicapostow;");
while ($rekord = mysql_fetch_array ($wynik)) {
$fref[$rekord[0]] = $rekord[4];
$fdata[$rekord[0]] = $rekord[3];
$ftytul[$rekord[0]] = $rekord[2];
$fosoba[$rekord[0]] = $rekord[1];
}
wypisztablice ($nr);
?>
</BODY>
</HTML>
?>[/php:1:23ca5ba6cc]
Sorry za znaczniki html'owe.
