Σενάριο βιβλίου επισκεπτών σε PHP. Σχεδίαση ιστοσελίδων και βελτιστοποίηση μηχανών αναζήτησης Εγκατάσταση και ρωσοποίηση του βιβλίου επισκεπτών Phoca

» » @lexGuestbook

Το @lex Guestbook είναι ένα δωρεάν σενάριο βιβλίου επισκεπτών PHP για ιστότοπους. Γραμμένο σε γλώσσα PHP, @lexGuestbookΕύκολο στην εγκατάσταση μέσα σε λίγα λεπτά, ακόμη και οι αρχάριοι θα το καταλάβουν εύκολα.

Βιβλίο επισκεπτών PHPΈνα εντελώς δωρεάν σενάριο - η κύρια προϋπόθεση: μην αφαιρέσετε τα πνευματικά δικαιώματα στο κάτω μέρος της σελίδας. Το βιβλίο επισκεπτών PHP είναι εγκατεστημένο στον διακομιστή σας και είναι εντελώς ανεξάρτητο από οποιουσδήποτε άλλους ιστότοπους. Δημιουργήστε αντίγραφα ασφαλείας ενός μηνύματος στο βιβλίο επισκεπτών της PHP κατόπιν αιτήματός σας, ακόμη και κάθε μέρα. Αυτόματη εγκατάσταση Βιβλίο επισκεπτών Alex: τα ονόματα των πινάκων στη βάση δεδομένων γράφονται από μόνα τους.

Τα οφέλη του σεναρίου.
  • Χάρη στα skins, μπορείτε να αλλάξετε την εμφάνιση του @lexGuestbook για να ταιριάζει με το σχεδιασμό του ιστότοπού σας. (όλα τα δέρματα είναι έγκυρα XHTML 1.0 Transitional)
  • Υπάρχουν περίπου 20 γλώσσες ενσωματωμένες στο βιβλίο επισκεπτών PHP.
  • Κάθε χώρα έχει τη δική της σημαία.
  • Υποστήριξη για emoticons: η δυνατότητα προσθήκης των δικών σας emoticons, διαγραφής, επεξεργασίας.
  • Εμφανίζονται στατιστικά χαρακτήρων: μπορείτε να ορίσετε τον μέγιστο αριθμό γραμμάτων σε ένα μήνυμα.
  • Εσωτερική μηχανή αναζήτησης.
  • Δυνατότητα αξιολόγησης από επισκέπτες. Βαθμολογία σε σύστημα 10 βαθμών.
Υποστηριζόμενες γλώσσες

Πλήρης μετάφραση.
Γαλλικά, Αγγλικά, Πολωνικά, Γερμανικά, Νορβηγικά, Ιταλικά, Ολλανδικά, Σλοβακικά, Περσικά, Τουρκικά.

Μερική μετάφραση. Μερικές λέξεις είναι ακόμα στα αγγλικά.
Ισπανικά, Ρώσικα, Σουηδικά, Τσέχικα, Κροατικά, Πορτογαλικά, Ισλανδικά, Σερβικά, Δανέζικα.

Για τους κώδικες HTML, ο προγραμματισμός του βιβλίου επισκεπτών μπορεί να φαίνεται αδιάφορος στην αρχή, και δικαίως. Όταν βλέπετε ένα βιβλίο επισκεπτών, ζητούνται βασικές πληροφορίες και φαίνεται ότι οποιοσδήποτε με θεμελιώδεις γνώσεις της γλώσσας προγραμματισμού HTML μπορεί να γράψει κώδικες HTML βιβλίου επισκεπτών. Ωστόσο, τα βιβλία επισκεπτών, από το καλύτερο έως το χειρότερο, απαιτούν λίγο περισσότερη ικανότητα από ό,τι νομίζετε.

Τι είναι το Βιβλίο Επισκεπτών;

Το βιβλίο επισκεπτών είναι ένας διαδικτυακός τρόπος για να επιτρέψετε στους επισκέπτες του ιστότοπού σας να σχολιάσουν ή να ζητήσουν πληροφορίες. Τα περισσότερα βιβλία επισκεπτών δημοσιεύουν ό,τι είναι γραμμένο στην ιστοσελίδα, έτσι ώστε όλοι να μπορούν να διαβάσουν τα σχόλια των επισκεπτών. Τα πιο συνηθισμένα στοιχεία που βλέπετε σε ένα βιβλίο επισκεπτών είναι:

  • Όνομα ή Όνομα χρήστη
  • Πού κατοικούν (αν και μπορείτε να ορίσετε τον κώδικα HTML για να αποκρύψετε αυτό το γεγονός)
  • Email (και πάλι, μπορείτε να αποκρύψετε αυτό το γεγονός και να το στείλετε μόνο στο email σας για λόγους επικοινωνίας
  • Σχόλια
  • Ορισμένα βιβλία επισκεπτών παραιτούνται από την ενότητα σχολίων για μια γρήγορη έρευνα. Συνήθως μπορείτε να βρείτε ερωτήσεις όπως "Τι πιστεύατε για αυτόν τον ιστότοπο: καλός, αξιοπρεπής, κακός, φοβερός" ή "Ήταν οι πληροφορίες που δόθηκαν: αρκετές, όχι αρκετές, σωστά"
  • Επιλογές για να ζητήσετε απάντηση ή άλλες πληροφορίες
Σχετικά Άρθρα

Τα βιβλία επισκεπτών μπορούν να προγραμματιστούν ώστε να στέλνουν αυτές τις πληροφορίες σε μια διεύθυνση email της επιλογής σας, έτσι ώστε να μην χρειάζεται να συνδέεστε συνεχώς στον ιστότοπο για να προβάλλετε καταχωρήσεις στο βιβλίο επισκεπτών.

Πού να βρείτε κωδικούς HTML, Βιβλίο επισκεπτών

Είτε γνωρίζετε προγραμματισμό HTML, είτε είστε αρχάριος σχεδιαστής ιστοσελίδων είτε απλά θέλετε ένα βιβλίο επισκεπτών στον ιστότοπό σας, η χρήση προγραμμένων κωδίκων HTML μπορεί να σας εξοικονομήσει χρόνο. Οι κωδικοί που μπορείτε να βρείτε στο διαδίκτυο είναι συνήθως καλά δοκιμασμένοι και παρέχουν τον πιο βασικό προγραμματισμό που απαιτείται για εύχρηστα βιβλία επισκεπτών.

  • Ο κώδικας στο HTML Comment Box παρέχει το βασικό περίγραμμα ενός βιβλίου επισκεπτών κώδικα HTML. Το μόνο που χρειάζεται να κάνετε είναι να προσαρμόσετε το κείμενο στις ανάγκες σας και στο όνομα τομέα σας. Οδηγίες παρέχονται στην αρχή της σελίδας. Ο κωδικός περιλαμβάνει γραμμές για το όνομα και τη διεύθυνση.
  • Για μια μεγάλη ποικιλία από κώδικες και σενάρια HTML, επισκεφτείτε το . Με μια τόσο ποικίλη και μεγάλη επιλογή, θα πρέπει να μπορείτε να βρείτε ένα που να λειτουργεί στον ιστότοπο που δημιουργείτε. Μπορείτε να επιλέξετε από βασικά βιβλία επισκεπτών έως πιο προηγμένο προγραμματισμό που περιλαμβάνει αναπτυσσόμενα μενού και κώδικα για υπολογιστές Mac και Linux. Οι κωδικοί είναι μόνο δωρεάν δοκιμές 30 ημερών, οπότε αν βρείτε ένα σύνολο κωδικών που σας αρέσει, θα πρέπει να πληρώσετε για την πλήρη χρήση.
  • Στο Freebok μπορείτε να εισάγετε κάποιες βασικές πληροφορίες σχετικά με το κείμενο που θέλετε στο βιβλίο επισκεπτών σας και ο ιστότοπος θα δημιουργήσει τον κώδικα για εσάς. Στη συνέχεια, μπορείτε να προσαρμόσετε ακόμη περισσότερο το βιβλίο επισκεπτών δημιουργώντας ένα πρότυπο και επεξεργάζεστε τον κώδικα στη λειτουργία διάταξης προτύπου του Freebok. Άλλες οδηγίες είναι διαθέσιμες στον ιστότοπο για να σας βοηθήσουν με ορισμένους συνδέσμους που μπορεί να χρειαστείτε. Πρέπει να εγγραφείτε για λογαριασμό στο για να χρησιμοποιήσετε το Freebok.
  • Για να προσθέσετε γρήγορα ένα βιβλίο επισκεπτών μόνο με ένα πλαίσιο σχολίων, μεταβείτε στον Κωδικό βιβλίου επισκεπτών. Ο αρχικός κώδικας έχει ήδη δημιουργηθεί, αλλά υπάρχουν πέντε επιλογές που μπορείτε να ελέγξετε και να αποεπιλέξετε για να αλλάξετε ελαφρώς τον κώδικα:
    • Σύμπτυξη βιβλίου επισκεπτών. Αυτό περιλαμβάνει έναν σύνδεσμο που μπορεί να ανοίξει και να κλείσει το βιβλίο επισκεπτών στην ιστοσελίδα στην οποία το εισάγετε.
    • Βάλτε το βιβλίο επισκεπτών στην κορυφή. Εάν αυτό δεν είναι επιλεγμένο, το βιβλίο επισκεπτών και το πλαίσιο σχολίων θα εμφανιστούν κάτω από οποιεσδήποτε καταχωρίσεις στη λίστα.
    • Εμφάνιση ημερομηνίας υποβολής συμμετοχών. Αυτό θα προσθέσει μια ημερομηνία και ώρα. Η ώρα θα είναι η τοπική ζώνη ώρας του χρήστη και όχι η δική σας.
    • Φίλτρο βωμολοχίας. Διαγράφει τυχόν βωμολοχίες που μπορεί να γράφουν οι άλλοι.
    • Μπορείτε επίσης να αλλάξετε τον αριθμό των σχολίων που δημοσιεύονται στη σελίδα για να τα διαβάσουν άλλοι. Το ελάχιστο είναι ένα και το μέγιστο είναι εκατό. Συνιστάται να το ρυθμίσετε από πέντε έως είκοσι πέντε.

Πρόσφατα έλαβα ένα email που ζητούσε βοήθεια με ένα σενάριο για ένα βιβλίο επισκεπτών ή ένα βιβλίο κριτικής. Ως εκ τούτου, τηρώ την υπόσχεσή μου και το σημερινό άρθρο θα αφορά αυτό το θέμα.

Τι είναι το βιβλίο επισκεπτών και γιατί χρειάζεται σε έναν ιστότοπο;

Το βιβλίο επισκεπτών είναι ένα είδος βιβλίου παραπόνων ή ευχών, όπου οποιοσδήποτε επισκέπτης στον ιστότοπό σας μπορεί να αφήσει ένα μήνυμα, το οποίο (εφόσον εγκριθεί από τον διαχειριστή) μπορεί να διαβαστεί από όλους. Εκείνοι. Αυτά είναι τα πιο κοινά σχόλια, όχι μόνο για μια ανάρτηση, αλλά για ολόκληρο τον ιστότοπο!

Ένα βιβλίο επισκεπτών προσθέτει διαδραστικότητα στον ιστότοπό σας και είναι ένας κοινός τρόπος παροχής σχολίων.

Λοιπόν, πρώτα, ας δημιουργήσουμε έναν πίνακα στη βάση δεδομένων mysql όπου θα αποθηκεύονται όλα τα σχόλια των χρηστών:

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΑΝ ΔΕΝ ΥΠΑΡΧΕΙ `βιβλίο επισκεπτών` (`id` int(11) NOT NULL auto_increment, `user_ip` int(10) unsigned NOT NULL, `user_email` varchar(50) NOT NULL, `addtime` int(11) NOT NULL , `όνομα` varchar(15) NOT NULL, κείμενο `text` NOT NULL, κείμενο `admin_text` NOT NULL, `image` varchar(40) NOT NULL, `sex` tinyint(1) NOT NULL προεπιλογή "1", ΚΥΡΙΑ KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

  • id — αριθμός σειράς μηνυμάτων
  • user_ip — διεύθυνση IP χρήστη, που αναπαρίσταται ως ακέραιος αριθμός
  • user_email — διεύθυνση email χρήστη
  • addtime — χρόνος προσθήκης μηνύματος
  • όνομα - όνομα χρήστη
  • κείμενο — κείμενο μηνύματος
  • admin_text — κείμενο της απάντησης του διαχειριστή στο μήνυμα
  • εικόνα — avatar χρήστη
  • φύλο — φύλο χρήστη (άνδρας/θηλυκός)

Όπως μπορείτε να δείτε στην πινακίδα υπάρχει ένα πεδίο για τη διεύθυνση IP του χρήστη. Αυτό γίνεται για να μπορείτε στη συνέχεια να δημιουργήσετε μια μαύρη λίστα όπου μπορείτε να εισάγετε τις διευθύνσεις IP των "μη καλών" χρηστών που δεν θα μπορούν να αφήνουν μηνύματα στο μέλλον.

Το πεδίο φύλου είναι απαραίτητο για να εμφανιστεί το «σωστό» avatar σε περίπτωση που οι χρήστες δεν ανεβάσουν το δικό τους.

Τακτοποιήσαμε τη βάση δεδομένων. Ας περάσουμε στον προγραμματισμό. Εφόσον εργαζόμαστε με μια βάση δεδομένων, το πρώτο πράγμα που θα κάνουμε είναι να δημιουργήσουμε την απλούστερη κλάση για εργασία με τη βάση δεδομένων. Για να το κάνετε αυτό, δημιουργήστε ένα αρχείο DB.class.php και τοποθετήστε τον ακόλουθο κώδικα εκεί:

Κατηγορία DB ( ιδιωτικό στατικό $instance; ιδιωτική $MySQLi; ιδιωτική συνάρτηση __construct(array $dbOptions)( $this->MySQLi = @ new mysqli($dbOptions["db_host"],$dbOptions["db_user"], $dbOptions[ "db_pass"],$dbOptions["db_name"]); if (mysqli_connect_errno()) (βαλε το νέο Exception("Σφάλμα βάσης δεδομένων."); ) $this->MySQLi->set_charset("utf8"); ) δημόσιο στατικό συνάρτηση init(array $dbOptions)( if(self::$instance instanceof self)( return false; ) self::$instance = new self($dbOptions); ) δημόσια στατική συνάρτηση getMySQLiObject())( return self::$ instance->MySQLi; ) δημόσια στατική συνάρτηση ερώτημα($q)( return self::$instance->MySQLi->query($q); ) δημόσια στατική συνάρτηση esc($str)( return self::$instance-> MySQLi->real_escape_string(htmlspecialchars($str)); ) )

Αξίζει να πούμε ότι ο κατασκευαστής αυτής της κλάσης δηλώνεται ως ιδιωτικός, επομένως το αντικείμενο δεν μπορεί να δημιουργηθεί εκτός της κλάσης και η προετοιμασία είναι δυνατή μόνο από τη στατική μέθοδο init(). Παίρνει έναν πίνακα παραμέτρων σύνδεσης MySQL και δημιουργεί ένα στιγμιότυπο της κλάσης, το οποίο περιέχεται στη στατική μεταβλητή self::$instance. Αυτό διασφαλίζει ότι υπάρχει μόνο μία σύνδεση με τη βάση δεδομένων τη δεδομένη στιγμή.

Η υπόλοιπη κλάση εκτελεί ερωτήματα βάσης δεδομένων με βάση τη μέθοδο static query().

Εάν θέλετε, μπορείτε να τροποποιήσετε αυτήν την τάξη όπως τη χρειάζεστε!

Επίσης, στην ανάπτυξη του βιβλίου επισκεπτών θα χρειαστούμε βοηθητικές συναρτήσεις, τις οποίες θα βάλω σε ξεχωριστό αρχείο και θα το ονομάσω helper.php.

Τώρα έχουμε προσεγγίσει ομαλά το πιο σημαντικό αρχείο στο σενάριό μας - index.php. Εδώ θα εκτελεστεί όλη η λογική του σεναρίου.

Έτσι, το πρώτο πράγμα που πρέπει να κάνετε είναι να αρχικοποιήσετε τη συνεδρία, να ορίσετε τις βασικές ρυθμίσεις και να συνδεθείτε στη βάση δεδομένων mysql. Η συνεδρία θα αποθηκεύσει τον κωδικό ασφαλείας (captcha) της φόρμας.

Session_start(); /* Διαμόρφωση βάσης δεδομένων. Προσθέστε τα δεδομένα σας */ $dbOptions = array("db_host" => "localhost", "db_user" => "", "db_pass" => "", "db_name" => ""); //Η σύνδεση της κλάσης για εργασία με τη βάση δεδομένων απαιτεί "DB.class.php" //Σύνδεση βοηθητικών συναρτήσεων απαιτεί "helper.php" //Σύνδεση στη βάση δεδομένων DB::init($dbOptions); $appath = realpath(dirname(__FILE__))."/"; //Φάκελος στο διακομιστή όπου θα ανεβαίνουν τα avatar $uploaddir = "images/avatars"; //Μέγιστος αριθμός μηνυμάτων σε μία σελίδα $per_page = 10; //Αριθμός σελίδων στη σελιδοποίηση $num_page = 2;

Για να δημιουργήσετε πλοήγηση μέσω σελίδων στο βιβλίο επισκεπτών, πρέπει να μάθετε τον συνολικό αριθμό μηνυμάτων. Αυτό μπορεί να γίνει ως εξής:

//Λάβετε τον συνολικό αριθμό μηνυμάτων $result = DB::query("SELECT COUNT(*) AS numrows FROM guestbook"); $total = $result->fetch_object()->numrows;

Τώρα ας προσδιορίσουμε τον αριθμό σελίδας που πρέπει να εμφανίζεται. Για να γίνει αυτό, θα επεξεργαστούμε τη μεταβλητή $_GET["p"]

$start_row = (!empty($_GET["p"])); intval($_GET["p"]): 0; if($start_row< 0) $start_row = 0; if($start_row >$total) $start_row = $total;

$result = DB::query("SELECT * FROM Guestbook ORDER BY addtime DESC LIMIT ".$start_row.",".$per_page); //Η λίστα των μηνυμάτων θα αποθηκευτεί εδώ $items = array(); while($row = $result->fetch_assoc())( $row["addtime"] = format_date($row["addtime"],"date")."|".format_date($row["addtime"] "time"); $items = $σειρά;)

Εδώ χρησιμοποίησα τη συνάρτηση format_date() για να δουλέψω με την ημερομηνία και την ώρα που δημιούργησα στο αρχείο helper.php. Το κύριο καθήκον του είναι να εμφανίζει την ημερομηνία και την ώρα σε ρωσική μορφή. Εδώ είναι ο κωδικός του:

Συνάρτηση format_date($date,$format = "date")( if(empty($date)) return ""; $months = array("1" => "Ιανουάριος", "2" => "Φεβρουάριος", " 3" => "Μάρτιος", "4" => "Απρίλιος", "5" => "Μάιος", "6" => "Ιούνιος", "7" => "Ιούλιος", "8" => " Αύγουστος", "9" => "Σεπτέμβριος", "10" => "Οκτώβριος", "11" => "Νοέμβριος", "12" => "Δεκέμβριος"); if($format == "ώρα") ( ημερομηνία επιστροφής ("H:i",$date); ) elseif($format == "ημερομηνία")( $m = ημερομηνία("n", $date); $m = $μήνες[$m]; $ d = date("j",$date); $y = date("Y",$date); return $d." ".$m." ".$y; ) else( return date("d.M.Y H :i",$date); ))

Αυτή η λειτουργία έχει μόνο 2 παραμέτρους:

  • $date — ημερομηνία σε μορφή UNIX (αριθμός δευτερολέπτων που πέρασαν από τη νύχτα της 1ης Ιανουαρίου 1970)
  • $format — φόρμα εξόδου ημερομηνίας.

Τώρα μπορούμε να εμφανίσουμε μια λίστα με μηνύματα στη σελίδα. Για αυτό χρησιμοποιώ τον ακόλουθο κώδικα html:

Οι κριτικές βιβλίου επισκεπτών αφήνουν μια κριτική

mob_info