Računalniki Windows Internet

Knjiga gostov PHP. Pisanje skripta knjige gostov Mad dealer guestbook php

PHP 5.2 in novejši;
- mod_rewrite;
- Baza Podatki MySQL 4.1 in novejše.

Možnosti

Vdelano pod katero koli spletno mesto (vse, kar morate storiti, je, da uredite datoteke top.php in bottom.php);
- protipoplavni;
- seznam prepovedi;
- krmarjenje po pogledu po strani<< < ...| 5 | 6 | 7 ... > >>;
- podpora BBKode;
- prikaz emotikonov;
- obvestilo o novih dodanih sporočilih;
- možnost dodajanja sporočil za moderiranje;
- skrbniška plošča;
- enostaven za namestitev in nastavitev.

Namestitev

Razpakirajte arhiv in kopirajte vsebino arhiva v katero koli mapo na spletnem strežniku (na primer "knjigo gostov"). Odprite datoteko config / config_db.php v urejevalnik besedil in določite nastavitve povezave (gostitelja baze podatkov ali IP, ime baze podatkov, uporabniško ime in geslo). Dodelite tabele baze podatkov poizvedb SQL MySQL iz datoteke guestbook.sql. običajno pri večini storitev gostovanja to poteka prek spletnega vmesnika prek phpMyAdmin. Pojdite na skrbniško ploščo (http: // your_site / script_folder / admin /) in vnesite geslo 1111. Nato določite potrebne nastavitve.

Komercialna različica

Na zahtevo stranke lahko scenarij prilagodim posebnim pogojem. Dodate lahko različne dodatne funkcije.

Opomba

SCRIPT "Knjiga gostov PHP", NAPREJ JE SAMO PROGRAM POTPUNO BREZPLAČEN. LAHKO BREZPLAČNO DISTRIBUCIRATE, KOPIRATE, SVOJE SPREMEMBE V KODI VIRA PROGRAMA, SAMO V PODRUJU AVTORJEVA AVTORSKIH PRAVIC VARUJE. UPORABA PROGRAMSKE OPREME "PHP Guestbook" za TRGOVINSKE NAMENE JE PREPOVEDANA. VAŠA UPORABA TEGA PROGRAMA JE NA LASTNO TVEGANJE. AUTOR NE PREPREJEMA ODGOVORNOSTI ZA IZVEDBO PROGRAMA, TUDI ZA IZGUBE, POŠKODBE PODATKOV ALI KAJ DRUGEGA V ZVEZI Z UPORABO IN DELOVANJEM TEGA PROGRAMA.

Če vam je bil moj scenarij všeč in se mi želite zahvaliti z rubljem, potem so moje podrobnosti:

WebMoney
U237811811298
R198597198920
Z917380288657

Denar Yandex
41001635943434

PayPal

Če imate kakršna koli vprašanja ali predloge, mi pišite na: Ta naslov E-naslov zaščiteno pred nezaželeno pošto. Če ga želite videti, omogočite Javascript.

»» @LexGuestbook

@lex Knjiga gostov- brezplačno je PHP knjiga gostov skript za spletna mesta. Napisano v jeziku PHP, @lex Knjiga gostov Enostavna namestitev v nekaj minutah, tudi začetnikom bo enostavno ugotoviti.

PHP knjiga gostov popolnoma brezplačen skript - glavni pogoj: ne odstranjujte avtorskih pravic na dnu strani. PHP knjiga gostov namesti na strežnik in je popolnoma neodvisen od drugih spletnih mest. Rezerva objavljajte v knjigi gostov PHP po vaši izbiri, tudi vsak dan. Samodejna namestitev Knjiga gostov Alex: imena tabel v zbirki podatkov se registrirajo sama.

Prednosti scenarija.

  • Zahvaljujoč preoblekam se lahko spremenite videz @lexGuestbook za oblikovanje vaše spletne strani. (vse preobleke so veljavne XHTML 1.0 Transitional)
  • V PHP knjiga gostov vgrajenih je približno 20 jezikov.
  • Vsaka država ima svojo zastavo.
  • Podpora za emotikone: možnost dodajanja lastnih emotikonov, brisanje, urejanje.
  • Prikaže se statistika znakov: v enem sporočilu lahko nastavite največje število črk.
  • Notranji iskalnik.
  • Možnost ocenjevanja s strani obiskovalcev. Točkovanje po 10-točkovnem sistemu.

Podprti jeziki

Popoln prevod.
Francoski, angleški, poljski, nemški, norveški, italijanski, nizozemski, slovaški, perzijski, turški.

Delni prevod. Nekatere besede so še vedno v angleščini.
Španski, ruski, švedski, češki, hrvaški, portugalski, islandski, srbski, danski.

Vadnica za knjigo gostov PHP. Danes sem pripravil novo zanimivo vadnico - povedal vam bom, kako lahko ustvarite knjigo gostov ajax PHP z lastno edinstveno zasnovo. Naši zapisi bodo shranjeni v SQL zbirko podatkov. Ta tabela bo vsebovala naslednje podatke: ime pošiljatelja, e-poštni naslov, zapis v knjigi gostov, datum-čas zapisa in IP pošiljatelja. Seveda bomo uporabili tudi jQuery (da bo Ajax). Ena od pomembnih funkcij bo zaščita pred neželeno pošto (vsakih 10 minut lahko objavimo največ en zapis)!

Zdaj - prenesite izvorne datoteke in začnite kodirati!

Korak 1. SQL

V bazo podatkov moramo dodati eno tabelo (za shranjevanje zapisov):

Ustvari tabelo, če ne obstaja `s178_guestbook` (` id` int (10) unsigned NOT NULL auto_increment, `name` varchar (255) default" ",` email` varchar (255) default "", `description` varchar (255) default "", `when` int (11) NOT NULL privzeto" 0 ",` ip` varchar (20) privzeto NULL, PRIMARY KEY (`id`)) ENGINE = MyISAM DEFAULT CHARSET = utf8;

Korak 2. PHP

Tu je izvorna koda naše glavne datoteke:

guestbook.php

= ") == 1) poročanje o napaki (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED); drugače poročanje o napaki (E_ALL & ~ E_NOTICE); require_once (" razredi / CMySQL.php "); // vključno z razredom storitev za delo z bazo podatkov // get funkcija IP obiskovalca getVisitorIP () ($ ip = "0.0.0.0"; if ((isset ($ _ SERVER ["HTTP_X_FORWARDED_FOR"])) && (! prazno ($ _ SERVER ["HTTP_X_FORWARDED_FOR"]))) ($ ip = $ _SERVER ["HTTP_X_FORWARDED_FOR"];) elseif ((isset ($ _ SERVER ["HTTP_CLIENT_IP"]) && (! Prazno ($ _ SERVER ["HTTP_CLIENT_IP"]))) ($ ip = eksplodiraj ("." , $ _ SERVER ["HTTP_CLIENT_IP"]); $ ip = $ ip. ".". $ Ip. ".". $ Ip. ".". $ Ip;) elseif ((! Isset ($ _ SERVER [" HTTP_X_FORWARDED_FOR "])) | | (prazno ($ _ SERVER [" HTTP_X_FORWARDED_FOR "]))) (če ((! Isset ($ _ SERVER [" HTTP_CLIENT_IP "])) && (prazno ($ _ SERVER [" HTTP_CLIENT_IP "] ))) ($ ip = $ _SERVER ["REMOTE_ADDR"];)) return $ ip;) // dobimo zadnjo funkcijo zapisov knjige gostov getLastRecords ($ iLimit = 3) ($ sRecords = ""; $ aRecords = $ GLOBALS [" MySQL "] -> getAll (" SELECT * FROM `s178_guestbook` ORDER BY` id` DESC LIMIT ($ iLimit)"); forea ch ($ aRecords as $ i => $ aInfo) ($ sWhen = date ("F j, Y H: i", $ aInfo ["kdaj"]); $ sZapisi. =<<

Zapis iz ($ aInfo ["name"]) (($ sWhen)):

($ aInfo ["description"])

EOF; ) vrniti $ sRecords; ) if ($ _POST) (// sprejema nove zapise $ sIp = getVisitorIP (); $ sName = $ GLOBALS ["MySQL"] -> escape (strip_tags ($ _ POST ["name"]))); $ sEmail = $ GLOBALS ["MySQL"] -> escape (strip_tags ($ _ POST ["name"]))); $ sDesc = $ GLOBALS ["MySQL"] -> escape (strip_tags ($ _ POST ["text"])); if ($ sName && $ sEmail && $ sDesc && $ sIp) (// zaščita pred neželeno pošto $ iOldId = $ GLOBALS ["MySQL"] -> getOne ("SELECT` id` FROM` s178_guestbook` WHERE` ip` = "($ sIp) "AND` when`> = UNIX_TIMESTAMP () - 600 LIMIT 1 "); if (! $ IOldId) (// dovolite dodajanje komentarja $ GLOBALS [" MySQL "] -> res (" INSERT INTO` s178_guestbook` SET `name` =" ($ sName) ",` email` = "($ sEmail)", `description` =" ($ sDesc) ",` when` = UNIX_TIMESTAMP (), `ip` =" ($ sIp) ""); // risanje zadnjih 10 zapisov $ sOut = getLastRecords (); echo $ sOut; exit;)) echo 1; exit;) // risanje zadnjih 10 zapisov $ sRecords = getLastRecords (); ob_start (); ?>

Zapisi iz knjige gostov

Tukaj dodajte svoj zapis

PHP knjiga gostov | Vadnice za skripte

PHP knjiga gostov

Nazaj na izvirno vadnico o Vadnicah za skripte


Ko odpremo to stran, bomo videli knjigo, na levi strani bomo narisali seznam zadnjih treh zapisov, na desni - obliko objave novih zapisov. Ko oddamo obrazec - skript, ki pošlje podatke POST (na isto stran php), skript shrani te podatke v bazo podatkov in nam vrne seznam svežih 3 zapisov. Nato z učinkom izginjanja potegnemo vrnjene podatke v levi stolpec. Vsa koda vsebuje komentarje - preberite jo za boljše razumevanje kode. Ok, naslednja datoteka PHP je:

razredi / CMySQL.php

To je moj lastni razred storitev za delo z bazo podatkov. To je lep razred, ki ga lahko uporabite tudi vi. Podrobnosti o povezavi z zbirko podatkov, ki se nahajajo v tem razredu v nekaj spremenljivkah, se prepričajte, da boste to lahko konfigurirali v svojo bazo podatkov. Njegovih virov ne bom objavil - to zaenkrat ni potrebno. Na voljo v paketu.

Korak 3. CSS

Zdaj - vsi uporabljeni slogi CSS:

css / main.css

* (rob: 0; oblazinjenje: 0;) telo (barva ozadja: #fff; barva: #fff; pisava: 14px / 1.3 Arial, sans-serif;) noga (barva ozadja: #212121; spodaj: 0; box-shadow: 0 -1px 2px # 111111; display: block; height: 70px; left: 0; position: fixed; width: 100%; z-index: 100;) footer h2 (font-size: 22px; font- teža: normalno; levo: 50%; rob levo: -400px; oblazinjenje: 22px 0; položaj: absolutno; širina: 540px;) noga a.stuts, a.stuts: obiskano (meja: nič; okras za besedilo: brez ; color: #fcfcfc; font-size: 14px; left: 50%; line-height: 31px; margin: 23px 0 0 110px; position: absolute; top: 0;) footer .stuts span (size-font: 22px; font-weight: bold; margin-left: 5px;) .container (ozadje: prozoren url (../ images / book_open.jpg) zgornji center brez ponavljanja; barva: # 000000; višina: 600px; rob: 20px samodejno; prelivanje: skrito; oblazinjenje: 35px 100px; položaj: relativno; širina: 600px;) # col1, # col2 (plavajoče: levo; rob: 0 10px; preliv: skrit; poravnava besedila: center; širina: 280px;) # col1 (-webkit-transform: rotate (3deg); -moz-transform: rotate (3deg); -ms-transform: rotate (3deg); -o-preobrazba: rotacija (3 stopinje); ) #records form (margin: 10px 0; padding: 10px; text-align: left;) #records table td.label (color: #000; font-size: 13px; padding-right: 3px; text-align: right ;) #oznaka tabele zapisov (velikost pisave: 12px; navpično poravnavo: sredina;) #tabela zapisov td.vnos polja, #tabela zapisov td.field besedilno območje (barva ozadja: rgba (255, 255, 255, 0.4) ; rob: 0px solid # 96A6C5; font-family: Verdana, Arial, sans-serif; font-size: 13px; margin-top: 2px; padding: 6px; width: 190px;) #records table td.field input (ozadje -barva: rgba (200, 200, 200, 0.4); kazalec: kazalec; float: desno; širina: 100px;) #zapisuje tabelo td.vnos polja: lebdi (barva ozadja: rgba (200, 200, 200, 0.8 );) #records_list (text-align: left;) #records_list .record (rob na vrhu: 1px solid #000000; velikost pisave: 13px; oblazinjenje: 10px;) #records_list .record: first-child (border-top -width: 0px;) #records_list .record p: first-child (font-weight: bold; font-size: 11px;)

Danes bom opisal morda najboljšo nalogo za začetnike programskega jezika PHP - Knjigo gostov. Po mojem mnenju je ta naloga najpreprostejša, hkrati pa vam omogoča, da se naučite vseh glavnih značilnosti dela s PHP in bazo podatkov MySQL. Poleg tega je ta naloga neskončno razširljiva, kar vam omogoča izpopolnjevanje novih tehnologij.

Opis in rešitev te težave bosta napisana tukaj, brez preverjanja učinkovitosti, zato je morda nekje tipkarska napaka. To ni bilo storjeno zaradi moje lenobe, ampak spet zaradi dodatnega usposabljanja, ko ste ustvarjali knjigo gostov. Tudi predstavljena rešitev bo nekoliko "kriva", vendar več o tem na koncu tega članka v razdelku "Samostojno delo".

Če sploh ne veste, kako delati s PHP, vam najprej svetujem, da preberete objavo PHP - kje začeti.

Analizirali bomo nastanek najbolj primitivne knjige gostov, brez oblikovanja in upravljanja. Z drugimi besedami, omejili se bomo na vnos knjige, registracijo in puščanje sporočil.
Iz same naloge postane jasno, da se lahko popolnoma omejimo na tri php datoteke za izpolnitev te naloge. Seveda lahko nalogo registracije razdelimo na dva dela: obrazec za registracijo in dodajanje podatkov v bazo podatkov, vendar tega ne bomo storili. Podobno sklepanje velja za postopek komentiranja. Tako ustvarimo tri datoteke: index.php, registration.php, book.php.

Po imenih datotek lahko takoj razumete, za kaj bodo odgovorne: index.php - stran za prijavo, register.php - stran za registracijo, book.php - stran knjige gostov.

Najpreprostejša stvar v našem primeru je stran za prijavo. Ker je stran odgovorna za vnos para prijav in gesla, mora imeti obrazec za pošiljanje teh podatkov na stran book.php. Pa tudi povezavo do strani za registracijo. Imamo:

Prijava v knjigo gostov

Vpiši se:
Geslo:

registracija


Premakni se malo iz teme, za tiste, ki jim ni všeč, kaj pomeni zgornja koda. Tukaj imamo goli HTML. Ključna točka je oznaka oblika ki ima dva parametra dejanje, ki je odgovoren za naslov strani, ki se odpre po potrditvi vnosa podatkov, in parameter metoda, ki odgovarja na način pošiljanja podatkov obrazca določeno stran(glejte POST in GET na preprost način). Znotraj oznake obrazca so navedena polja za vnos (vnos, izbira), ki morajo imeti atribut ime... Zaradi vrednosti tega atributa bo mogoče dobiti podatke, ki jih je uporabnik vnesel na stran, navedeno v parametru akcijske oblike... V obrazcu mora biti vnos z vrsto predloži, ki je v bistvu gumb, s klikom na katerega se bodo podatki poslali na stran z dejanji.

Nadaljujmo ... Zdaj moramo ustvariti novo stran za registracijo uporabnikov. Vredno je takoj razmisliti, kaj točno želimo imeti. Odločil sem se, da bi za preprosto knjigo gostov povsem zadostovali uporabniki z edinstvenimi prijavami, pa tudi naslov njihove spletne strani (če obstaja). Ko se odločimo, kaj želimo vedeti o uporabniku, lahko začnemo oblikovati svojo bazo podatkov.

Pojdite na phpMyAdmin. Ustvarimo bazo podatkov z imenom gb. V tej zbirki podatkov ustvarite tabelo Uporabniki z naslednjimi polji:

Prijava varchar (50) edinstveno // uporabniško ime, polje za edinstveno geslo varchar (150) // www geslo varchar (255) // naslov spletnega mesta

In ker smo že vstopili v urejevalnik baz podatkov, lahko takoj pomislimo, kako bomo shranili sporočila. V našem primeru je povsem primerno vedeti, kdo in kdaj je zapustil sporočilo, no, in dejansko besedilo našega sporočila. Zaradi udobja je vredno oštevilčiti naša sporočila. Odločili smo se za to, zato lahko varno ustvarimo drugo tabelo sporočil z naslednjo strukturo:

Id int ai (auto_increment) primary_key // številka sporočila, števec, ki se bo sam povečal mes text // besedilo sporočila who varchar (50) // uporabniško ime tistega, ki je zapustil sporočilo, ko je časovni žig privzeto (trenutno) // čas ko pustite sporočilo, sta privzeto trenutni datum in ura

Z urejeno bazo podatkov. Zdaj pa pojdimo na datoteko registration.php. Če povzamemo zgoraj, imamo:

registracija

Vpiši se:
Geslo:
Še enkrat geslo:
WWW: http: //


Na glavno

Nekaj ​​o kodi. Kot ste morda opazili, je PHP prisoten tukaj. Ne bom več opisoval obrazca, ampak kot vidimo, se tukaj podatki obrazca pošljejo na isto stran, kjer se nahaja ta obrazec. Z drugimi besedami, datoteka register.php podatke pošilja sama sebi. Nihče tega ne prepoveduje, vendar tega ni vedno mogoče uporabiti, saj močno pokvari berljivost kode. Po drugi strani pa to jasno dokazuje možnosti PHP jezik... V bistvu je naša stran razdeljena na dva primera. Prvi primer je, ko se na stran pošljejo podatki z zahtevo POST, drugi pa, ko na stran ni poslana zahteva POST. V drugem primeru bomo prikazali obrazec za registracijo, v prvem primeru pa bomo začeli preverjati predložene podatke. Kot lahko vidite, so podatki poslani v obliki asociativne matrike (to je matrike, katere indeksi so nizi). Poleg tega indeksi sovpadajo z imeni vnosnih polj, navedenimi v obrazcu za pošiljanje podatkov. Tisti. če pišemo

potem bomo imeli pri pošiljanju teh podatkov po zahtevi POST spremenljivko

$ _POST ["vasa-peta"]

Omeniti velja tudi, da ne preverjamo večkratne prijave. To preverjanje bo izvedeno na ravni zbirke podatkov, saj je polje za prijavo označeno kot edinstveno.

Zdaj zadnji. Ostaja samo izdelava knjige gostov. Malo razmišljanja. Ker knjiga gostov deluje po prijavi in ​​geslu, moramo najprej preveriti vneseno prijavo in geslo za razpoložljivost v bazi podatkov. Ker smo se odločili dodati sporočila tudi v datoteko book.php, bi očitno moral slediti postopek za dodajanje sporočila. No, na koncu pa prikaz vseh sporočil. (če dodate sporočilo po tem, ko je prikazano, bo dodano sporočilo prikazano šele, ko se stran znova naloži). Imamo:

Knjiga gostov ";) else (echo" Vaše sporočilo ni bilo dodano!


"; } } ?>
"name =" prijava "/> "name =" geslo "/>

"; echo" Besedilo: ". $ row [" mes "]."
";)) mysql_close ($ link);?>

To je v bistvu vse. Če koda deluje 100%, dobro. Če ne, vam svetujem, da sami poskusite popraviti napake. Zdaj obljubljeni odsek.

Samostojno delo
Kot je bilo omenjeno na začetku, je ta rešitev "kriva". Če še niste razumeli zakaj, bom zdaj razložil. Kot ste morda opazili v datoteki book.php, je v obrazcu več skritih polj za dodajanje komentarja, dve pa sta uporabniško ime in geslo, ki ju je vnesel uporabnik. Ni dobro, kajne? To težavo poskusite odpraviti s pomočjo sej (Kako delati s sejami v PHP).
Poskusite odgovoriti na vprašanje, kako se funkcije razlikujejo? prazno / nastavljeno in izstop / umiranje?
Spremenite zahtevo za pridobivanje sporočil iz baze podatkov, tako da se ob prikazu sporočil prikaže spletno mesto avtorja sporočila.
Če ste opazili, je geslo uporabnikov v bazi shranjeno v čistem besedilu, kar ni zelo dobro. Uredite kodo, tako da se razpršitev uporabniškega gesla shrani v zbirko podatkov (na primer MD5 ali SHA1).

V tej vadnici bomo ustvarili knjigo gostov PHP z uporabo AJAX -a. Zapisi bodo shranjeni v bazi podatkov. Tabela bo vsebovala naslednje podatke: ime pošiljatelja, e-poštni naslov, naslov IP in datum-čas zadnjega vnosa. Uporabljen bo JQuery (za izvedbo AJAX). Izvedena bo tudi preprosta zaščita pred neželeno pošto - vsakih 10 minut lahko objavite največ en vnos.

Korak 1. SQL

Za delovanje naše aplikacije moramo ustvariti tabelo:

Ustvari tabelo, če ne obstaja `s178_guestbook` (` id` int (10) unsigned NOT NULL auto_increment, `name` varchar (255) default" ",` email` varchar (255) default "", `description` varchar (255) privzeto "", `when` int (11) NOT NULL privzeto" 0 ",` ip` varchar (20) privzeto NULL, PRIMARY KEY (`id`)) ENGINE = MyISAM DEFAULT CHARSET = utf8;

Korak 2. PHP

Glavna datoteka bo vsebovala naslednjo kodo:

guestbook.php

= ") == 1) poročanje o napaki (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED); drugače poročanje o napaki (E_ALL & ~ E_NOTICE); require_once (" razredi / CMySQL.php "); // vključno z razredom storitev za delo z zbirko podatkov // Get IP funkcija obiskovalca getVisitorIP () ($ ip = "0.0.0.0"; if ((isset ($ _ SERVER ["HTTP_X_FORWARDED_FOR"])) && (! Empty ($ _ SERVER ["HTTP_X_FORWARDED_FOR"]))) ($ ip = $ _SERVER ["HTTP_X_FORWARDED_FOR"];) elseif ((isset ($ _ SERVER ["HTTP_CLIENT_IP"]) && (! Prazno ($ _ SERVER ["HTTP_CLIENT_IP"]))) ($ ip = eksplodiraj ("." , $ _ SERVER ["HTTP_CLIENT_IP"]); $ ip = $ ip. ".". $ Ip. ".". $ Ip. ".". $ Ip;) elseif ((! Isset ($ _ SERVER [" HTTP_X_FORWARDED_FOR "])) | | (prazno ($ _ SERVER [" HTTP_X_FORWARDED_FOR "]))) (če ((! Isset ($ _ SERVER [" HTTP_CLIENT_IP "])) && (prazno ($ _ SERVER [" HTTP_CLIENT_IP "] ))) ($ ip = $ _SERVER ["REMOTE_ADDR"];)) return $ ip;) // Pridobite zadnje vnose v funkciji knjige gostov getLastRecords ($ iLimit = 3) ($ sRecords = ""; $ aRecords = $ GLOBALS ["MySQL"] -> getAll ("SELECT * FROM` s178_guestbook` ORDER BY` id` DESC L IMIT ($ iLimit) "); foreach ($ aRecords kot $ i => $ aInfo) ($ sWhen = date ("F j, Y H: i", $ aInfo ["kdaj"]); $ sRecords. =<<

($ aInfo ["description"])

EOF; ) vrniti $ sRecords; ) if ($ _POST) (// Sprejmi nove vnose $ sIp = getVisitorIP (); $ sName = $ GLOBALS ["MySQL"] -> escape (strip_tags ($ _ POST ["name"]))); $ sEmail = $ GLOBALS ["MySQL"] -> escape (strip_tags ($ _ POST ["name"]))); $ sDesc = $ GLOBALS ["MySQL"] -> escape (strip_tags ($ _ POST ["text"])); if ($ sName && $ sEmail && $ sDesc && $ sIp) (// Zaščita pred neželeno pošto $ iOldId = $ GLOBALS ["MySQL"] -> getOne ("SELECT` id` FROM` s178_guestbook` WHERE` ip` = "( $ sIp) "AND` when`> = UNIX_TIMESTAMP () - 600 LIMIT 1"); if (! $ IOldId) (// Dodate lahko komentar $ GLOBALS ["MySQL"] -> res ("INSERT INTO` s178_guestbook `SET` name` =" ($ sName) ",` email` = "($ sEmail)", `description` =" ($ sDesc) ",` when` = UNIX_TIMESTAMP (), `ip` =" ($ sIp) ""); // Natisnite zadnjih 10 zapisov $ sOut = getLastRecords (); echo $ sOut; exit;)) echo 1; exit;) // Natisnite zadnjih 10 zapisov $ sRecords = getLastRecords (); ob_start (); ?>

Knjiga gostov

Tukaj dodajte svoje mnenje

Knjiga gostov PHP



Ko odprete stran, boste videli zvezek. Na levi strani so prikazani zadnji trije vnosi, na desni pa obrazec za objavo novega mnenja. Ko je obrazec oddan, skript pošlje podatke POST (na isto stran PHP), nato prejete podatke shrani v bazo podatkov in vrne zadnje tri zapise. Z uporabo razvojnega učinka so vnosi prikazani na levi strani knjige.

Uporabljena tudi datoteka PHP

razredi / CMySQL.php

Ta datoteka vsebuje kodo razreda za delo z bazo podatkov. Za povezavo s strežnikom je treba konfigurirati tri spremenljivke.

$ this-> sDbName = "DATABASE_NAME"; $ this-> sDbUser = "IME UPORABNIKA"; $ this-> sDbPass = "GESLO";

Korak 3. CSS

Zdaj pa oblikujmo videz knjige gostov:

css / main.css

* (rob: 0; oblazinjenje: 0;) telo (barva ozadja: #fff; barva: #fff; pisava: 14px / 1.3 Arial, sans-serif;) noga (barva ozadja: #212121; spodaj: 0; box-shadow: 0 -1px 2px # 111111; display: block; height: 70px; left: 0; position: fixed; width: 100%; z-index: 100;) footer h2 (font-size: 22px; font- teža: normalno; levo: 50%; rob levo: -400px; oblazinjenje: 22px 0; položaj: absolutno; širina: 540px;) noga a.stuts, a.stuts: obiskano (meja: nič; okras za besedilo: brez ; color: #fcfcfc; font-size: 14px; left: 50%; line-height: 31px; margin: 23px 0 0 110px; position: absolute; top: 0;) footer .stuts span (size-font: 22px; font-weight: bold; margin-left: 5px;) .container (ozadje: prozoren url (../ images / book_open.jpg) zgornji center brez ponavljanja; barva: # 000000; višina: 600px; rob: 20px samodejno; prelivanje: skrito; oblazinjenje: 35px 100px; položaj: relativno; širina: 600px;) # col1, # col2 (plavajoče: levo; rob: 0 10px; preliv: skrit; poravnava besedila: center; širina: 280px;) # col1 (-webkit-transform: rotate (3deg); -moz-transform: rotate (3deg); -ms-transform: rotate (3deg); -o-preobrazba: rotacija (3 stopinje); ) #records form (margin: 10px 0; padding: 10px; text-align: left;) #records table td.label (color: #000; font-size: 13px; padding-right: 3px; text-align: right ;) #oznaka tabele zapisov (velikost pisave: 12px; navpično poravnavo: sredina;) #tabela zapisov td.vnos polja, #tabela zapisov td.field besedilno območje (barva ozadja: rgba (255, 255, 255, 0.4) ; rob: 0px solid # 96A6C5; font-family: Verdana, Arial, sans-serif; font-size: 13px; margin-top: 2px; padding: 6px; width: 190px;) #records table td.field input (ozadje -barva: rgba (200, 200, 200, 0.4); kazalec: kazalec; float: desno; širina: 100px;) #zapisuje tabelo td.vnos polja: lebdi (barva ozadja: rgba (200, 200, 200, 0.8 );) #records_list (text-align: left;) #records_list .record (rob na vrhu: 1px solid #000000; velikost pisave: 13px; oblazinjenje: 10px;) #records_list .record: first-child (border-top -width: 0px;) #records_list .record p: first-child (font-weight: bold; font-size: 11px;)