Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Niedziałający skrypt forum
flink
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.02.2004

Ostrzeżenie: (0%)
-----


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..
Go to the top of the page
+Quote Post
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


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?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
flink
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.02.2004

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
kszychu
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


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.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
flink
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.02.2004

Ostrzeżenie: (0%)
-----


Nic z tego, ten sam bład tylko w linii 15 tym razem a nie w 10
Go to the top of the page
+Quote Post
kszychu
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


W 13, zamknij "
w global podajesz wiele zmiennych po ,


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Ive
post
Post #7





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

Ostrzeżenie: (0%)
-----


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]
Go to the top of the page
+Quote Post
e4you
post
Post #8





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 10.03.2004
Skąd: K-ce

Ostrzeżenie: (50%)
XXX--


host , user lub hasło są nie poprawne
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:01