Fête de poisson Inurl Pension PHP. Livre d'or sur PHP
Dans cette leçon, nous créerons un livre d'or sur PHP avec Ajax. Les entrées seront stockées dans la base de données. La table contiendra les informations suivantes: nom de l'expéditeur, adresse e-mail, adresse IP et date-heure de la dernière entrée. JQuery sera utilisé (pour la mise en œuvre de Ajax). Une protection facile des spam sera également mise en œuvre - vous pouvez poster plus d'un enregistrement toutes les 10 minutes.
Étape 1. SQL
Pour travailler notre candidature, vous devez créer une table:
Créer une table Si non EXISTE `défaut S178_Guestbook` (Int (10) non signés non auto_increment ,` name` VARCHAR (255) Valeur par défaut "", `email` Varchar (255) Par défaut », `description` Varchar (255) "", `Quand` int (11) non nul défaut" 0 ",` ip` varchar (20) NULL par défaut, clé primaire (`id`) (` id``)) \u003d MyISAM Par défaut Charset \u003d UTF8;
Étape 2. PHP.
Le fichier principal contiendra le code suivant:
guestbook.php.
\u003d ") \u003d\u003d 1) Error_Reporting (e_all & ~ e_notice & ~ e_depecated); sinon error_rporting (e_all & ~ e_notice); requir_once (" classes / cmysql.php "); // y compris la classe de service à travailler avec la base de données // obtenir IP fonction de visiteur getvisitorip () ($ ip \u003d "0.0.0.0"; if (! (isset ($ _ serveur [ "HTTP_X_FORWARDED_FOR"])) && (vide ($ _ serveur [ "HTTP_X_FORWARDED_FOR"]))) ($ ip \u003d $ _SERVER [ "HTTP_X_FORWARDED_FOR"]; (! vide ($ _ serveur [ "HTTP_CLIENT_IP"])) "") elseif ((isset ($ _ serveur [ "HTTP_CLIENT_IP"])) &&) ($ ip \u003d explode ( , $ _ serveur [ "HTTP_CLIENT_IP"]); $ ip \u003d $ ip Ip $ $ IP $ IP. "". "". ""!) elseif ((isset ($ _ serveur [ "http_x_forward_for"] )) | | (! empty ($ _ serveur [ "HTTP_X_FORWARDED_FOR"]))) (if ((isset ($ _ serveur [ "HTTP_CLIENT_IP"])) && (vide ($ _ serveur [ "HTTP_CLIENT_IP"]))) ($ ip \u003d $ _SERVER [ "REMOTE_ADDR"];)) Retour $ ip;) // Obtenir les dernières entrées dans le livre d'or fonction GetLastRecords ($ ILIMIT \u003d 3) ($ SRECORDS \u003d ""; $ ARECORDS \u003d $ GLOBALS [ "MySQL"] -\u003e GetAll ( « SELECT * from` s178_guestbook` Trier par ID` L DESC Imit ($ ilimit) "); Foreach ($ arecords comme $ i \u003d\u003e $ ainfo) ($ SWHEN \u003d date ("F J, Y H: I", $ AINFO ["Quand"]); $ srecords. \u003d<< ($ Ainfo ["Description"])