Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niedziałający skrypt forum
Forum PHP.pl > Forum > Gotowe rozwiązania
flink
Witam, chciałem pozmieniać trochę skrypt i naieszałem. Mysql wyrzuca jakieś niezrozumiałe dla mnie komunikaty. Problem tkwi na pewno w nazwach baz ale niestety nie mogę go zlokalizować. Załaczam kody plików, ma nadzieję że znajdzie się ktoś kto wychwyci mój błąd.

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&para;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&para;ć</a>::. .::<a href="forum.php?m=register">Zarejestruj się</a>::. .::Ł&plusmn;cznie Wiadomo&para;ci ['.$wiadomosci.']; Ł&plusmn;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&para;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&para;ć:<br> tekst - pogrubienie<br>tekst - kursywa<br>tekst - podkre&para;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 biggrin.gif wszystko.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>

<?
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. smile.gif Nie miejcie mi tego za złe..
kszychu
Wazniejsze jest to, jakie błędy zwraca ci baza, czy cokolwiek innego. Uważasz, że jeśli tobie nie chce się znaleźć miejsca, gdzie jest błąd to ktoś inny będzie szukał igły w stogu siana?
flink
baza zwraca mi cos takiego :
Warning: MySQL Connection Failed: Access denied for user: 'root@localhost' (Using password: YES) in c:apachehtdocsforum1forum.php on line 13
Nie mogę nawišzać połšczenia z bazš!

i coś takiego dla innego pliku

Parse error: parse error, expecting `'('' in c:apachehtdocsforum1wszystko.php on line 10
kszychu
function wypisz tablice ($nr)
Powinno być:

function wypisz_tablice($nr)

Funkcja nie może miec nazwy wielowyrazowej.

A co do błędu bazy, to najprawdopodobniej złe hasło.
flink
Nic z tego, ten sam bład tylko w linii 15 tym razem a nie w 10
kszychu
W 13, zamknij "
w global podajesz wiele zmiennych po ,
Ive
Kod
<META HTTP-EQUIV="Content type" CONTENT="text/html"; charset=iso-8859-2">

zamień na:
Kod
<META HTTP-EQUIV="Content type" CONTENT="text/html; charset=iso-8859-2">

to był moim zdaniem zasadniczy błąd a tak poza tym to w global podaje się raz global i potem po przecinku wymienia się zmienne a nie za każdym razem pisze się global [tak mi się zdaje że nie wolno - a przynajmniej jest zawsze troszkę mniej kodu tongue.gif]

[to były błędy odnośnie pliku wszystko.php]
e4you
host , user lub hasło są nie poprawne
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.