| |
|
Návštěvní kniha se smajlíky
počet názorů: 29 poslední: 22.10.2004
19:14:56 číst
názory přidat
názor vytisknout
Nechcete už mít na svých stránkách návštěvní knihu od
serverů, kteří poskytují tyto služby(návštěvní knihy, CHATy,
ankety atd.), ale chete mít nějakou svou, ale nevíte jak na
ni? Tak potom přímo pro Vás je tento článek.
V tomto článku bych Vám chtěl předvést návštěvní
knihu nebo také nazývaný gbook. Bude tam použito jak
JavaScript tak PHP a MySQL. Navštěvní
kniha bude obsahovat vše, co by návštěvní kniha obsahovat
měla. Bude obsahovat smajlíky, ale také třeba zvýraznění textu
atd. No a myslím si, že bychom se mohli nyní pustit už do
práce.
Za prvé bychom si měli vytvořit tabulku
do MySQL databáze:
CREATE TABLE `kniha` ( `id` int(11)
NOT NULL auto_increment, `jmeno` varchar(150) NOT NULL
default '', `datum` varchar(150) NOT NULL default
'', `prispevek` text NOT NULL, `mejl` varchar(150)
default NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM
AUTO_INCREMENT=1 ;
Takže. Toto byla struktura
tabulky. Nebudeme ji ničím zatim plnit, to si potom vyzkoušíme
přes formulář. Ale řekneme si, co jaký sloupec
znamená:
| Název sloupce |
Popis |
| id |
Identifikační číslo každého příspěvku. Číslo je
jediné. |
| jmeno |
Jméno či přezdívka autora příspěvku. |
| datum |
Datum, kdy byl příspěvek vložen. |
| prispevek |
Text příspěvku. |
| mejl |
E-mail autora
příspěvku. |
Tak, teď jsme si
vysvětlili také, co jaký slopec znamená v databázi a můžeme se
vrhnout na skript.
Po vytvoření tabulky v databázi
si vytvoříme soubor kniha.php.
Nyní, když
máme vytvořen soubor kniha.php tak do něj začneme
zapisovat. A co bude jako první? První zápis bude JavaScript
na smajlíky.
<SCRIPT
language=JavaScript> <!-- function
add_smile(t){ this.addmessage.text.value+= '' + t +
''; } --> </SCRIPT>
A trošku tak stručně, co to znamená. Je
to vložení určitého znaku(určitých znaků) do formuláře
addmessge a do pole s názvem text. Pokud někdo
stále nechápe, tak doporučuji přečíst si nějaký článek o
JavaScriptu.
Tak, máme první znaky v souboru
kniha.php. A teď budeme vkládat formulář. A ten bude
vypadat nějak takto:
<?php echo " <table
width=\"90%\"
border=\"0\"> <tr> <td> <FORM
name=\"addmessage\" action=\"kniha.php?poz=0\"
method=\"POST\"> <INPUT type=\"hidden\"
value=\"".Date("d.m.Y")."\"
name=\"datum\"> <table> <tr> <td> Vaše
jméno: </td> <td> <INPUT
type=\"text\" name=\"name\"
maxlength=\"150\"> </td> </tr>
<tr> <td> Váš
e-mail: </td> <td> <INPUT
type=\"text\" value=\"@\" name=\"mejl\"
maxlength=\"150\"> </td> </tr>
<tr> <td> Váš
příspěvek: </td> <td> <TEXTAREA
name=\"text\" cols=\"30\"
rows=\"4\"></TEXTAREA> </td> </tr>
<tr> <td
align=\"center\" colspan=\"2\"> <INPUT
type=\"submit\" value=\"Odeslat příspěvek\"
name=\"SUBMIT\"> </td> </tr> </table> </FORM> </td>
Takže,
tady jsme měli takovou, když to řeknu 1. část formuláře.
Určitě jste si všimli, že není ukončeno uvozovkami a
středníkem. Je to tím, že pokračování formuláře je až nyní a
vysvětlení bude po 2. části formuláře:
<td valign=\"top\"> *b*
<b>tučný text</b> */b*<br> *i*
<i>text kurzivou</i> */i*<br> *u*
<u>podtržený text</u> */u*<br> *br*
==> odřádkování<br> *center* ==> začátek
centrování<br> */center* ==> konec
centrování<br><br> <br> <a
href=\"javascript:add_smile(' :-) ')\"> <img
src=\"smajlici/6.gif\" border=\"0\"> </a> <a
href=\"javascript:add_smile(' ;-) ')\"> <img
src=\"smajlici/4.gif\" border=\"0\"> </a> <a
href=\"javascript:add_smile(' :-D ')\"> <img
src=\"smajlici/1.gif\" border=\"0\"> </a> <a
href=\"javascript:add_smile(' :-p ')\"> <img
src=\"smajlici/2.gif\" border=\"0\"> </a> <a
href=\"javascript:add_smile(' :-/ ')\"> <img
src=\"smajlici/8.gif\" border=\"0\"> </a> <a
href=\"javascript:add_smile(' :-| ')\"> <img
src=\"smajlici/7.gif\" border=\"0\"> </a> <a
href=\"javascript:add_smile(' :-( ')\"> <img
src=\"smajlici/10.gif\"
border=\"0\"> </a> </td> </tr> </table> </center>
";
Takže, v 1. části formuláře jsme měli
jsme měli samotný formulář. Možná že jste se tam pozastavili
na ACTIONu. Je tam adresa kniha.php?poz=0. Je to na
stránkování, o kterém si povíme později. V druhé části je jak
napsat zvýrazněný nebo podtržený text a vložení smajlíka. Já
si myslím, že k popisu by to vcelku stačilo. A můžeme jít
dále. Nyní si ukážeme vložení příspěvku do databáze:
//vlozeni prispevku do
databaze if($SUBMIT !=""){ //kontrola, zda byl formular
odeslan IF($name != "" and $text != ""): //kontrola, zda
byly vyplneny vsechny povine udaje MySQL_query( "INSERT
INTO kniha VALUES('','$name','$datum','$text','$mejl')");
//zapis do db echo "<center><b>Váš příspěvek
byl přidán!</b></center>"; //vypsani hlasky o
uspesnem zapsano do db else: echo
"<center><b>Nebyly vyplněny některé
údaje.</b></center>"; //vypsani hlasky, pokud
nebyly vyplneny vsechny udaje endif; }
Zde jsme si vypsali skriptík, který
zkontroluje, zda byl odeslán formulář, pokud ano, tak
zkontrolujeme, zda byly vyplněny všechny poviné údaje. A pokud
ano, tak zapíšeme do databáze. A pokud ne, tak jen vypíšeme
hlášku. A nyní, jak už jsem výše uvedl, bude tam také
stránkování, aby se někomu stránka nenačítala nějak dlouho.
Stránková bude po 15 příspěvcích. A vždy mezi formulář a 1.
příspěvkem bude napsáno Strana: a počet stránek, do
kterých jsou příspěvky rozděleny. Proto, musí být url adresa
na knihu nějak takto: kniha.php?poz=0. Pokud tam
nebude napsáno poz=0, tak skript vypíše chybu. A zde už
je skript na stránkování:
//strankovani $max = "15"; //pocet,
kolik se ma na 1 strane zobrazit
prispevku
$aaa=MySQL_Query("SELECT count(*) FROM kniha
ORDER BY id DESC"); //zjisteni kolik je v tabulce kniha
prispevku $bbb=mysql_fetch_array($aaa); //vypsani cisla do
promenne $aaa $str=Ceil($bbb[0]/$max); //vydelime
celkovy pocet prispevku poctem, kolik ma byt prispevku na
strance
Echo "<br><center>Strana:
"; for($i=0;$i<$str;$i++){ //cyklus na vypsani
stranek if(($i*$max)==$poz)echo $i+1; else //pokud jsme na
dane strane, nevypysime jej jako odkaz, ale jako text echo
" <A
href='kniha.php?poz=".($i*$max)."'>".($i+1)."</A> ";
//dalsi strany vypiseme jako odkaz }
echo
"<br><br>";
Takže, zde bylo
stránkování. Navíc je tam uděláno to, že pokud se třeba nyní
nacházíte na straně 27 a celkový počet stran je 54, tak
všechny strany to vypíše jako odkaz, ale stranu 27 to vypíše
jako obyčejný text. No a teď už nám zbývá pouze výpis
příspěvků. Ale ten si také rozkouskujeme. A za každým menším
skriptem bude popis.
//vypis
prispevku $aa=MySQL_Query("SELECT * FROM kniha ORDER BY id
DESC LIMIT $poz,$max"); //SQL dotaz do
db while($bb=mysql_fetch_array($aa)){ //zacatek cyklu pro
vypsani prispevku
Pokud by nám MySQL
dotaz nějak nefungoval, můžeme chybu(na kterém je třeba řádku)
zobrazit pomocí fce mysql_error(). Takže bychom
mohli jít dále. A co bude dále? Převod smajlíků, zvýrazněného
textu na tágy a obrázky.
//prevod smajliku na
obrazky $nahradit_co =
array("*b*","*/b*","*u*","*/u*","*i*","*/i*","*br*","*center*","*/center*,",":-(",":-p",":-D",";-)",":-)",":-|",":-/");
$nahradit_cim
=
array("<b>","</b>","<u>","</u>","<i>","</i>","<br>","<center>","</center>","<img
src=\"smajlici/10.gif\" alt=\":-(\">","<img
src=\"smajlici/2.gif\" alt=\":-p\">","<img
src=\"smajlici/1.gif\" alt=\":-D\">","<img
src=\"smajlici/4.gif\" alt=\";-)\">","<img
src=\"smajlici/6.gif\" alt=\":-)\">","<img
src=\"smajlici/7.gif\" alt=\":-|\">","<img
src=\"smajlici/8.gif\" alt=\":-/\">");
$textem =
str_replace($nahradit_co, $nahradit_cim,
$bb["prispevek"]);
No, zde to zjišťuje,
zda se v textu nachází nějaký ten smajlík nebo znak na
zvýraznění textu či podtržení textu. Pokud si chcete stáhnout
jenom obrázky(smajlíky), tak jsou ke stažení zde. A
teď si myslím, že bychom mohli jít na poslední část našeho
vypisování příspěvků, a to je čisté vypsání příspěvku.
//vypis prispevku IF($bb["mejl"] ==
"" or $bb["mejl"] == "@"){ //zjisteni, zda byl vyplnen
e-mail
echo "</center> <table width=\"90%\"
align=\"center\"> <tr> <td> $textem<br><br> </td> </tr>
<tr> <td> Tento
příspěvek nám zde dne ".$bb["datum"]." zanechal
<b>".$bb["jmeno"]."</b>. </td> </tr> </table><br> ";
}else{
echo
"</center> <table width=\"90%\"
align=\"center\"> <tr> <td> $textem<br><br> </td> </tr>
<tr> <td> Tento
příspěvek nám zde dne ".$bb["datum"]." zanechal <a
href=\"mailto:".$bb["mejl"]."\"><u><b>".$bb["jmeno"]."</b></u></a>. </td> </tr> </table><br>";
}
} ?>
Zde
vlastně už jenom zjistíme, zda autor příspěvku vyplnil e-mail
či ne a pokud vyplnil, tak jméno dáme jako odkaz a bude
odkazovat na jeho e-mail. A pokud nevyplnil e-mail, tak
vypíšeme jméno jen jako prostý text.
Já doufám, že se
Vám článek líbil a že ho třeba použijete také na svou stránku
a nebo se jen k něčemu novému přiučíte.
Celý skript si
můžete stáhnout zde.
Názory: počet:
29 poslední: 22.10.2004 19:14:56 číst
názory přidat
názor vytisknout
| Nadpis |
Autor |
Datum |
| Bezpecnost |
Ypkis |
21.10.2004 06:38:49 |
| Re: Bezpecnost |
Michal Pospiech |
21.10.2004 06:47:25 |
| Re: Bezpecnost |
Ypkis |
21.10.2004 06:53:07 |
| Re: Bezpecnost |
Michal Pospiech |
21.10.2004 06:56:57 |
| Re: Bezpecnost |
Gabriel |
21.10.2004 11:41:51 |
| Pár připomínek |
Scatter |
21.10.2004 09:20:06 |
| Re: Pár připomínek |
Gabriel |
21.10.2004 11:45:01 |
| Re: Pár připomínek |
Michal Pospiech |
21.10.2004 15:49:45 |
| Re: Pár
připomínek |
VlK |
21.10.2004 21:31:46 |
| Re: Pár
připomínek |
Michal Pospiech |
21.10.2004 21:37:44 |
| A ještě něco |
Scatter |
21.10.2004 09:22:52 |
| Re: A ještě něco |
Michal Pospiech |
21.10.2004 15:48:13 |
| btw |
Gabriel |
21.10.2004 11:47:18 |
| Re: btw |
Michal Pospiech |
21.10.2004 15:41:57 |
| class "kod" |
Ypkis |
21.10.2004 12:47:46 |
| Bezpečnost |
TOM |
21.10.2004 13:03:28 |
| Nikdo není dokonalý |
Jasin |
21.10.2004 14:32:03 |
| Re: Nikdo není dokonalý |
Michal Pospiech |
21.10.2004 15:41:26 |
| Re: Nikdo není dokonalý |
Ypkis |
21.10.2004 18:39:18 |
| Re: Nikdo není dokonalý |
Michal Pospiech |
21.10.2004 18:45:25 |
| Re: Nikdo není dokonalý |
Laupe |
21.10.2004 18:41:06 |
| Re: Nikdo není dokonalý |
Michal Pospiech |
21.10.2004 18:44:29 |
| Sloh......autorův nepřítel |
Marks |
21.10.2004 22:14:40 |
| Re: Sloh......autorův nepřítel |
Marks |
21.10.2004 22:16:22 |
| Re: Sloh......autorův
nepřítel |
jokr |
22.10.2004 00:10:38 |
| Re: Sloh......autorův nepřítel |
Michal Pospiech |
22.10.2004 06:31:35 |
| Re: Sloh......autorův
nepřítel |
Marks |
22.10.2004 19:14:56 |
| POMOC! |
Ludmila |
22.10.2004 13:57:25 |
| Re: POMOC! |
Michal Pospiech |
22.10.2004
14:36:18 |
(c) P.E.S. consulting,
s.r.o. 2000-2004. Provozovatel nezodpovídá za obsah a původ
článků a diskuzních příspěvků, odpovědnost nesou jednotliví
redaktoři a autoři. Informace o PC Světě naleznete
zde |
|
|
 |
Novinka: Bazar
|
|
 |
ADSL připojení
|
|
 |
Anketa |
|
 |
Novinky e-mailem
|
|
 |
Nový redaktor
|
|