Contacts

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"])

Eof; ) Renvoyer $ srecords; ) Si ($ _Post) (// Nous acceptons de nouveaux enregistrements $ SIP \u003d GETVISITORIP (); $ SNAME \u003d $ GLOBALALS ["MYSQL"] -\u003e ÉVALUATION (STRAIND_TAGS ("Nom"]))); $ $ Globals ["mysql"] -\u003e Escape (Strip_tags ($ _ POST ["NOM"]))); $ SDESC \u003d $ globals ["mysql] -\u003e évasion (Strip_tags (" Texte "])) ; si ($ sname && $ SEMAIN && $ SEMAIN && SDESC && $ SIP) (// SPAM Protection $ oldid \u003d $ Globals ["MySQL"] -\u003e getone ("SELECT` ID" à partir de `s178_guestbook` Où` ip` \u003d" ($ SIP) "Et` quand"\u003e \u003d unix_timestamp () - 600 limite 1 "); si (! $ Oldid) (// Vous pouvez ajouter un commentaire de $ globals [" mysql "] -\u003e res (" insert dans` S178_GuestBook `Set` nom` \u003d" ($ nommé) ",` email` \u003d "($ semail)", `Description` \u003d" ($ sdesc) ",` quand` \u003d UNIX_TIMESTAMP (), `IP` \u003d" ($ SIP) ""); // Affiche les 10 derniers enregistrements $ Sout \u003d GetLastrecords (); echo $ SOUT; sortie;)) echo 1; sortie;) // Affiche les 10 derniers enregistrements $ Srecords \u003d GetLastrecords (); Ob_start (); ?\u003e.

Livre d'or

Ajoutez vos commentaires ici

Livre d'or sur PHP



Lorsque vous ouvrez la page, vous verrez un cahier. Les trois derniers enregistrements sont affichés sur le côté gauche et le droit est le formulaire de publication d'un nouvel examen. Lorsque le formulaire est envoyé, le script envoie les données post (la même page PHP), puis enregistre les données obtenues dans la base de données et renvoie trois derniers enregistrements. En utilisant l'effet de la manifestation, les enregistrements sont affichés sur le côté gauche du livre.

Aussi utilisé fichier php

classes / CMYSQL.PHP.

Ce fichier contient le code de classe pour fonctionner avec la base de données. Cela vous oblige à configurer trois variables pour vous connecter au serveur.

$ ceci-\u003e sdbname \u003d "Nom de base de données"; $ ceci-\u003e sdbuser \u003d "nom d'utilisateur"; $ ceci-\u003e sdbass \u003d "mot de passe";

Étape 3. CSS.

Et maintenant je ferai l'apparence du livre d'or:

cSS / Main.css.

* (marge: 0; rembourrage: 0;) corps (couleur: #fff; couleur: #fff; police: 14px / 1.3 Arial, sans-serif;) Foterie (Couleur de l'arrière-plan: # 212121; Boîte Shadow: 0 -1px 2px # 111111; Affichage: bloc; hauteur: 70px; gauche: 0; position: fixe; largeur: 100%; index z: 100;) Footer H2 (Portage: 22px; Poids: Normal; gauche: 50%; bord gauche: -400px; rembourrage: 22px 0; Position: absolu; largeur: 540px;) Footer A.stuts, A.stuts: Visité (frontière: Aucun; Texte-Décoration: Aucun; Couleur : #Fcfcfc; la taille de la police: 14px; gauche: 50%; hauteur de la ligne: 31px; marge: 23px 0 0 110px; position: absolu; TOP: 0;) Pied de page de page (Taille de police: 22px; Poids: audacieux; Marge-gauche: 5px;) .Container (arrière-plan: URL transparent (../ images / book_open.jpg) Centre supérieur non répété; Couleur: # 000000; Hauteur: 600px; Marge: 20px Auto; Overflow: Caché; rembourrage: 35px 100px; position: relatif; largeur: 600px;) # col1, # col2 (flotteur: gauche; marge: 0 10px; Text-alignement: Centre; Largeur: 280px;) # Col1;) # (-WebKit-Transform: Tourner (3DEG); -Moz-transformer: rotation (3deg); -Ms-transformer: pivoter (3deg); -O-transformer: pivoter (3deg); ) #Records forme (marge: 10px 0; rembourrage: 10px; text-alignement: gauche;) #Records table TD.Label (couleur: # 000; Padding-droite: 3px; text-alignement: droit ;) #Records étiquette de table (taille de la police: 12px; vertical-alignement: milieu;) #Records table td.field entré, #records table TD.Field Texarea (Couleur de l'arrière-plan: RGBA (255, 255, 255, 0.4) ; Frontière: 0px Solid # 96A6C5; Font-face: Verdana, Arial, Sans-Serif; Taille de la police: 13px; Marge-Haut: 2px; Rembourrage: 6px; Largeur: 190px;) #Records Table TD.FIELD INPUT (Fond -Color: RGBA (200, 200, 200, 0,4); curseur: pointeur; float: droite; largeur: 100px;) #Records table TD.Field entrée TD.FIELD INPUT: HOVER (Couleur de l'arrière-plan: RGBA (200, 200, 200, 0,8 );) #Records_list (text-alignement: gauche;) #records_list .Record (bordure supérieur: 1px solide # 000000; Taille de la police: 13px; rembourrage: 10px;) #Records_list .Record: premier enfant (frontière - Largeur: 0px;) #Records_list .Record P: Premier-enfant (Poids de la police: audacieux; Taille de la police: 11px;)

Parmi nos réfs, je rencontre très souvent des difficultés similaires, la plupart d'entre eux ont les spams, qu'ils achètent, ou trouvent quelque part sur Internet, mais ils n'ont rien à spam, ils n'ont plus une meilleure base concurrentielle. Dans cet article, je vais essayer de définir les méthodes de séparation, c'est-à-dire Je vais essayer d'enseigner aux nouveaux arrivants à collecter autant que possible.

L'analyse est le processus de collecte de ressources (sites). Collecte exactement des sites et leurs adresses. Nous recueillons ces ressources pour le prochain spam. Vous pouvez passer n'importe quoi - des livres d'invités, des forums, des blogs, des wiki, la principale chose que vous pouvez laisser votre message en référence à votre DOR.
La demande est ce que nous entrons dans le moteur de recherche.
Les émissions sont ces sites qui donnent un moteur de recherche à notre demande.

Ensuite, je souhaite noter que le plus important de l'analyse est la possibilité d'utiliser correctement le moteur de recherche. Par conséquent, vous devez connaître la syntaxe des demandes. Je vais m'arrêter dans Google. Il a la plus grande base de données, par rapport à d'autres moteurs de recherche.
La syntaxe des demandes de Google.
1) INURL: "XXX" - Le moteur de recherche émettra tous les sites à l'adresse qui trouvera XXX, au lieu de XXX, nous pouvons insérer n'importe quel autre mot, tel que le livre d'or, le forum, etc.
2) Intitle: "xxx" - le moteur de recherche donnera à tous les sites de l'en-tête qui trouvera XXX. Encore une fois, au lieu de XXX, il peut y avoir n'importe quel mot.
3) Site: .xxx.com - Le moteur de recherche donnera toutes les pages du domaine xxx.com, au lieu de xxx.com peut être n'importe quel domaine de n'importe quel niveau. C'est peut-être jopa.mail.ru ou par exemple, simplement. R.M., si nous venons de quitter.ru, le moteur de recherche nous donnera tous les sites de la zone de domaine.ru. Au lieu.ru peut be.com, .org, .net, etc.
4) INTEST: "XXX" - Le moteur de recherche nous donnera tous les sites du texte que le mot xxx a été trouvé. Au lieu de xxx - n'importe quel mot.
5) "XXX" - Le moteur de recherche nous donnera des sites dans lesquels le mot xxx a été trouvé (trouvé partout dans l'URLA ou dans le texte ou l'en-tête, peu importe).
6) - "xxx" - le moteur de recherche nous donnera tous les sites exclus ceux dans lesquels le mot xxx a été trouvé. Inurl peut également rester après moins: "xxx" Intitle: "xxx" site: .xxx.com intext: "xxx", etc.

*** Vous pouvez écrire la même chose sans citations, mais je recommande fortement de toujours les mettre, car Les citations affichent Google la gravité de la demande et il ne donnera donc pas à toutes les ordures, qui, à son avis, conviennent également à la demande.

Il est très important non seulement de connaître la syntaxe des demandes, mais également de pouvoir les combiner correctement. C'est maintenant que nous allons traiter. En fait, tout est très très simple.

introduction
Il y a un grand nombre de livres invités dans le monde, mais ils parlent tous à peu près sont divisés en deux types principaux de même type et non uniformes. Les clients sont des invités qui ont les mêmes fins et les mêmes champs obligatoires à remplir.
Voici des exemples d'une partie du même type d'invité.
http://www.saveus.org/guestbook/sign.asp?pagePosition\u003d1
http://www.caltrap.org/guestbook/sign.asp?pagePosition\u003d1
http://mail.bebat.be/guestbookf/sign.asp?pageposition\u003d1
ou alors
http://www.becque.com/addguest.html.
http://www.vetgen.com/guest/addguest.html
http://www.newcreations.net/webmaster/guestbook/addguest.html
Que ces invités sont pratiques:
1) facile à parcourir
2) sont analysés plus facilement (s'il n'y a pas 10 invité de cet invité de ce type, tous les autres sont probablement pas négligés)

Donc, novice je recommanderais de commencer avec la collection du même type d'invité.
Types d'hôtes Il y a un énorme ensemble cohogromique, respectivement, divers invités à un seul type.

Soins de la marche. Pour commencer, nous devons décider du type d'invité que nous voulons collecter et quoi (je veux dire beaucoup de mains, ne collecte pas sourire). Quand j'ai commencé, j'ai utilisé le programme AllSubmiter. Il a un analyseur intégré. Le programme comme tous les autres payés, mais sans procès du terme. Et si vous ne plongez pas ce programme, il effectue uniquement les fonctions de l'analyseur, heh et nous sommes exactement ce dont vous avez besoin. Si nous le sautons et ne l'activez pas, seul l'analyseur fonctionnera, l'analyseur recueille toutes les ULLAS de la page à l'exclusion des liens internes de Google, l'analyseur tire en doublons de domaines et de doublons de liens.
Allsubmiter prendre ici
Pour un nouveau type d'invité, nous créons une nouvelle base de données.

Nous lui demandons le nom.

Maintenant, procédez, je vais montrer sur un exemple spécifique sur la manière de collecter la base de données à l'aide d'un allusubmitter. Recueillant, eh bien, disons le type d'invité - gook.php? A \u003d signe. Ces invités ont les mêmes fins lorsqu'ils entrent dans Google Inurl: "gook.php? A \u003d signe" dans Google eux ~ 10.5k. Mais Google ne donne pas plus de 1000 résultats de la demande, que faire, comment collecter plus de 1k? Pour ce faire, vous devez réduire la demande à plusieurs reprises, il est nécessaire de délivrer sur demande ne dépassant pas un millier de sites. Nous pouvons donc collecter tous les résultats. L'analogie peut être qu'avec les filles, vous ne supprimerez pas tous les vêtements à la fois tombé, d'abord, puis l'autre, puis le soutien-gorge, etc. En conséquence, elle deviendra toujours nue et celle qui a retiré tous les vêtements, et non celle qui a essayé de tout supprimer à la fois dans un swoop, a décollé seulement la casquette et pensait qu'elle ne retirerait même rien d'elle. C'est ce que je ne me termine pas dans les invités pour collecter des invités sur demande inurl: "gook.php? A \u003d signe", mais cela commence par elle. Il est conseillé de faire une demande même si
Inurl: "gook.php? A \u003d signe" - "Erreur" - "Avertissement", donc nous supprimons certains des mauvais sites de non-travail.
Après avoir créé une nouvelle base de données et Allsubmithere, entrez google.com dans le navigateur et entrez la requête là-bas. (Il est nécessaire que, dans Google, il ait été fourni - "pour émettre 100 Urlons sur la page", il accélérera la collection d'analyseurs Allesubmitter), c'est ce que nous voyons

Ensuite, nous cliquons sur OK, puis dans le navigateur du programme "Retour" et nous faisons la même chose avec les 2e pages d'émission, puis avec le troisième, etc.

En faisant cela pour faire une autre demande, par exemple \u003e\u003e
inurl: "gook.php? a \u003d signe" Site: .com, c'est-à-dire Nous allons collecter tous les gestes du domaine Zone.com, encore une fois, nous faisons la même procédure de collecte (voir photos)
Puis une autre demande
inurl: "gook.php? a \u003d signe" Site: .NET
inurl: "gook.php? a \u003d signe" Site: .. biz
inurl: "gook.php? a \u003d signe" Site: .org
En général, vous pouvez rester tous les types de domaines.
Site: .com.
Site: .NET
Site: .. biz
Site: .org.
Site: .in.
Nom du site.
Site: .ru
Site: .fr.
Site: .it.
Site: .edu.
Site: .gov.
Site: .mil.
Site: .info.
Site: .au.
Site: .at.
Site: .by.
Site: .be.
Site: .bg.
Site: .ca.
Site: .cn.
Site: .cz.
Site: .dk
Site: .eg.
Site: .de
Site: .gr.
Site: .Hu.
Site: .ie
Site: .il.
Site: .jp.
Site: .us.
Site: .uk.
Site: .ua.
Site: .ch.
Site: .se.
Site: .es.
Site: .pl
Site: .nl.
Site: .ro.
Site :.Pour.
Site: .mx

Alsubmititer ajoutera uniquement des domaines uniques à la base. Vous ne devez donc pas avoir peur de faire des demandes, des doublons ne seront pas j

Ensuite, vous pouvez faire de telles demandes
Inurl: "Livre d'or / gbook.php? A \u003d signe"
Inurl: "gook / gbook.php? A \u003d signe"
Inurl: "gb / gbook.php? A \u003d signe"
Inurl: "Guest / gbook.php? A \u003d signe"
Et ensuite faire une telle puce
Inurl: "gook.php? A \u003d signe" - inurl: "Livre d'or / gbook.php? A \u003d signe" -inurl: "gbook / gbook.php? A \u003d signe" -inurl: "gb / gbook.php? A \u003d Signe "-inurl:" Guest / gbook.php? A \u003d signe "
ceux. Tirer ce qui a déjà été posé

Vous pouvez combiner les demandes les plus et les plus différentes ensemble, vous pouvez utiliser "-"
Pour drainer ce que vous êtes déjà posé, la principale chose à apporter autant de demandes que possible.

Où chercher de nouveaux types de GEST? Habituellement j'ai utilisé deux méthodes:
1) Sur Internet, des livres d'invités prêts à l'emploi sont souvent planifiés et, comme ils sont planifiés, ils sont massives, c'est-à-dire Pour tous, c'est-à-dire que beaucoup d'entre eux sont installés sur différents sites, etc. Il suffit de balancer ces gests versez le frishnik et regardez ce qu'ils se terminent, puis vous regardez cette fin dans Google, si une grande extradition signifie également la collectionner, petit - cela signifie que ces livres ne sont pas populaires et les collectent qu'il n'y a pas de sens particulier .
2) Vous pouvez rechercher de nouveaux types de gestons dans les clés de concurrents, tout peut et dire qu'il est laid laid, etc., mais beaucoup aussi, bien que l'IMHO soit préférable de combiner les première et deuxième manières.

À partir d'analyseurs automatiques normaux, un analyseur de mangue (253880089 - son Asya), il est peu coûteux, mais très rapidement et qualitativement collecte, filtres sur duplicats et supprime la session PCP + distribue le PR.

En principe, tout le monde, toutes les questions et souhaits, écrivez ici, je vais essayer de répondre à tous.

© Vadiuha. Tous les droits sont protégés

Php 5.2 et plus;
- mod_rewrite;
- MySQL 4.1 et la base de données supérieure.

Capacités

Intégré à n'importe quel site (pour cela, il vous suffit de modifier les fichiers top.php et bas.php);
- antifrud;
- liste d'interdiction;
- Navigation de page<< < ...| 5 | 6 | 7 ... > >>;
- Prise en charge de BBCode;
- afficher des émoticônes;
- notification de nouveaux messages supplémentaires;
- la possibilité d'ajouter des messages à la modération;
- le panneau d'administration;
- Facile à installer et à teindre.

Installation

Déballez les archives et copiez le contenu de l'archive vers n'importe quel dossier de votre serveur Web (par exemple, «Livre d'or»). Ouvrez le fichier config / config_db.php dans un éditeur de texte et spécifiez les paramètres de connexion (base de données hôte ou IP, nom de la base de données, identifiant et mot de passe). Placez la table de base de données MySQL SQL Query du fichier Guestbook.SQL. Habituellement, sur la plupart des hébergements, il est fait via une interface Web via phpmyadmin. Allez sur le panneau d'administration (http: // votre_sight / folder_s_script / admin /) et entrez le mot de passe 1111. Suivant, spécifiez les paramètres nécessaires.

Version commerciale

À la demande du client, je peux adapter le script pour des conditions spécifiques. Différentes fonctionnalités supplémentaires peuvent être ajoutées.

Noter

Script "PHP Guestbook", puis le programme est totalement gratuit. Vous pouvez distribuer librement, copier, apporter vos modifications dans le code source du programme, uniquement si le rédacteur de rédaction de l'auteur est enregistré. L'utilisation du programme "PHP Livre d'or" à des fins commerciales est interdite. Vous utilisez ce programme sur votre peur et votre risque. L'auteur ne supporte aucune responsabilité quant à la performance du programme, ainsi qu'à la perte, aux dommages causés aux données ou à autre chose liée à l'utilisation et au fonctionnement de ce programme.

Si vous aimez mon script et que vous avez le désir de me remercier par le rouble, voici mes détails:

Webmoney
U237811811298.
R198597198920.
Z917380288657.

Yandex argent
41001635943434

Pay Pal.

Si vous avez des questions ou des suggestions, écrivez-moi s'il vous plaît: Cette adresse e-mail est protégée du spam. Vous devez avoir activé Javascript pour voir.



Avez-vous aimé l'article? Partagez-le