ďťż

Ładny brzuch

jak w temacie!! moze ktos zna jakies srtony z poradnikami... nie chce gotowcow...



Proponuję książkę [url [url="http://helion.pl"]helionu[/url]]http://helion.pl]helionu[/url][/url], a nazwa to "PHP 5. Ćwiczenia".

-------------------
Kompilujesz Pythona

Wejdź na http://blueboardent.hk.pl

cytat:kisiol napisał:

jak w temacie!! moze ktos zna jakies srtony z poradnikami... nie chce gotowcow...

Osobiście nie spotkałem takiego poradnika. Stworzenie forum może nie jest jakoś specjalnie trudne (teoretyczna strona ), ale z praktycznej strony jest to mnóstwo klepania i potrzeba świetnej znajomości PHP, SQL, XHTML (HTML) i CSS (no to niezbędne minimum). Nie można zapomnieć o doświadczeniu:)

Przedewszystkim wszystko sobie rozplanuj (co, gdzie jak i dlaczego?:D) Przemyśl wszystko po kilka razy, bo zmiana czegoś w trakcie implementacji to ciężka robota i jest jak bomba zegarowa ( z popsutym liczikiem:P) nigdy niewiadomo kiedy wybchnie;)

Dobrym pomysłem może okazać się przeglądnięcie źródełek innych forów opartych na PHP:)

Kodie

hehe. na poczatek polecam ci nauczyc sie php. jak juz bedziesz go znal, to nie potrzebne beda ci takie strony, bo sam wpadniesz na to jak to zrobic. wiec radze: kurs + manual + chęci i do dziela
nawet, jezeli istnieje taka strona, na ktorej jest opisane krok po kroku jak napisac forum (w co watpie), to pewnie i tak nie zrozumiesz o co w tym wszystkim chodzi (wnisokuje to po zadanym pytaniu)

Pozdrawiam,
mg ..................................... gawron17@wp.pl ... http://www.compzone.up.pl/ ... GG:6500275



Ale mi tam jakieś głupoty zrobiło. A w tej książce na prawdę jest jak zrobić forum.

-------------------
Kompilujesz Pythona

Wejdź na http://blueboardent.hk.pl

a jaki polecacie kompilator, ew. program, na którym można testować działanie napisanych skryptów?

cytat:kisiol napisał:

a jaki polecacie kompilator, ew. program, na którym można testować działanie napisanych skryptów?

ekhm, kompilator do php? :roll:
co do programu to serwer Apache 2.0 + php 4.3.9 + mysql 4
watpie, zebys sobie poradzil ze skonfigurowaniem tego, wiec www.krasnal.tk - banalnie prosty w obsludze pakiet z powyzszymi komponentami

Pozdrawiam,
mg ..................................... gawron17@wp.pl ... http://www.compzone.up.pl/ ... GG:6500275

A jeżeli chodzi o kursy PHP:
http://www.webinside.pl/php/kursy
^ Bardzo dobre dwa kursy krok po kroku, a poza tym od cholery tutoriali.

I am the REAL Noname
Moja strona: www.coderulers.prv.pl

a wracając do tematu... na prawde nikt nie pisal nigdy zadnego forum? takie proste ma byc.. bez logowania sie itp.. znam c++, conieco php ale nie wiem jak to rozplanowac... musze to napisac jako prace zaliczeniową, a jak na razie nie mam pomysłów :/

Jak ci już wcześniej wspomnieli potrzebne ci jeszcze MySQL i HTML, bo samo php ci niewiele da. MySQL -> KrasnalServ -> phpMyAdmin = oglądnij kody php jakie generuje i wyciągnij z nich wnioski + przyda się manual do PHP: http://pl.php.net/manual/pl/index.php . HTML najlepiej się nauczyć z Help'a pajączka (o ile masz, jak nie to ściągnij kurs html z mojej strony). To ci powinno statczyć - dopowiem jeszcze, że przyda ci się <FORM> z HTML, mysql_query(""); z php i większość komend do tabel z MySQL.

PS: Przejrzyj przykłady skryptów PHP ze wszystkich ekspertów oraz dokładnie przeczytaj artykuł "Kierownik Bazy".

I am the REAL Noname
Moja strona: www.coderulers.prv.pl

"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup, twórca języka C++

Plik 6-18.php
----------------------------------------------------------------------

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>Tablica dyskusyjna</TITLE>
</HEAD>
<BODY>
<H2>Tablica dyskusyjna</H2>
<A HREF="6-18.php">Wszystkie posty</A>,
<A HREF="6-18-add.php">Wyślij nowy post</A><HR>

<? // Wyświetlanie tablicy dyskusyjnej. Jeżeli jest podany numer postu,
// wyświetla się on i jego odpowiedzi. Jeżeli nie - cała tablica.

function wypisztablice ($nr) {
// Funkcja rekurencyjnie wyświetla wszystkie rekordy, będące poniżej
// w hierarchii postów (czyli odpowiedzi, odpowiedzi na odfpowiedzi,
// itd...
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="6-18.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 połączyć się z MySQL");
mysql_select_db ("cwphp4") or
die ("Nie można połączyć się z bazą cwphp4");

if ($nr>0) { // chcemy wyświetlić post
$wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
"FROM tablicadyskusyjna WHERE nr=$nr;");
if ($rekord = mysql_fetch_array ($wynik)) { // i ten post jest
$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="6-18-add.php?ref=$nr">Wylij odpowiedź</A><HR>";
} else {
$nr = 0;
}
} else { $nr = 0; }

// odczyt danych, które będą wykorzystane w funkcji rekurencyjnej
$wynik = mysql_query ("SELECT nr, osoba, tytul, data, ref ".
"FROM tablicadyskusyjna;");
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];
}

// wypisanie postów potomnych - rekurencja
wypisztablice ($nr);
?>

</BODY>
</HTML>
---------------------------------------------------------------------
Plik2 6-18-add.php
---------------------------------------------------------------------
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>Tablica dyskusyjna -- dopisanie postu</TITLE>
</HEAD>
<BODY>
<H2>Tablica dyskusyjna</H2>
<A HREF="6-18.php">Wszystkie posty</A>,
<A HREF="6-18-add.php">Wyślij nowy post</A><HR>

<? // Skrypt wyświetla formularz i przyjmuje dane, wpisując nowy post do
// bazy.
mysql_connect ("localhost", "root", "") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("cwphp4") or
die ("Nie można połączyć się z bazą cwphp4");

if ($co == 'wyslij') { // żądanie dopisania
$ty = addslashes(htmlentities ($tytul));
$os = addslashes(htmlentities ($osoba));
$tr = addslashes(nl2br(htmlentities ($tresc)));
if ($ty && $os && $tr) { // dopisujemy!
$query = ("INSERT INTO tablicadyskusyjna (osoba, tytul, tresc, ".
"data, ref) VALUES ('$os', '$ty', '$tr', now(), '$ref');");
mysql_query ($query);
print 'Wpis został dokonany. <A HREF="6-18.php">Tablica dyskusyjna</A>';
exit;
}
} elseif ($ref>0) { // próba odpowiedzi na inny post
$wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
"FROM tablicadyskusyjna WHERE nr=$ref;");
if ($rekord = mysql_fetch_array ($wynik)) { // i ten post jest
$tresc = $rekord[2]; $tytul = $rekord[1];
$tresc = str_replace ("<br>", "", $tresc);
$tresc = str_replace ("n", "n: ", $tresc); $tresc = ": ".$tresc;
if (!(ereg ("^Re: ", $tytul))) { // dopisujemy RE, o ile nie ma
$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>";
}
}
// Wyświetlenie formularza
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 "VALUE="$osoba" SIZE=60><BR>n<B>Tytuł postu:</B><BR>";
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>

www.anotherworld92.prv.pl
http://republika.pl/emuplaystation

a co znacza i jak go naprawić taki komunikat:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /6-18.php on line 52

cytat:kisiol napisał:

a co znacza i jak go naprawić taki komunikat:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /6-18.php on line 52

jakiś error ci wyskoczył: po mysql_query() dopisz or die(mysql_error());

np. mysql_query("select czy coś") or die("Error: ".mysql_error());

Kodie

cytat:kisiol napisał:

a jaki polecacie kompilator, ew. program, na którym można testować działanie napisanych skryptów?

Zend Studio

777d e s t r u c t™

to dotyczy konkretnie pliku 6-18.php przedstawionego przez "krzysiek007"

Zastąp:
$wynik = mysql_query ("SELECT osoba, tytul, tresc, data ". "FROM tablicadyskusyjna WHERE nr=$ref;");
linią:
$wynik = mysql_query ("SELECT osoba, tytul, tresc, data ". "FROM tablicadyskusyjna WHERE nr=$ref;") or die("Błąd przy pobieraniu z bazy: ".mysql_error());

To pozwoli nam stwierdzić gdzie jest błąd. (Wynik daj na forum). Prawdopodobnie jest jakiś błąd w zapytaniu do bazy danych :)

Kodie

Nie mam pojecia skad ten blad !!!

O czymś zapomniałem !!!
Przedstwiam wszystkie pola tabeli tablicadyskusyjna:
nr - unikalny numer kazdego wpisu ;
INT,NOT NULL,AUTO_INCREMENT,PRIMARY,INDEX,UNIQUE
ref - numer wpisu w danym wątku ;
INT,NOT NULL
data - data postu ;
DATETIME,NOT NULL,DEFAULT: NOW();
osoba - pseudonim autora postu ;
TEXT,NOT NULL
tytul - tytuł postu ;
TEXT,NOT NULL
tresc - treść postu ;
TEXT,NOT NULL

www.anotherworld92.prv.pl
http://republika.pl/emuplaystation

w pliku 6.18.php ta linijka wyglada troche inaczej... zrobilem tak jak kazaliscie.. i komunikat jest ten sam :/ cos w linii 52 jest nie tak :/

tylko co?

cytat:Kodie napisał:

Zastąp:
$wynik = mysql_query ("SELECT osoba, tytul, tresc, data ". "FROM tablicadyskusyjna WHERE nr=$ref;");
linią:
$wynik = mysql_query ("SELECT osoba, tytul, tresc, data ". "FROM tablicadyskusyjna WHERE nr=$ref;") or die("Błąd przy pobieraniu z bazy: ".mysql_error());

To pozwoli nam stwierdzić gdzie jest błąd. (Wynik daj na forum). Prawdopodobnie jest jakiś błąd w zapytaniu do bazy danych :)

Kodie

A końcówka nie powinna wyglądać tak: ... WHERE nr='$ref';
Ja zawsze w apostrofach pisze zmienne i mi działa.

cifek

nie pomaga... to jednak chyba chodzi o argumenty... cos jest nie tak

cytat:Artur Menc napisał:
A końcówka nie powinna wyglądać tak: ... WHERE nr='$ref';
Ja zawsze w apostrofach pisze zmienne i mi działa.

Nie musi być w cudzysłowie jeśli nr jest liczbą:)

BTW. skąd mamy wiedzieć, która to linia 2:? No i jaki to komunikat:?

Kodie

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>Tablica dyskusyjna</TITLE>
</HEAD>
<BODY>
<H2>Tablica dyskusyjna</H2>
<A HREF="6-18.php">Wszystkie posty</A>,
<A HREF="6-18-add.php">Wyślij nowy post</A><HR>

<? // Wyświetlanie tablicy dyskusyjnej. Jeżeli jest podany numer postu,
// wyświetla się on i jego odpowiedzi. Jeżeli nie - cała tablica.

function wypisztablice ($nr) {
// Funkcja rekurencyjnie wyświetla wszystkie rekordy, będące poniżej
// w hierarchii postów (czyli odpowiedzi, odpowiedzi na odfpowiedzi,
// itd...
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="6-18.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 połączyć się z MySQL");
mysql_select_db ("cwphp4") or
die ("Nie można połączyć się z bazą cwphp4");

if ($nr>0) { // chcemy wyświetlić post
$wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
"FROM tablicadyskusyjna WHERE nr=$nr;");
if ($rekord = mysql_fetch_array ($wynik)) { // i ten post jest
$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="6-18-add.php?ref=$nr">Wylij odpowiedź</A><HR>";
} else {
$nr = 0;
}
} else { $nr = 0; }

// odczyt danych, które będą wykorzystane w funkcji rekurencyjnej
$wynik = mysql_query ("SELECT nr, osoba, tytul, data, ref ".
"FROM tablicadyskusyjna;");
:!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];
}

// wypisanie postów potomnych - rekurencja
wypisztablice ($nr);
?>

oznaczona przez emoty jest linia 52.. a komunikat jaki sie pojawia byl podany nieco wyżej..

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •