Inurl php επιλέξτε αναπαραγωγή μενού. §2. Πώς να δημιουργήσετε ένα κατακόρυφο αναπτυσσόμενο μενού σε php. Παίρνουμε έναν πίνακα με τη μορφή δέντρου

Αυτό ακριβώς θα δούμε τώρα. Και έτσι, το καθήκον είναι να δημιουργήσετε ένα κατακόρυφο μενού με τη μορφή μιας αναπτυσσόμενης λίστας.

Πώς μπορεί να εφαρμοστεί αυτό στην PHP; Πολύ απλό! Για παράδειγμα, έχουμε ένα αρχείο index.php,η οποία, ανάλογα με την επιλεγμένη ενότητα στην αναπτυσσόμενη λίστα, θα πρέπει να εμφανίζει το αντίστοιχο περιεχόμενο στη σελίδα. Αυτό υλοποιείται ως εξής:

1. Δημιουργούμε αρχεία σε μορφή .html, τα οποία θα περιέχουν το απαραίτητο περιεχόμενο για έξοδο.

2. Δημιουργούμε (γράφουμε) στο σενάριο index.php τις απαραίτητες προϋποθέσεις για την εμφάνιση των σχετικών πληροφοριών.

3. Θεωρούμε το σενάριο που δημιουργήθηκε από την άποψη της ασφάλειας του σεναρίου που εκτελείται.

Λοιπόν, φαίνεται ότι τελειώσαμε με τη θεωρία, ας προχωρήσουμε στην πράξη. Αρχικά, δημιουργούμε στατικές σελίδες σε μορφή .html, οι οποίες θα περιέχουν τις απαραίτητες πληροφορίες. Μπορείτε να γράψετε ό,τι θέλετε εκεί :) Ως αποτέλεσμα, θα πρέπει να καταλήξουμε με τουλάχιστον δύο αρχεία πρώτα.html και second.html , έτσι ώστε να μπορούμε να φτιάξουμε όσα από αυτά θέλουμε, αφού καταλάβουμε τον βασικό αλγόριθμο του πώς λειτουργεί ο κώδικας.

Για να εμφανίσετε μια αναπτυσσόμενη λίστα σε ένα αρχείο index.phpΔημιουργούμε μια φόρμα html και παρακάτω γράφουμε ένα σενάριο PHP με το ακόλουθο περιεχόμενο:



Μενού PHP


Αναπτυσσόμενο μενού στην PHP












if (isset ($_GET ["where" ]))
{
εάν ($_GET ["where" ]==1 )
$file = "first.html" ;
αν ($_GET ["where" ]==2 )
$file = "second.html" ;
include($file);
}
?>


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

Η ευπάθεια αυτού του σεναρίου είναι ότι η μεταβλητή $αρχείοπαραμένει μη αρχικοποιημένη και σε αυτήν την περίπτωση η τιμή της μεταβλητής που δημιουργείται αυτόματα πηγαίνει απευθείας στη συνάρτηση περιλαμβάνω, και αυτή, με τη σειρά της, τη συνδέει με επιτυχία (τη μεταβλητή) και την εμφανίζει στην οθόνη. Και μπορεί να μην είναι μόνο το αρχείο διαμόρφωσης .htaccess. Για να χακάρετε αυτό το σενάριο, αρκεί να περάσετε την παράμετρο where μια τιμή που δεν προβλέπεται από τον κώδικα, για παράδειγμα 3. Και επειδή αυτή η τιμή δεν προβλέπεται από το σενάριο, είναι απλώς μια μεταβλητή $αρχείοδεν θα υποβληθεί σε αρχικοποίηση. Επομένως, μπορεί να του δοθεί μια αυθαίρετη τιμή μέσω της συμβολοσειράς URL.

http://localhost/index.php?where=3&file=.htaccess

Αλλά αυτό είναι έτσι, μια μικρή παρέκκλιση από το θέμα. 😀

Η λύση σε αυτό το πρόβλημα είναι αρκετά απλή, μεταβλητή $αρχείοαπλά πρέπει να το αρχικοποιήσετε πριν το χρησιμοποιήσετε, δηλαδή να του εκχωρήσετε μια προεπιλεγμένη τιμή.

Εδώ, εάν η παράμετρος Where μεταβιβαστεί στο σενάριο, τότε η μεταβλητή θα αρχικοποιηθεί σωστά, διαφορετικά θα είναι απλώς κενή. Έτσι εμφανίστηκε το αναπτυσσόμενο μενού [safe] στην PHP.

ΥΣΤΕΡΟΓΡΑΦΟ. Κατά τη δημιουργία σεναρίων, είναι απαραίτητο να ληφθούν υπόψη και κατά συνέπεια να αποκλείονται όλοι οι πιθανοί φορείς επίθεσης. Αυτός είναι ο μόνος τρόπος για να δημιουργήσετε ένα έργο που θα πληροί τους κανόνες ασφαλείας και θα είναι σε ζήτηση από τον πελάτη. Τα λέμε!

Σε αυτό το άρθρο θα δείξω πώς μπορείτε να δημιουργήσετε μενού πολλαπλών επιπέδων σε PHP και MySQL. Φυσικά, μπορείτε να βρείτε πολλές επιλογές για τη δημιουργία του, αλλά κρίνοντας από τον αριθμό των ερωτήσεών σας σε αυτό το θέμα, χρειάζεστε ένα παράδειγμα. Και θα το δώσω σε αυτό το άρθρο. Επιτρέψτε μου να σημειώσω αμέσως ότι αυτό το άρθρο έχει νόημα μόνο για όσους γνωρίζουν PHPκαι ξέρει πώς να συνεργάζεται MySQL. Όλοι οι άλλοι πρέπει να περάσουν πρώτα από αυτό ή να διαβάσουν μερικά βιβλία PHP και MySQL.

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

  • ταυτότητα- μοναδικό αναγνωριστικό.
  • τίτλος- αγκυροβολήστε συνδέσμους στο μενού.
  • Σύνδεσμος- τη διεύθυνση στην οποία θα οδηγήσει το στοιχείο μενού.
  • parent_id- ταυτότητα γονέα. Εάν δεν υπάρχει γονικό στοιχείο, τότε θα είναι NULL (ή μπορείτε επίσης να βάλετε 0).

Τακτοποιήσαμε το τραπέζι, τώρα ήρθε η ώρα Κώδικας PHP. Γεμάτος Κώδικας PHPδίνεται παρακάτω:

$mysqli = new mysqli("localhost", "root", "", "db"); // Σύνδεση στη βάση δεδομένων
$result_set = $mysqli->query("SELECT * FROM `menu`"); // Επιλέξτε όλες τις εγγραφές από τον πίνακα με το μενού
$items = array(); // Πίνακας για στοιχεία μενού
ενώ (($row = $result_set->fetch_assoc()) != false) $items[$row["id"]] = $row; // Συμπληρώστε τον πίνακα με ένα δείγμα από τη βάση δεδομένων
$childrens = array(); // Πίνακας για αντιστοίχιση θυγατρικών στοιχείων στους γονείς τους
foreach ($items ως $item) (
if ($item["parent_id"]) $childrens[$item["id"]] = $item["parent_id"]; // Συμπληρώστε τον πίνακα
}
συνάρτηση printItem($item, $items, $childrens) (
/* Εμφάνιση του στοιχείου μενού */
ηχώ "

  • ";
    echo "".$item["title"]."";
    $ul = ψευδής; // Αποδόθηκαν παιδιά;
    ενώ (αλήθεια) (
    /* Ένας άπειρος βρόχος όπου αναζητούμε όλα τα παιδιά */
    $key = array_search($item["id"], $childrens); // Ψάχνω για παιδικό στοιχείο
    αν (!$key) (
    /* Δεν βρέθηκαν παιδιά */
    αν ($ul) ηχώ""; // Εάν εμφανίστηκαν θυγατρικά στοιχεία, κλείστε τη λίστα
    Διακοπή; // Έξοδος από τον βρόχο
    }
    unset($childrens[$key]); // Αφαιρέστε το στοιχείο που βρέθηκε (ώστε να μην εμφανίζεται ξανά)
    αν (!$ul) (
    ηχώ "
      "; // Ξεκινήστε την εσωτερική λίστα εάν δεν υπάρχουν ακόμη θυγατρικά στοιχεία
      $ul = αληθές; // Ορίστε τη σημαία
      }
      echo printItem($items[$key], $items, $childrens); // Εμφάνιση αναδρομικά όλων των θυγατρικών στοιχείων
      }
      ηχώ "";
      }
      ?>

      Αυτός ο κώδικας λειτουργεί πλήρως, ωστόσο, πρέπει να καταλάβετε ότι κανείς δεν γράφει με αυτόν τον τρόπο (ιδίως, έξοδος μέσω ηχώ Ετικέτες HTML). Και το καθήκον σας είναι να πάρετε τον αλγόριθμο από αυτόν τον κώδικα, αλλά όχι τον ίδιο τον κώδικα. Και μετά συνδέστε αυτόν τον αλγόριθμο στον κινητήρα σας. Προσπάθησα να σχολιάσω προσεκτικά τον κωδικό εξόδου μενού πολλαπλών επιπέδων σε PHP και MySQL, αλλά, φυσικά, δεν είναι το πιο διαφανές και απαιτεί αρκετά καλές αρχικές γνώσεις. Αν πάλι δεν ξέρεις καλά PHP και MySQL, τότε συνιστώ ανεπιφύλακτα να περάσετε πρώτα από αυτό

      Το μενού ενός ιστότοπου στην PHP, το οποίο ελέγχεται από σενάρια PHP, έχει τα δικά του χαρακτηριστικά. Δεν πρόκειται απλώς για απόλυτους ή σχετικούς συνδέσμους, αν και μπορεί κάλλιστα να συμβαίνει αυτό, αλλά, κατά κανόνα, δημιουργούνται δυναμικά μπλοκ συνδέσμων σε πλαϊνά πλαίσια με ενότητες και υποενότητες και μπλοκ συνδέσμων από τις εσωτερικές σελίδες του ιστότοπου. Ένα μενού που δημιουργείται δυναμικά είναι πολύ βολικό επειδή μπορεί να εισαχθεί οπουδήποτε στον ιστότοπο και, κυρίως, τη σωστή στιγμή. Δηλαδή, όταν μετακινείστε σε διαφορετικές ενότητες και υποενότητες, μπορείτε να επεκτείνετε δυναμικά διαφορετικά μπλοκ μενού. Επιπλέον, μπορεί να διαφέρουν όχι μόνο ως προς το περιεχόμενο, αλλά και ως προς τη μορφή και το σχεδιασμό. Σε έναν στατικό ιστότοπο, είναι επίσης πολύ πιθανό να κάνετε τέτοια κόλπα, αλλά θα κοστίσει επιπλέον αρχεία προτύπων και πολλά άλλα κόλπα. Ενώ ένας ιστότοπος γραμμένος σε PHP δεν απαιτεί τίποτα από αυτά. Το πρότυπο θα παραμείνει όπως ήταν. Όλα θα ελέγχονται από ένα ή περισσότερα απλά σενάρια PHP.

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

      // Εργαλείο δημιουργίας μενού
      $menu = @file($rubric1_menu);
      $lines = count($menu);
      για ($i = 0; $i< $lines; $i++)
      {
      list($menu_link,$menu_name,$menu_title)=explode("::", $menu[$i]);
      if($page == rub1_part1 και $i == 0) ($refcolor = "style="color:#cc0000"";)
      elseif($page == rub1_part2 και $i == 1) ($refcolor = "style="color:#cc0000"";)
      elseif($page == rub1_part3 και $i == 2) ($refcolor = "style="color:#cc0000"";)
      else ($refcolor = "";)
      $rubric1.="

    • ".$menu_name."
    • ";
      }
      ?>

      Για να λειτουργήσει ένα τέτοιο σενάριο, χρειάζεστε ένα αρχείο κειμένου στο οποίο θα αποθηκεύονται τα ονόματα των συνδέσμων μενού, οι ίδιοι οι σύνδεσμοι και ο τίτλος τους. Η δημιουργία ενός τέτοιου αρχείου δεν είναι δύσκολη, απλώς εκτελέστε την εντολή File -> New από το κύριο μενού του προγράμματος Dreamweaver, δημιουργήστε ένα νέο έγγραφο html, όπως περιγράφηκε προηγουμένως, ελέγξτε και, εάν χρειάζεται, αλλάξτε την κωδικοποίηση του νέου αρχείου σε UTF -8 και, στη συνέχεια, αποθηκεύστε το με το όνομα rubric1.dat στον φάκελο δεδομένων που δημιουργήθηκε προηγουμένως για αυτό. Η πλήρης διαδρομή σε αυτό το αρχείο θα είναι D:/Mysitephp/data/rubric1.dat. Τα περιεχόμενα του παρακάτω αρχείου είναι οι ίδιοι οι σύνδεσμοι, τα ονόματά τους και ο τίτλος τους (συμβουλές). Επιπλέον, για να τεθεί σε λειτουργία αυτό το σενάριο, πρέπει να συνδεθεί χρησιμοποιώντας τη λειτουργία περιλαμβάνω()στο template engine main.php.

      Rub1_part1::Section 1::Section 1 rubric 1::
      rub1_part2::Section 2::Section 2 rubric 1::
      rub1_part3::Section 3::Section 3 rubric 1::

      Επιπλέον, πρέπει επίσης να δημιουργήσετε ένα μικρό σενάριο με ρυθμίσεις που θα αποθηκεύει την πλήρη διεύθυνση του ιστότοπου, τις διαδρομές προς τους φακέλους των σελίδων και τις μετα-περιγραφές του ιστότοπου, τις διαδρομές προς τα αρχεία μενού τοποθεσίας και θα το συνδέσει χρησιμοποιώντας τη λειτουργία περιλαμβάνω()στο template engine main.php. Για να το κάνετε αυτό, πρέπει να δημιουργήσετε ένα νέο αρχείο php και να το αποθηκεύσετε με ένα όνομα όπως settings.php στο φάκελο php. Η πλήρης διαδρομή προς το αρχείο θα είναι D:/Mysitephp/php/settings.php και τα περιεχόμενά του δίνονται παρακάτω.

      # φάκελος με έγγραφα html
      $doctemplates = "πρότυπα";
      # πλήρης διαδρομή προς τον κατάλογο σεναρίων
      $turl="http://mysitephp.ru";
      # βάση δεδομένων με δεδομένα
      $rubric1_menu = "data/rubric1.dat";
      ?>

      Πώς λειτουργεί το σενάριο PHP για τη δημιουργία ενός μενού; Πρώτα στη μεταβλητή του μενού $ χρησιμοποιώντας τη συνάρτηση αρχείο()Τοποθετούνται τα περιεχόμενα του αρχείου κειμένου rubric1.dat. Στη συνέχεια η συνάρτηση μετρώ()μετράει τον αριθμό των γραμμών σε ένα αρχείο κειμένου και τις λειτουργίες λίστα()Και εκραγεί()το ίδιο το μενού επεκτείνεται σε βρόχο, όπου η μέθοδος συγκόλλησης γραμμών μεταξύ τους (λειτουργία κουκκίδα . ) σχηματίζονται σειρές συνδέσμων με τα ονόματα και τους τίτλους τους, οι οποίοι στη συνέχεια τοποθετούνται στη μεταβλητή $rubric1. Ακολουθεί το σενάριο της μηχανής προτύπου, όπου το σενάριο μενού συνδέεται με τη συνάρτηση περιλαμβάνω(), μετακινεί τα περιεχόμενα της μεταβλητής $rubric1 στην επιθυμητή θέση στον ιστότοπο χρησιμοποιώντας τη συνάρτηση που περιγράφηκε προηγουμένως repl().

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

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

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

      Πηγαίνετε και λιώστε στο αγαπημένο σας κοινωνικό δίκτυο

      Επειδή εκθέτει τα περιεχόμενα της ενότητας menu.php. Παρακάτω θα παρουσιάσουμε τη δική μας ανάπτυξη μενού σε PHP, η οποία γράφτηκε από την αρχή σε ένα σημειωματάριο.

      Αυτός ο κώδικας θα είναι ιδιαίτερα χρήσιμος για δυναμικούς ιστότοπους που διαθέτουν προσαρμοσμένες μηχανές. Θα προσφέρω δύο επιλογές κώδικα που έχουν μικρές διαφορές (οι διαφορές θα εξηγηθούν αργότερα).

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

      /index.html /razdel_1/ /razdel_1/articles_1.html /razdel_1/articles_2.html ... /razdel_2/ /razdel_2/articles_1.html /razdel_2/articles_2.html ... ... ... /razdel_N/articles_2 .html

      Ο ιστότοπος μπορεί επίσης να περιέχει υποενότητες για ενότητες:

      /razdel_1/podzaderl_1/ /razdel_1/podzaderl_1/articles_1.html /razdel_1/podzaderl_1/articles_2.html ... /razdel_1/podzaderl_2/articles_1.html /razdel_1/podzaderl_2.htmlarticles_2

      Αυτή η δομή θα λειτουργήσει και για το μενού μας με μικρές μόνο διαφορές.

      Προτείνω να δημιουργήσετε ένα ξεχωριστό αρχείο για το μενού σε php. Για παράδειγμα, το menu.php θα ήταν ένα εξαιρετικό όνομα για ένα τέτοιο αρχείο. Για την υλοποίηση του μενού, παρέχεται επίσης ένα στυλ μενού σε CSS για να το κάνει αμέσως περισσότερο ή λιγότερο όμορφο. Φυσικά, αυτό το στυλ δίνεται μόνο για αναφορά, καθώς τα σχέδια των τοποθεσιών είναι πολύ διαφορετικά.

      Κώδικας για το στυλ μενού σε CSS:

      .menu ( ύψος:42px; padding:0 0 0 16px; background:url(images/spacer.png) repeat; ) .menu li ( display:block; float:left; ) .menu li.active ( φόντο: #000011 ; ) .menu a ( color:#FFF; display:block; line-height:42px; text-decoration:none; padding:0 14px; ) .menu a:hover (background:url(images/spacer.png) repeat ;)

      Τώρα, ας δούμε την πρώτη επιλογή για την υλοποίηση ενός μενού στην PHP, η οποία είναι λίγο απλοποιημένη.

      Η πρώτη έκδοση του κώδικα μενού στην PHP

      \n"; για ($i=0;$i ": "
    • "; ηχώ " ".$array_menu[$i]["name"]."
    • \n";) ηχώ "
    "; ?>

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

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

  • , αλλιώς απλά
  • . Αυτό μας επιτρέπει να επισημάνουμε με κάποιο χρώμα το τμήμα του μενού στο οποίο βρίσκεται ο χρήστης. Κατά τη γνώμη μου, αυτό είναι απαραίτητο για κάθε ιστότοπο, ώστε ο χρήστης να καταλάβει σε ποιο τμήμα βρίσκεται.

    Η σειρά στον πίνακα θα διατηρηθεί όταν εμφανιστεί το μενού στον ιστότοπο. Δηλαδή, ο πίνακας πρέπει να συμπληρωθεί με τη σειρά που πρέπει να εμφανίζεται το μενού.

    Σημείωση:
    Εάν οι διευθύνσεις URL (διευθύνσεις) των επικεφαλίδων των ενοτήτων μοιάζουν με:
    /τμήμα 1
    ή σαν αυτό
    /razdel_1/nazvanie_razdela.html
    τότε πρέπει να γράψετε μια ακριβή αντιστοίχιση στο array_menu:
    $array_menu[$i]["url"]="/razdel_1"
    ή για τη δεύτερη περίπτωση:
    $array_menu[$i]["url"]="/razdel_1/nazvanie_razdela.html";

    Πώς λειτουργεί η πρώτη επιλογή μενού;
    Επισημαίνει το μενού μόνο εάν βρίσκεστε στη διεύθυνση κεφαλίδας ενότητας. Για παράδειγμα, εάν η διεύθυνση της σελίδας είναι /razdel_1/articles_1.html, τότε το μενού δεν θα επισημανθεί με κανέναν τρόπο.

    Η δεύτερη έκδοση του κώδικα είναι μια τροποποιημένη έκδοση της πρώτης και παρέχει τη δυνατότητα επισήμανσης μενού ακόμη και σε άρθρα που βρίσκονται σε ενότητες.

    Η δεύτερη έκδοση του κώδικα μενού στην PHP

    "; για ($i=0;$i ": "
  • "; echo "".$array_menu[$i]["title"]."
  • "; ) else ( echo ($URL) == ($array_menu[$i]["url"]) ? "
  • ": "
  • "; echo "".$array_menu[$i]["title"]."
  • "; ) ) ηχώ ""; ?>

    Εάν σας ενδιαφέρει η απάντηση στην ερώτηση πώς να δημιουργήσετε ένα μενού ιστότοπου, τότε έχετε έρθει στη σωστή διεύθυνση.

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

    Μάθημα 3. Δημιουργία μενού σε php για δυναμική ιστοσελίδα - για ανδρείκελα

    Ας δημιουργήσουμε τη μελλοντική διάταξη της ιστοσελίδας μας. Για να το κάνουμε αυτό, θα σχεδιάσουμε έναν πολύ όμορφο ιστότοπο στο Photoshop και θα τον κόψουμε σε κομμάτια. Ας φανταστούμε ότι η κεφαλίδα, το λογότυπο, το μενού και το υποσέλιδο δεν είναι γραμμένα με λέξεις, όπως σε αυτό το παράδειγμα, αλλά πρόκειται για κομψά και χρωματιστά σχεδιασμένα στοιχεία του ιστότοπου.

    Ας δημιουργήσουμε τρεις σελίδες για παράδειγμα και ας τις ονομάσουμε Ενότητα 1, Ενότητα 2, Ενότητα 3

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

    Ας ξεκινήσουμε τη δημιουργία ενός ιστότοπου σε PHP.

    1. Επιλέξτε τα μπλοκ κεφαλίδας, λογότυπου, μενού, υποσέλιδου σε ξεχωριστά αρχεία με την επέκταση php ή html

    header.html

    logo.html

    menu.html

    footer.html

    Ας προσθέσουμε ένα αρχείο με αυτό το κείμενο για να μπορούμε να το δούμε σε όλες τις σελίδες. Ας τον φωνάξουμε text.html

    Σημείωση. Από εδώ και στο εξής, θα κρατάω περαιτέρω αρχεία απευθείας στο αρχείο. text.html

    2. Ας δημιουργήσουμε ένα πρότυπο για τον ιστότοπό μας σε PHP.

    Για να το κάνουμε αυτό, θα κάνουμε ένα απλό πράγμα - αποθηκεύουμε το πραγματικό αρχείο, αλλά με την επέκταση php και σβήνουμε όλο το περιεχόμενο κειμένου. Μπορεί να μην είναι επαγγελματικό, αλλά είναι κατανοητό, αλλά θα τα περιπλέκουμε όλα αργότερα. Τώρα το κύριο πράγμα είναι να κατανοήσουμε την αρχή της διάταξης.

    3. Τώρα δεν χρειαζόμαστε το αρχείο template.html.

    Χάρη σε αυτόν, έχουμε μια ιδέα για το πώς θα μοιάζει ο ιστότοπός μας.

    4. Το πρότυπό μας είναι αρχείο template.php

    Τώρα θα εισαγάγουμε όλα τα στοιχεία του ιστότοπου σε αυτόν χρησιμοποιώντας την εντολή include.

    5. Ας δημιουργήσουμε τρεις σελίδες, όπως θα κάναμε αρχικά.

    Τμήμα 1, ας καλέσουμε 1.php

    Τομέας 2, ας καλέσουμε 2.php

    Ενότητα 3, ας καλέσουμε 3.php

    Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε την απλούστερη εντολή αποθήκευση ως...

    Να εξηγήσω για τους μικρούς: ανοίξτε το αρχείο template.php, μετά πατήστε αποθήκευση ως...και αποθηκεύστε το με το όνομα 1.php, επαναλάβετε τη διαδικασία και αποθηκεύστε τις σελίδες του ιστότοπου διαδοχικά 2.php, 3.php

    Καταλήξαμε σε 3 σελίδες με το ίδιο σχέδιο. Απλώς επικολλήστε το αντί για αρχείο text.htmlάλλο, συμπληρώστε με διαφορετικές εικόνες ή κάποιους κώδικες html, σενάρια και το περιεχόμενο κάθε σελίδας θα είναι μοναδικό.

    Προσοχή!

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

    Μπορείτε να κοιτάξετε στο Ντένβερ και να δείτε μόνοι σας. Ας διορθώσουμε την κατάσταση - δημιουργήστε ένα αρχείο index.phpκαι ας τηλεφωνήσουμε χωρίς άλλη καθυστέρηση Σπίτι. Ταυτόχρονα, ας δημιουργήσουμε ένα αρχείο text-home.htmlκαι χρησιμοποιώντας την εντολή περιλαμβάνωτοποθετήστε το στη νέα κύρια σελίδα του ιστότοπου.

    6. Πώς μπορώ να προβάλω έναν ιστότοπο σε php;

    Απλώς δεν θα δούμε τι έγινε. Αυτό δεν είναι πλέον πρότυπο με επέκταση html.

    Αλλά ούτε πρόβλημα. Χρειαζόμαστε το δικό μας, δηλ. τοπικός διακομιστής στον υπολογιστή σας. Για να το κάνουμε αυτό, θα εγκαταστήσουμε το Denver και θα δούμε το αποτέλεσμα της δουλειάς μας σε ένα πρόγραμμα περιήγησης χωρίς σύνδεση στο διαδίκτυο.

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

    Τώρα ας πάρουμε το μενού PHP του ιστότοπου.

    1. Ανοίξτε το μενού αρχείου.html και μετατρέψτε τις ενότητες 1, 2 και 3 σε συνδέσμους στον ιστότοπο. Οι σύνδεσμοι στην PHP δημιουργούνται με διαφορετικούς τρόπους.

    Το καθήκον μας είναι να μάθουμε πώς να αισθανόμαστε τον ιστότοπο που δημιουργήθηκε σε PHP. Επομένως, θα δημιουργήσουμε συνδέσμους όπως σε μια κανονική στατική τοποθεσία Ενότητα 1, κ.λπ.

    Μου αρέσει πολύ αυτή η διαδικασία δημιουργίας συνδέσμων στο Macromedia Dreamweaver. Έχετε χρόνο να θερίσετε Εντάξεικαι πιείτε καφέ.

    2. Πώς να κάνετε έναν σύνδεσμο στο μενού ανενεργό εάν ο επισκέπτης βρίσκεται σε αυτήν τη σελίδα.

    Θα είναι πιο βολικό για τον επισκέπτη να πλοηγηθεί στον ιστότοπο γνωρίζοντας σε ποια σελίδα βρίσκεται.

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

    Αρχικά, ας θυμηθούμε τον ορισμό του τι είναι Δηλώσεις υπό όρους

    – αυτό συμβαίνει όταν κάποια ενέργεια εκτελείται ή δεν εκτελείται ανάλογα με τις συνθήκες.

    Ας κάνουμε τα εξής:

    • Θα χρειαστούμε μεταβλητέςκαι ένα υπό όρους χειριστή:

    if ($master == "Κύρια")// αυτή η συνθήκη. Εάν εκτελεστεί, τότε σε αυτή τη θέση του μενού, χρησιμοποιώντας την εντολή echo, εισάγονται συνηθισμένες ετικέτες HTML που εμφανίζουν την επιγραφή "Home".

    ηχώ "

    Σπίτι

    ";

    αλλού// σημαίνει "αλλιώς" - τι θα συμβεί εάν δεν πληρούται η προϋπόθεση. Σε αυτήν την περίπτωση, εάν δεν πληρούται η προϋπόθεση, η επιγραφή "Αρχική σελίδα" θα είναι ένας σύνδεσμος που οδηγεί στην κύρια σελίδα.

    ηχώ "

    Σπίτι

    ";

    • Καταλήξαμε στον όρο, αλλά έτσι μεταβλητή ελέγχουπρέπει να το ρωτήσεις.

    Για να γίνει αυτό, θα τοποθετήσουμε τα ακόλουθα μπλοκ κώδικα σε όλες τις σελίδες:

    $master = "Κύρια";

    $master = "Ενότητα 1";

    $master = "Ενότητα 2";

    $master = "Ενότητα 3";

    Όπως μπορείτε να δείτε, κάθε σελίδα έχει τον δικό της κώδικα.

    Έτσι, τα πρακτικά μας βήματα για τη δημιουργία ενός μενού PHP θα είναι τα εξής:

    1) Ανοίξτε το αρχείο index.php

    και επικολλήστε τον κωδικό

    $master = "Κύρια";

    στο σημείο όπου εισάγετε τον κωδικό που εμφανίζει το ίδιο το μενού τοποθεσίας συμπεριλάβετε το "menu.html"?
    ?>

    2) Ανοίξτε το αρχείο menu.htmlκαι εισάγετε τον κώδικα με τη συνθήκη αντί για έναν απλό σύνδεσμο html στην κύρια σελίδα.

    Κοιτάμε στο πρόγραμμα περιήγησης και θαυμάζουμε! Αν πάμε στην κεντρική σελίδα, ο σύνδεσμος δεν είναι πλέον ενεργός!

    3) Επαναλάβετε τα σημεία 1 και 2 με τις σελίδες 1.php, 2.php, 3.php

    Επανάληψη 1:

    1) Ανοίξτε το αρχείο 1.php και εισάγετε πριν από τον κώδικα που εμφανίζει ένα μπλοκ μενού με μια δεδομένη μεταβλητή

    $master = "Ενότητα 1";

    2) Ανοίξτε το αρχείο menu.html και εισαγάγετε τον κωδικό με την συνθήκη αντί για έναν απλό σύνδεσμο Τμήμα 1, κάνοντας τις ακόλουθες αλλαγές:

    if ($master == "Ενότητα 1")// αυτή η συνθήκη. Εάν εκτελεστεί, τότε σε αυτή τη θέση του μενού, χρησιμοποιώντας την εντολή echo, εισάγονται συνηθισμένες ετικέτες HTML που εμφανίζουν την επιγραφή "Section 1".

    ηχώ "

    Τμήμα 1

    ";

    αλλού// σημαίνει "αλλιώς" - τι θα συμβεί εάν δεν πληρούται η προϋπόθεση. Σε αυτήν την περίπτωση, εάν δεν πληρούται η προϋπόθεση, η επιγραφή "Section 1" θα είναι ένας σύνδεσμος που οδηγεί στην κύρια σελίδα.

    ηχώ "

    Τμήμα 1

    ";

    Το θαύμα έγινε ξανά! Τώρα αν είμαστε στη σελίδα Τμήμα 1, ο σύνδεσμος στο μενού δεν είναι ενεργός.

    Η επανάληψη είναι η μητέρα της μάθησης! Ή για αυτούς στο τανκ! Πάλι

    Επανάληψη 2

    1) Ανοιχτό αρχείο 2.phpκαι επικολλήστε τον κωδικό.

    $master = "Ενότητα 2";

    2) Ανοίξτε ξανά το αρχείο menu.html και επικολλήστε τον κώδικα με την συνθήκη

    if ($master == "Ενότητα 2")// αυτή η συνθήκη. Εάν εκτελεστεί, τότε σε αυτή τη θέση του μενού, χρησιμοποιώντας την εντολή echo, εισάγονται συνηθισμένες ετικέτες HTML που εμφανίζουν την επιγραφή "Section 2".

    ηχώ "

    Τομέας 2

    ";

    αλλού// σημαίνει "αλλιώς" - τι θα συμβεί εάν δεν πληρούται η προϋπόθεση. Σε αυτήν την περίπτωση, εάν δεν πληρούται η προϋπόθεση, η επιγραφή "Section 2" θα είναι ένας σύνδεσμος που οδηγεί στην κύρια σελίδα.

    ηχώ "

    Τομέας 2

    ";

    Επανάληψη 3

    1) Ανοιγμα αρχείο 3.phpκαι ορίστε τη μεταβλητή.

    $master = "Ενότητα 3";

    2) Στο αρχείο menu.html εισάγουμε τον κωδικό με μια συνθήκη αντί για έναν σύνδεσμο Ενότητα 3, οι αλλαγές είναι:

    if ($master == "Ενότητα 3")// αυτή η συνθήκη. Εάν εκτελεστεί, τότε σε αυτή τη θέση του μενού, χρησιμοποιώντας την εντολή echo, εισάγονται συνηθισμένες ετικέτες HTML που εμφανίζουν την επιγραφή "Section 3".

    ηχώ "

    Ενότητα 3

    ";

    αλλού// σημαίνει "αλλιώς" - τι θα συμβεί εάν δεν πληρούται η προϋπόθεση. Σε αυτήν την περίπτωση, εάν δεν πληρούται η προϋπόθεση, η επιγραφή "Section 3" θα είναι ένας σύνδεσμος που οδηγεί στην κύρια σελίδα.

    ηχώ "

    Ενότητα 3

    ";

    Συμπέρασμα: αντί για συνδέσμους σε αυτόν τον τύπο μενού

    Σπίτι


    Τμήμα 1

    Τομέας 2


    Ενότητα 3

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

    Το επόμενο φύλλο εξαπάτησης του webmaster θα σας πει πώς να δημιουργήσετε μοναδικούς τίτλους, περιγραφές και λέξεις-κλειδιά για κάθε σελίδα στην PHP.

    Μπορείτε να κάνετε λήψη του αρχείου με όλα τα πρότυπα του ιστότοπου και τα αρχεία μενού php. Συνιστάται για νέους στον προγραμματισμό.

    Εάν είστε έτοιμοι να μελετήσετε σοβαρά την PHP, τότε είναι δύσκολο να βρείτε ένα καλύτερο μάθημα βίντεο από τον Popov. Έχει μεγάλη εμπειρία και καλό στυλ.

    ]]> ]]>

  • Συνεχίζοντας το θέμα:
    OS

    Το JetFlash Recovery Tool (JetFlash Online Recovery) είναι ένα συμπαγές πρόγραμμα για εργασία με μονάδες flash USB από την Transcend. Αυτό το βοηθητικό πρόγραμμα έχει 2 κύριες χρήσεις....

    Νέα άρθρα
    /
    Δημοφιλής