Anweisungen zur Verwendung von jSQL Injection, einem multifunktionalen Tool zum Auffinden und Ausnutzen von SQL-Injections in Kali Linux. Mehrstufiges Menü in PHP und MySQL Inurl PHP eigene Menüspiel-ID

Keine Website ist vollständig ohne Navigation oder, wie sie es auch nennen, ein „Site-Menü“. Das Site-Menü kann also einstufig oder mehrstufig in Form eines Baums sein. Wenn bei der Umsetzung eines einstufigen Menüs keine besonderen Schwierigkeiten bestehen, ist bei der Erstellung eines mehrstufigen Menüs Vorsicht geboten.

Das Wichtigste bei dieser Aufgabe ist die Gestaltung der Datenbank für unser mehrstufiges Menü. Erstellen wir eine Kategorientabelle mit drei Feldern Ausweis, Titel, Elternteil Wo:

  • AUSWEIS- Identifikator
  • Titel- Menüname
  • Elternteil- Übergeordnete Standardkategorie 0

Das Feld ist für die Verzweigung des Menüs zuständig Elternteil Wenn Elternteil = 0, dann ist diese Kategorie die übergeordnete Kategorie. Um Nachkommen zur übergeordneten Kategorie hinzuzufügen, müssen Sie dies im übergeordneten Feld angeben AUSWEIS der richtige Elternteil. Zum Beispiel:

Tabellen mit Kategorien

Wie aus der Tabelle ersichtlich ist, ist dies die übergeordnete Kategorie Autos es gibt zwei Nachkommen - das ist Mazda Und Honda nach Fachgebiet verwandt Elternteil. Und die Kategorie Motorräder zwei Nachkommen sind Kawasaki Und Harley. Gleichzeitig hat die Kategorie „Boote“ keine Nachkommen. Ich hoffe, Sie verstehen, wie man Kategorien verknüpft.

Als nächstes gehen wir von den Worten zur Praxis über. Lassen Sie uns eine Kategorientabelle erstellen.

TABELLE ERSTELLEN, WENN NICHT EXISTIERT `categories` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `parent` int(10) unsigned NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ; -- -- Datendump aus der Tabelle „Kategorien“ – INSERT INTO „Kategorien“ (`id`, `title`, `parent`) VALUES (1, „Autos“, 0), (2, „Motorräder“, 0 ) , (3, „Mazda“, 1), (4, „Honda“, 1), (5, „Kawasaki“, 2), (6, „Harley“, 2), (7, „Mazda 3“, 3 ), (8, „Mazda 6“, 3), (9, „Limousine“, 7), (10, „Hatchback“, 7), (11, „Boote“, 0), (12, „Liftback“ , 8), (13, „Crossover“, 8), (14, „Weiß“, 13), (15, „Rot“, 13), (16, „Schwarz“, 13), (17, „Grün“ , 13), (18, „Mazda CX“, 3), (19, „Mazda MX“, 3);

Der Arbeitsalgorithmus besteht aus Folgendem:

Stellen Sie eine Verbindung zur Datenbank her

query("SET NAMES "utf8""); /* * Dies ist die „offizielle“ objektorientierte Methode * allerdings funktionierte $connect_error erst in den PHP-Versionen 5.2.9 und 5.3.0. */ if ($mysqli->connect_error) ( die("Verbindungsfehler (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Wenn Sie die Kompatibilität mit Versionen sicherstellen müssen vor 5.2 .9, * ist es besser, diesen Code zu verwenden */ if (mysqli_connect_error()) ( die("Connection error (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); )

Schreiben einer Funktion zum Abrufen von Daten aus der Kategorientabelle

//Das Array unseres Menüs als Array-Funktion aus der Datenbank abrufen getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //An erstellen Array, wobei der Schlüssel des Arrays die Menü-ID ist $cat = array(); while($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) return $ Katze; )

Wir erhalten ein Array wie dieses, wobei der Array-Schlüssel die Kategorie-ID ist.

Massivholzkonstruktion von Tommy Lacroix

//Funktion zum Erstellen eines Baums aus einem Array von Tommy Lacroix function getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Wenn keine Anhänge vorhanden sind, if ( !$node[" parent"])( $tree[$id] = &$node; )else( //Wenn es Kinder gibt, dann durch das Array iterieren $dataset[$node["parent"]]["childs "][$id] = &$ node; ) ) return $tree; )

Wir erhalten ein Array in Form eines Baumes

Gesamtes Drehbuch

query("SET NAMES "utf8""); /* * Dies ist die „offizielle“ objektorientierte Methode * allerdings funktionierte $connect_error erst in den PHP-Versionen 5.2.9 und 5.3.0. */ if ($mysqli->connect_error) ( die("Verbindungsfehler (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Wenn Sie die Kompatibilität mit Versionen sicherstellen müssen vor 5.2 .9, * ist es besser, diesen Code zu verwenden */ if (mysqli_connect_error()) ( die("Connection error (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); ) //Array abrufen unseres Menüs aus der Datenbank als Array-Funktion getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //Erstelle ein Array mit dem Array-Schlüssel ist die Menü-ID $cat = array(); while ($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) return $cat; ) //Funktion für Erstellen eines Baums aus einem Array von Tommy Lacroix function getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Wenn keine Anhänge vorhanden sind if (!$node[ "parent"])( $tree[$id] = &$node; )else( //Wenn es Nachkommen gibt, dann gehen Sie durch das Array $dataset[$node["parent"]]["childs"][$ id] = &$node; ) ) return $tree; ) //Ein vorbereitetes Array mit Daten abrufen $cat = getCat($mysqli); //Ein Baummenü erstellen $tree = getTree($cat); //Vorlage zur Anzeige eines Menüs in Form einer Baumfunktion tplMenu($category)( $menu = "
  • ". $category["title"].""; if(isset($category["childs"]))( $menu .= "
      ". showCat($category["childs"]) ."
    "; ) $menu .= "
  • "; return $menu; ) /** * Unsere Vorlage rekursiv lesen **/ function showCat($data)( $string = ""; foreach($data as $item)( $string .= tplMenu($item); ) return $string; ) //HTML-Markup abrufen $cat_menu = showCat($tree); //Echo anzeigen "
      „.$cat_menu.“
    "; ?>

    Ergebnis der Arbeit

    Mehrstufiges Menü in PHP + MySQL für das Admin-Panel

    Wenn Sie dieses Menü im Admin-Bereich Ihrer Site verwenden möchten, müssen Sie einige Funktionen neu schreiben tplMenu(), showCat().

    ".$category["title"].""; )else( $menu = " "; ) if(isset($category["childs"]))( $i = 1; for($j = 0; $j< $i; $j++){ $str .= "→"; } $i++; $menu .= showCat($category["childs"], $str); } return $menu; } /** * Рекурсивно считываем наш шаблон **/ function showCat($data, $str){ $string = ""; $str = $str; foreach($data as $item){ $string .= tplMenu($item, $str); } return $string; } //Получаем HTML разметку $cat_menu = showCat($tree, ""); //Выводим на экран echo ""; ?>

    Ergebnis der Arbeit

    Wählen Sie Autos → Mazda →→ Mazda 3 →→→ Limousine →→→ Schrägheck →→ Mazda 6 →→→ Liftback →→→ Crossover →→→→ Weiß →→→→ Rot → →→→ Schwarz →→→→ Grün →→ Mazda CX →→ Mazda MX → Honda Motorräder → Kawasaki → Harley-Boote

    Führen Sie die heruntergeladene Datei durch Doppelklick aus (Sie benötigen eine virtuelle Maschine).

    3. Anonymität beim Überprüfen einer Site auf SQL-Injection

    Einrichten von Tor und Privoxy in Kali Linux

    [Abschnitt in Entwicklung]

    Einrichten von Tor und Privoxy unter Windows

    [Abschnitt in Entwicklung]

    Proxy-Einstellungen in jSQL-Injection

    [Abschnitt in Entwicklung]

    4. Überprüfen Sie die Site auf SQL-Injection mit jSQL-Injection

    Die Arbeit mit dem Programm ist äußerst einfach. Geben Sie einfach die Website-Adresse ein und drücken Sie ENTER.

    Der folgende Screenshot zeigt, dass die Site für drei Arten von SQL-Injections anfällig ist (Informationen dazu finden Sie in der unteren rechten Ecke). Durch Klicken auf die Namen der Injektionen können Sie die verwendete Methode wechseln:

    Auch die vorhandenen Datenbanken wurden uns bereits angezeigt.

    Sie können den Inhalt jeder Tabelle anzeigen:

    Das Interessanteste an Tabellen sind normalerweise die Administrator-Anmeldeinformationen.

    Wenn Sie Glück haben und die Daten des Administrators finden, ist es noch zu früh, sich zu freuen. Sie müssen noch das Admin-Panel finden, in dem Sie diese Daten eingeben können.

    5. Suchen Sie mit jSQL-Injection nach Admin-Panels

    Gehen Sie dazu auf die nächste Registerkarte. Hier werden wir mit einer Liste möglicher Adressen begrüßt. Sie können eine oder mehrere Seiten zur Überprüfung auswählen:

    Der Komfort liegt darin, dass Sie keine anderen Programme verwenden müssen.

    Leider gibt es nicht sehr viele unvorsichtige Programmierer, die Passwörter im Klartext speichern. Sehr oft sehen wir in der Passwortzeile so etwas wie

    8743b52063cd84097a65d1633f5c74f5

    Das ist ein Hash. Sie können es mit roher Gewalt entschlüsseln. Und ... jSQL Injection verfügt über einen integrierten Brute Forcer.

    6. Brute-Force-Hashes mit jSQL-Injection

    Der unbestrittene Vorteil besteht darin, dass Sie nicht nach anderen Programmen suchen müssen. Viele der beliebtesten Hashes werden unterstützt.

    Dies ist nicht die beste Option. Um ein Guru im Entschlüsseln von Hashes zu werden, wird das Buch „“ auf Russisch empfohlen.

    Aber wenn kein anderes Programm zur Hand ist oder keine Zeit zum Lernen bleibt, ist jSQL Injection mit seiner integrierten Brute-Force-Funktion natürlich sehr praktisch.

    Es gibt Einstellungen: Sie können festlegen, welche Zeichen im Passwort enthalten sind, sowie den Passwortlängenbereich.

    7. Dateioperationen nach der Erkennung von SQL-Injections

    Zusätzlich zu Operationen mit Datenbanken – Lesen und Ändern – können bei Erkennung von SQL-Injections die folgenden Dateioperationen ausgeführt werden:

    • Lesen von Dateien auf dem Server
    • Hochladen neuer Dateien auf den Server
    • Hochladen von Shells auf den Server

    Und das alles ist in jSQL Injection implementiert!

    Es gibt Einschränkungen – der SQL-Server muss über Dateirechte verfügen. Intelligente Systemadministratoren haben sie deaktiviert und können keinen Zugriff auf das Dateisystem erhalten.

    Das Vorhandensein von Dateiberechtigungen lässt sich ganz einfach überprüfen. Gehen Sie zu einer der Registerkarten (Dateien lesen, Shell erstellen, neue Datei hochladen) und versuchen Sie, einen der angegebenen Vorgänge auszuführen.

    Ein weiterer sehr wichtiger Hinweis: Wir müssen den genauen absoluten Pfad zu der Datei kennen, mit der wir arbeiten werden, sonst funktioniert nichts.

    Schauen Sie sich den folgenden Screenshot an:

    Auf jeden Versuch, eine Datei zu bearbeiten, erhalten wir die folgende Antwort: Kein FILE-Privileg(keine Dateirechte). Und hier kann man nichts machen.

    Wenn stattdessen ein anderer Fehler auftritt:

    Problem beim Schreiben in [Verzeichnisname]

    Das bedeutet, dass Sie den absoluten Pfad, in den Sie die Datei schreiben möchten, falsch angegeben haben.

    Um einen absoluten Pfad zu erraten, müssen Sie zumindest das Betriebssystem kennen, auf dem der Server läuft. Wechseln Sie dazu auf die Registerkarte Netzwerk.

    Ein solcher Datensatz (Zeile Win64) gibt uns Anlass zu der Annahme, dass es sich um ein Windows-Betriebssystem handelt:

    Keep-Alive: Timeout=5, max=99 Server: Apache/2.4.17 (Win64) PHP/7.0.0RC6 Verbindung: Keep-Alive-Methode: HTTP/1.1 200 OK Inhaltslänge: 353 Datum: Fr, 11. Dezember 2015 11:48:31 GMT X-Powered-By: PHP/7.0.0RC6 Content-Type: text/html; Zeichensatz=UTF-8

    Hier haben wir etwas Unix (*BSD, Linux):

    Übertragungskodierung: chunked Datum: Fr, 11. Dezember 2015 11:57:02 GMT Methode: HTTP/1.1 200 OK Keep-Alive: Timeout=3, max=100 Verbindung: Keep-Alive Inhaltstyp: Text/HTML X- Unterstützt von: PHP/5.3.29 Server: Apache/2.2.31 (Unix)

    Und hier haben wir CentOS:

    Methode: HTTP/1.1 200 OK Läuft ab: Do, 19. November 1981 08:52:00 GMT Set-Cookie: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; path=/ Verbindung: keep-alive X-Cache-Lookup: MISS von t1.hoster.ru:6666 Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.4.37 X-Cache: MISS von t1.hoster.ru Cache-Kontrolle: No-Store, No-Cache, Must-Revalidate, Post-Check=0, Pre-Check=0 Pragma: No-Cache Datum: Fr, 11. Dezember 2015 12:08:54 GMT Transfer-Encoding: chunked Content-Type: text/html; charset=WINDOWS-1251

    Unter Windows ist ein typischer Ordner für Websites C:\Server\data\htdocs\. Wenn aber tatsächlich jemand „daran gedacht hat“, einen Server unter Windows zu erstellen, dann hat diese Person höchstwahrscheinlich noch nichts von Privilegien gehört. Daher sollten Sie den Versuch direkt aus dem Verzeichnis C:/Windows/ starten:

    Wie Sie sehen, hat beim ersten Mal alles gut geklappt.

    Aber die jSQL-Injection-Shells selbst wecken bei mir Zweifel. Wenn Sie über Dateirechte verfügen, können Sie über eine Weboberfläche ganz einfach etwas hochladen.

    8. Massenüberprüfung von Websites auf SQL-Injections

    Und selbst diese Funktion ist in jSQL Injection verfügbar. Alles ist ganz einfach: Laden Sie eine Liste von Websites herunter (Sie können sie aus einer Datei importieren), wählen Sie diejenigen aus, die Sie überprüfen möchten, und klicken Sie auf die entsprechende Schaltfläche, um den Vorgang zu starten.

    Fazit von jSQL-Injection

    jSQL-Injection ist ein gutes, leistungsstarkes Tool zum Suchen und anschließenden Verwenden von SQL-Injections auf Websites. Seine unbestrittenen Vorteile: Benutzerfreundlichkeit, integrierte verwandte Funktionen. jSQL-Injection kann der beste Freund eines Anfängers bei der Analyse von Websites sein.

    Zu den Mängeln gehört die Unmöglichkeit, Datenbanken zu bearbeiten (zumindest habe ich diese Funktionalität nicht gefunden). Wie bei allen GUI-Tools ist einer der Nachteile dieses Programms auf seine Unfähigkeit zurückzuführen, in Skripten verwendet zu werden. Dennoch ist in diesem Programm auch eine gewisse Automatisierung möglich – dank der eingebauten Funktion der Massen-Site-Überprüfung.

    etablierte Probe und Zertifikat. Für einen Sonderrabatt auf alle Fakultäten und Kurse!

    Im vorletzten Blogartikel habe ich über die interessanten Neuerungen der neuesten WordPress-Version geschrieben – einen speziellen Mechanismus zum Erstellen und Verwalten von . Jetzt ist es für normale Benutzer viel bequemer und einfacher geworden, Menüs unterschiedlicher Komplexität zu erstellen, die nicht nur aus Seiten oder Blog-Kategorien bestehen können, sondern auch Links zu beliebigen URLs enthalten. Um das Menü in der Vorlage anzuzeigen, wird eine spezielle Funktion wp_nav_menu verwendet – darüber erzähle ich Ihnen heute.

    Wenn im WordPress-Administrator kein Menübereich vorhanden ist, können Sie ihn aktivieren, indem Sie speziellen Code zur Datei „functions.php“ hinzufügen

    Hier ist zunächst der Name des von uns erstellten Menüs. Dies ist die Verwendung einer Funktion im Allgemeinen ohne Widgets; Sie müssen dort etwas anders mit ihnen arbeiten. Die Funktion wp_nav_menu kann jedoch ohne Argumente ausgegeben werden, wodurch unterschiedliche Situationen „durchgesehen“ werden – zunächst eine Übereinstimmung nach Menüname, wenn mindestens ein Menüpunkt dafür angegeben ist, andernfalls ein nicht leeres Menü wird einfach angezeigt usw. . Aber auch hier rate ich Ihnen, einfach den obigen Code zu verwenden und nicht herauszufinden, was die Funktion ohne Argumente ausgeben soll. Seine Syntax ist wie folgt:

    Dabei werden folgende Parameter verwendet:

    $Menü– ausgewählte Kennung für das Menü – ID, Slug oder Menüname.

    $container- Mit dieser Einstellung wird das UL-Menü standardmäßig in einen DIV-Container „umhüllt“.

    $container_class— gibt die Klasse des Containers an, standardmäßig ist sein Wert „menu-(menu slug)-container“, d. h. in unserem Fall gibt es beispielsweise eine Klasse „menu-first-container“.

    $container_id– Sie können dem Container eine ID hinzufügen, die nicht standardmäßig angegeben ist.

    $menu_class— Klasse für das UL-Menüelement, sein Wert ist Menü.

    $menu_id— ID für das ul-Element, standardmäßig menu-(slug)

    $echo— Wenn Sie das Menü nicht anzeigen, aber den Wert der Funktion zurückgeben möchten, verwenden Sie für diese Einstellung den Wert 0.

    $fallback_cb— Wenn das Menü nicht existiert, wird die Funktion wp_page_menu aufgerufen.

    $vor– legt den Text fest, der vor Link A angezeigt wird.

    $link_before– Zeigt die Phrase vor dem Linktext an, nicht angegeben.

    $link_after— wird nach dem Linktext angezeigt, ebenfalls leer.

    $Tiefe– legt die Anzahl der Hierarchieebenen zur Anzeige des Menüs fest; der Standardwert 0 zeigt das gesamte Menü an.

    $walker- eine Art unverständliches benutzerdefiniertes „Walker-Objekt“, das wahrscheinlich eher von fortgeschrittenen Entwicklern benötigt wird.

    $theme_location– Der Theme-Speicherort, an dem das Menü verwendet wird, muss über register_nav_menu() aktiviert werden, damit der Benutzer ihn auswählen kann. Auch eine Art nicht ganz klare Einstellung offenbar beim Arbeiten mit Widgets.

    Beispiele für die Verwendung der Funktion wp_nav_menu

    Der einfachste im Code angegebene Code ist:

    Entfernen des DIV-Containers aus dem Menü

    "")); ?>

    Grundsätzlich ist die Erstellung und Verwaltung eines WordPress 3.0-Menüs nicht kompliziert. Die Entwickler haben den Arbeitsablauf deutlich vereinfacht und die Möglichkeiten dieses Navigationselements erweitert. Die Lösung wird häufig in einer Vielzahl von Vorlagenaufgaben verwendet, beispielsweise beim Erstellen für Mobil- und Desktop-Versionen. Etwas später werde ich noch ein paar Auszüge zum Thema hinzufügen.

    P.S. Bewachen. Ein interessanter und nützlicher Blog für Webmaster zum Thema SEO, in dem Sie Antworten auf Ihre Fragen zum Thema SEO finden.
    Das Unternehmen Aweb hat sich seit langem sehr gut im Bereich Website-Promotion, -Optimierung und Suchmaschinenwerbung im Internet etabliert.

    Weil es den Inhalt des Moduls „menu.php“ offenlegt. Im Folgenden stellen wir unsere eigene Menüentwicklung in PHP vor, die von Grund auf in einem Notizblock geschrieben wurde.

    Dieser Code ist besonders nützlich für dynamische Websites, die über benutzerdefinierte Engines verfügen. Ich werde zwei Codeoptionen anbieten, die geringfügige Unterschiede aufweisen (die Unterschiede werden später erläutert).

    Zunächst gebe ich eine ungefähre Struktur der Site, für die dieses Menü geeignet ist. Die Site-Struktur sollte wie folgt aussehen (klassische Ansicht):

    /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

    Die Site kann auch Unterabschnitte für Abschnitte enthalten:

    /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/articles_2.html

    Diese Struktur funktioniert mit nur geringfügigen Unterschieden auch für unser Menü.

    Ich schlage vor, eine separate Datei für das Menü in PHP zu erstellen. Beispielsweise wäre „menu.php“ ein toller Name für eine solche Datei. Um das Menü zu implementieren, wird auch ein Menüstil in CSS bereitgestellt, um es sofort mehr oder weniger schön zu machen. Natürlich dient dieser Stil nur als Referenz, da die Designs der Websites sehr unterschiedlich sind.

    Code für die Menügestaltung in CSS:

    .menu ( Höhe:42px; Polsterung:0 0 0 16px; Hintergrund:url(images/spacer.png) wiederholen; ) .menu li ( display:block; float:left; ) .menu li.active ( Hintergrund: #000011 ; ) .menu a ( color:#FFF; display:block; line-height:42px; text-decoration:none; padding:0 14px; ) .menu a:hover ( background:url(images/spacer.png) wiederholen ; )

    Schauen wir uns nun die erste Möglichkeit zur Implementierung eines Menüs in PHP an, die etwas vereinfacht ist.

    Die erste Version des Menücodes in PHP

    \n"; für ($i=0;$i ": "
  • "; Echo " ".$array_menu[$i]["name"]."
  • \n"; ) echo ""; ?>

    Das Menü kann in zwei Teile unterteilt werden. Das erste enthält das Informationsarray $array_menu, das die Namen unserer Abschnitte mit Links zu Abschnitten enthält. Es besteht die Möglichkeit, diese Daten in die MySQL-Datenbank einzugeben, dies hat jedoch keinen besonderen Sinn, da die Stichprobe sehr klein ist und die Arbeitsgeschwindigkeit dadurch nicht beeinträchtigt wird.

    Der zweite Teil enthält die Ausgabe des Menüs über eine for-Schleife. Der Zyklus vergleicht die Site-Adresse mit der Adresse aus dem Array $array_menu. Wenn es eine Übereinstimmung gibt, zeigen wir den nächsten Menüabschnitt mit einer speziellen aktiven Klasse an:

  • , sonst eben
  • . Dadurch können wir den Teil des Menüs, in dem sich der Benutzer befindet, farblich hervorheben. Meiner Meinung nach ist dies eine notwendige Sache für jede Website, damit der Benutzer verstehen kann, in welchem ​​Bereich er sich befindet.

    Die Reihenfolge im Array bleibt erhalten, wenn das Menü auf der Site angezeigt wird. Das heißt, das Array muss in der Reihenfolge gefüllt werden, in der das Menü angezeigt werden soll.

    Notiz:
    Wenn die URLs (Adressen) der Abschnittsüberschriften wie folgt aussehen:
    /Abschnitt 1
    oder so
    /razdel_1/nazvanie_razdela.html
    Dann müssen Sie eine genaue Übereinstimmung in array_menu schreiben:
    $array_menu[$i]["url"]="/razdel_1"
    oder für den zweiten Fall:
    $array_menu[$i]["url"]="/razdel_1/nazvanie_razdela.html";

    Wie funktioniert die erste Menüoption?
    Das Menü wird nur hervorgehoben, wenn Sie sich an der Adresse der Abschnittsüberschrift befinden. Wenn die Seitenadresse beispielsweise /razdel_1/articles_1.html lautet, wird das Menü in keiner Weise hervorgehoben.

    Die zweite Version des Codes ist eine modifizierte Version der ersten und bietet die Möglichkeit, Menüs auch in Artikeln hervorzuheben, die sich in Abschnitten befinden.

    Die zweite Version des Menücodes in PHP

    "; für ($i=0;$i ": "
  • "; echo "".$array_menu[$i]["title"]."
  • "; ) else ( echo ($URL) == ($array_menu[$i]["url"]) ? "
  • ": "
  • "; echo "".$array_menu[$i]["title"]."
  • "; ) ) echo ""; ?>

    Wenn Sie an der Antwort auf die Frage interessiert sind, wie man ein Website-Menü erstellt, dann sind Sie bei uns an der richtigen Adresse.

    Wir werden uns mit der Erstellung eines dynamischen Menüs in PHP befassen, das speziell für Programmierdummies geschrieben wurde, aber auch für diejenigen, die noch im Tank sind.

    Lektion 3. Ein Menü in PHP für eine dynamische Website erstellen – für Dummies

    Lassen Sie uns das zukünftige Layout unserer Website erstellen. Dazu zeichnen wir in Photoshop eine superschöne Website und schneiden sie in Stücke. Stellen wir uns vor, dass Kopfzeile, Logo, Menü und Fußzeile nicht wie in diesem Beispiel in Worten geschrieben sind, sondern elegant und farbenfroh gestaltete Elemente der Website sind.

    Lassen Sie uns zum Beispiel drei Seiten erstellen und sie Abschnitt 1, Abschnitt 2, Abschnitt 3 nennen

    Dieser Text wird für verschiedene Seiten unterschiedlich sein, aber wir kümmern uns nicht darum und lassen ihn auf allen Seiten so, wie er ist.

    Beginnen wir mit der Erstellung einer Website in PHP.

    1. Wählen Sie die Header-, Logo-, Menü- und Fußzeilenblöcke in separaten Dateien mit der Erweiterung php oder html aus

    header.html

    logo.html

    menü.html

    footer.html

    Fügen wir eine Datei mit diesem Text hinzu, damit wir ihn auf allen Seiten sehen können. Rufen wir ihn an text.html

    Notiz. Weitere Aufzeichnungen werde ich ab sofort direkt in der Akte führen. text.html

    2. Lassen Sie uns eine Vorlage für unsere Website in PHP erstellen.

    Dazu machen wir eine einfache Sache: Speichern Sie die echte Datei, jedoch mit der PHP-Erweiterung, und löschen Sie den gesamten Textinhalt. Es mag nicht professionell sein, aber es ist verständlich, aber wir werden alles später verkomplizieren. Jetzt geht es vor allem darum, das Prinzip des Layouts zu verstehen.

    3. Jetzt benötigen wir die Datei template.html nicht mehr.

    Dank ihm haben wir eine Vorstellung davon, wie unsere Website aussehen wird.

    4. Unsere Vorlage ist die Datei template.php

    Wir werden nun alle Site-Elemente mit dem Befehl include darin einfügen.

    5. Lassen Sie uns wie ursprünglich geplant drei Seiten erstellen.

    Abschnitt 1, Lass uns anrufen 1.php

    Sektion 2, Lass uns anrufen 2.php

    Sektion 3, Lass uns anrufen 3.php

    Dazu können Sie den einfachsten Befehl verwenden speichern als...

    Lassen Sie es mich für die Kleinen erklären: Öffnen Sie die Datei template.php, dann drücken speichern als... und speichern Sie es unter dem Namen 1.php, wiederholen Sie den Vorgang und speichern Sie die Seiten der Site nacheinander 2.php, 3.php

    Am Ende hatten wir drei Seiten mit dem gleichen Design. Fügen Sie es einfach anstelle einer Datei ein text.html eine andere, ergänzen Sie sie mit verschiedenen Bildern oder einigen HTML-Codes, Skripten und der Inhalt jeder Seite wird einzigartig sein.

    Aufmerksamkeit!

    Wenn die Datei nicht erstellt wird index.php Für die Hauptseite sehen wir dann im Browser durch Eingabe der Site-Adresse nicht die Site selbst, sondern nur die Verzeichnisstruktur (Liste der Ordner).

    Sie können in Denver nachsehen und sich selbst davon überzeugen. Beheben wir die Situation – erstellen Sie eine Datei index.php und lasst uns ohne weitere Umschweife anrufen heim. Lassen Sie uns gleichzeitig eine Datei erstellen text-home.html und den Befehl verwenden enthalten Fügen Sie es auf der neu erstellten Hauptseite der Website ein.

    6. Wie kann ich eine Website in PHP anzeigen?

    Wir werden einfach nicht sehen, was passiert ist. Dies ist keine Vorlage mehr mit einer HTML-Erweiterung.

    Aber auch kein Problem. Wir brauchen unsere eigenen, d.h. lokalen Server auf Ihrem Computer. Dazu installieren wir Denver und schauen uns das Ergebnis unserer Arbeit im Browser an, ohne online zu gehen.

    Das ist nun Ordnung. Ich tippte die Site-Adresse ein und sah alles, was gerade erstellt worden war, in normaler Form mit Design.

    Kommen wir nun zum PHP-Menü der Website.

    1. Öffnen Sie die Datei „menu.html“ und wandeln Sie die Abschnitte 1, 2 und 3 in Links auf der Website um. Links in PHP werden auf unterschiedliche Weise erstellt.

    Unsere Aufgabe ist es, zu lernen, wie man eine in PHP erstellte Website fühlt. Daher werden wir Links wie auf einer regulären statischen Website in Abschnitt 1 usw. erstellen.

    Ich liebe diesen Linkerstellungsprozess in Macromedia Dreamweaver absolut. Zeit zum Ernten haben OK und Kaffee trinken.

    2. So machen Sie einen Link im Menü inaktiv, wenn sich der Besucher auf dieser Seite befindet.

    Für den Besucher ist es bequemer, auf der Website zu navigieren, da er weiß, auf welcher Seite er sich befindet.

    Wenn Sie alle Schritte Punkt für Punkt genau befolgt haben, werden Sie feststellen, dass alle Links im Menü immer aktiv sind. Wie man es repariert?

    Erinnern wir uns zunächst an die Definition dessen, was es ist Bedingte Anweisungen

    – Dies ist der Fall, wenn je nach Bedingungen eine Aktion ausgeführt oder nicht ausgeführt wird.

    Machen wir Folgendes:

    • Wir brauchen Variablen und ein Bedingungsoperator:

    if ($master == "Main")// diese Bedingung. Wenn es ausgeführt wird, werden an dieser Stelle des Menüs mit dem Echo-Befehl gewöhnliche HTML-Tags eingefügt, die die Aufschrift „Home“ anzeigen.

    Echo“

    heim

    ";

    anders// bedeutet „sonst“ – was passiert, wenn die Bedingung nicht erfüllt ist. In diesem Fall ist die Aufschrift „Home“ ein Link, der zur Hauptseite führt, wenn die Bedingung nicht erfüllt ist.

    Echo“

    heim

    ";

    • Wir haben uns die Bedingung ausgedacht, aber so PrüfvariableDu musst es fragen.

    Dazu werden wir auf allen Seiten folgende Codeblöcke platzieren:

    $master = "Main";

    $master = "Abschnitt 1";

    $master = "Abschnitt 2";

    $master = "Abschnitt 3";

    Wie Sie sehen, hat jede Seite ihren eigenen Code.

    Unsere praktischen Schritte zum Erstellen eines PHP-Menüs lauten also wie folgt:

    1) Öffne die Datei index.php

    und fügen Sie den Code ein

    $master = "Main";

    an die Stelle, an der Sie den Code einfügen, der das Site-Menü selbst anzeigt „menu.html“ einschließen;
    ?>

    2) Öffne die Datei menü.html und fügen Sie den Code mit der Bedingung anstelle eines einfachen HTML-Links zur Hauptseite ein.

    Wir schauen in den Browser und bewundern! Wenn wir zur Hauptseite gehen, ist der Link nicht mehr aktiv!

    3) Wiederholen Sie die Punkte 1 und 2 mit Seiten 1.php, 2.php, 3.php

    Wiederholung 1:

    1) Öffnen Sie die Datei 1.php und fügen Sie vor dem Code ein, der einen Menüblock mit einer bestimmten Variablen anzeigt

    $master = "Abschnitt 1";

    2) Öffnen Sie die Datei „menu.html“ und fügen Sie den Code mit der Bedingung anstelle eines einfachen Links ein Abschnitt 1 und nimmt folgende Änderungen vor:

    if ($master == "Abschnitt 1")// diese Bedingung. Wenn es ausgeführt wird, werden an dieser Stelle des Menüs mit dem Echo-Befehl gewöhnliche HTML-Tags eingefügt, die die Aufschrift „Abschnitt 1“ anzeigen.

    Echo“

    Abschnitt 1

    ";

    anders// bedeutet „sonst“ – was passiert, wenn die Bedingung nicht erfüllt ist. In diesem Fall wird, wenn die Bedingung nicht erfüllt ist, die Aufschrift „Abschnitt 1“ ein Link zur Hauptseite sein.

    Echo“

    Abschnitt 1

    ";

    Das Wunder geschah wieder! Wenn wir jetzt auf der Seite sind Abschnitt 1, der Link im Menü ist nicht aktiv.

    Wiederholung ist die Mutter des Lernens! Oder für die im Tank! Noch einmal

    Wiederholung 2

    1) Öffnen Datei 2.php und fügen Sie den Code ein.

    $master = "Abschnitt 2";

    2) Öffnen Sie die Datei „menu.html“ erneut und fügen Sie den Code mit der Bedingung ein

    if ($master == "Abschnitt 2")// diese Bedingung. Wenn es ausgeführt wird, werden an dieser Stelle des Menüs mit dem Echo-Befehl gewöhnliche HTML-Tags eingefügt, die die Aufschrift „Abschnitt 2“ anzeigen.

    Echo“

    Sektion 2

    ";

    anders// bedeutet „sonst“ – was passiert, wenn die Bedingung nicht erfüllt ist. In diesem Fall wird, wenn die Bedingung nicht erfüllt ist, die Aufschrift „Abschnitt 2“ ein Link sein, der zur Hauptseite führt.

    Echo“

    Sektion 2

    ";

    Wiederholung 3

    1) Öffnung Datei 3.php und legen Sie die Variable fest.

    $master = "Abschnitt 3";

    2) In der Datei „menu.html“ fügen wir den Code mit einer Bedingung anstelle eines Links ein Sektion 3, die Änderungen sind:

    if ($master == "Abschnitt 3")// diese Bedingung. Wenn es ausgeführt wird, werden an dieser Stelle des Menüs mit dem Echo-Befehl gewöhnliche HTML-Tags eingefügt, die die Aufschrift „Abschnitt 3“ anzeigen.

    Echo“

    Sektion 3

    ";

    anders// bedeutet „sonst“ – was passiert, wenn die Bedingung nicht erfüllt ist. In diesem Fall wird, wenn die Bedingung nicht erfüllt ist, mit der Aufschrift „Abschnitt 3“ ein Link zur Hauptseite angezeigt.

    Echo“

    Sektion 3

    ";

    Endeffekt: anstelle von Links in dieser Art von Menü

    heim


    Abschnitt 1

    Sektion 2


    Sektion 3

    Diese Lektion über PHP wurde als Reaktion auf zahlreiche Anfragen von Website-Besuchern geschrieben und ist eine praktische Anleitung zum Erlernen des Erstellens eines dynamischen Menüs für eine Website in PHP.

    Im nächsten Webmaster-Spickzettel erfahren Sie, wie Sie in PHP eindeutige Titel, Beschreibungen und Schlüsselwörter für jede Seite erstellen.

    Sie können das Archiv mit allen Site-Vorlagen und PHP-Menüdateien herunterladen. Empfohlen für Programmierneulinge.

    Wenn Sie bereit sind, PHP ernsthaft zu studieren, ist es schwierig, einen besseren Videokurs von Popov zu finden. Er hat viel Erfahrung und einen guten Stil.

    ]]> ]]>



  • 2024 | Computer für jedermann – Einrichtung, Installation, Wiederherstellung