Ebben az oktatóanyagban egy vendégkönyvet készítünk PHP-ben AJAX használatával. A rekordokat az adatbázisban tároljuk. A táblázat a következő információkat tartalmazza: a feladó neve, e-mail címe, IP-címe és az utolsó bejegyzés dátuma és ideje. jQuery kerül felhasználásra (az AJAX megvalósításához). Egy egyszerű spam elleni védelem is megvalósul – 10 percenként legfeljebb egy bejegyzést tehet közzé.
1. lépés: SQL
Ahhoz, hogy alkalmazásunk működjön, létre kell hoznunk egy táblázatot:
TÁBLÁZAT LÉTEZÉSE, HA NEM LÉTEZ `s178_vendégkönyv` (`id` int(10) unsigned NOT NULL auto_increment, `name` varchar(255) default "", `email` varchar(255) default "", `description` varchar(255) alapértelmezett "", `when` int(11) NOT NULL alapértelmezett "0", `ip` varchar(20) alapértelmezett NULL, ELSŐDLEGES KULCS (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2. lépés PHP
A fő fájl a következő kódot tartalmazza:
vendégkönyv.php
=") == 1) error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); else error_reporting(E_ALL & ~E_NOTICE); request_once("classes/CMySQL.php"); // beleértve a szolgáltatásosztályt az adatbázissal való együttműködéshez // Letöltés Látogatói IP függvény getVisitorIP() ( $ip = "0.0.0.0"; if((isset($_SERVER["HTTP_X_FORWARDED_FOR"])) && (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))) ( $ip = $ _SZERVER["HTTP_X_FORWARDED_FOR"]; ) elseif((isset($_SERVER["HTTP_CLIENT_IP"])) && (!empty($_SERVER["HTTP_CLIENT_IP"]))) ( $ip = explode(".",$_SZERVER[ "HTTP_CLIENT_IP"]); $ip = $ip.".".$ip.".".$ip.".".$ip; ) elseif((!isset($_SERVER["HTTP_X_FORWARDED_FOR"])) | | (empty($_SERVER["HTTP_X_FORWARDED_FOR"]))) ( if ((!isset($_SERVER["HTTP_CLIENT_IP"])) && (empty($_SERVER["HTTP_CLIENT_IP"]))) ( $ip = $_SERVER ["REMOTE_ADDR"]; ) ) return $ip; ) // A vendégkönyv legfrissebb bejegyzéseinek lekérése getLastRecords($iLimit = 3) ( $sRecords = ""; $aRecords = $GLOBALS["MySQL"]->getAll ( "SELECT * FROM `s178_vendégkönyv" ORDER BY `id` DESC L IMIT($iLimit)"); foreach ($aRecords mint $i => $aInfo) ( $sWhen = dátum("F j, Y H:i", $aInfo["when"]); $sRecords .=<< ($aInfo["leírás"])