Δυναμικές σελίδες σε PHP. PHP. Δυναμική δημιουργία σελίδας Τι χρειάζεστε για να εργαστείτε

Τελευταία ενημέρωση: 1/11/2015

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

Για να δημιουργήσουμε προγράμματα σε PHP, χρειαζόμαστε ένα πρόγραμμα επεξεργασίας κειμένου. Το πιο δημοφιλές πρόγραμμα σήμερα είναι το Notepad++.

Ας προχωρήσουμε στον κατάλογο C:\localhost που δημιουργήθηκε προηγουμένως, ο οποίος θα αποθηκεύει όλα τα έγγραφα του ιστότοπου. Ας δημιουργήσουμε ένα αρχείο κειμένου και ας το ονομάσουμε index.html. Ας το ανοίξουμε σε ένα πρόγραμμα επεξεργασίας κειμένου και ας προσθέσουμε τον ακόλουθο κώδικα σε αυτό:

Πρώτη ιστοσελίδα σε PHP

Εισαγάγετε τα στοιχεία σας:

Εισάγετε το όνομά σας:

Εισαγάγετε επώνυμο:

Ο κώδικας html περιέχει μια φόρμα με δύο πεδία κειμένου. Όταν κάνετε κλικ στο κουμπί, τα δεδομένα αυτής της φόρμας αποστέλλονται στο σενάριο display.php, όπως καθορίζεται στο χαρακτηριστικό action.

Τώρα ας δημιουργήσουμε αυτό το σενάριο που θα επεξεργάζεται τα δεδομένα. Προσθήκη στο φάκελο C:\localhostνέο αρχείο κειμένου. Ας το μετονομάσουμε σε display.php. Από προεπιλογή, τα αρχεία προγράμματος php έχουν την επέκταση .php. Λοιπόν, ας προσθέσουμε τον ακόλουθο κώδικα στο αρχείο display.php:

Πρώτη ιστοσελίδα σε PHP ".$name . " " . $surname . ""; ?>

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

Κάθε έκφραση της PHP πρέπει να τελειώνει με ένα ερωτηματικό. Σε αυτή την περίπτωση έχουμε τρεις εκφράσεις. Δύο από αυτά λαμβάνουν τα δεδομένα της φόρμας που υποβλήθηκαν, για παράδειγμα $name = $_POST["firstname"]; .

Το $name είναι μια μεταβλητή που θα αποθηκεύσει κάποια τιμή. Όλες οι μεταβλητές στην PHP έχουν ένα σύμβολο $. Και επειδή η φόρμα στη σελίδα index.html χρησιμοποιεί τη μέθοδο POST για υποβολή, χρησιμοποιώντας την έκφραση $_POST["firstname"] μπορούμε να λάβουμε την τιμή που εισήχθη στο πεδίο κειμένου με το χαρακτηριστικό name="firstname". Και αυτή η τιμή πηγαίνει στη μεταβλητή $name.

Χρησιμοποιώντας τον τελεστή ηχούς, μπορείτε να εμφανίσετε στη σελίδα οποιαδήποτε τιμή ή κείμενο που ακολουθεί τον τελεστή. Σε αυτήν την περίπτωση (echo "Το όνομά σας: ".$name . " " . $surname . "") χρησιμοποιώντας ένα σημείο τελείας, το κείμενο σε εισαγωγικά συνδέεται με τις τιμές των μεταβλητών $name και $surname και εμφανίζεται στη σελίδα.

Τώρα ας στραφούμε στη φόρμα εισαγωγής μεταβαίνοντας στη διεύθυνση http://localhost:8080:

Εισαγάγετε ορισμένα δεδομένα και κάντε κλικ στο κουμπί αποστολής:

Λοιπόν, το σενάριό μας λειτούργησε εμφάνιση.php, το οποίο έλαβε και εμφάνιζε τα απεσταλμένα δεδομένα στη σελίδα.

Δημιουργήστε ένα αρχείο με το όνομα hello.php στον ριζικό κατάλογο του διακομιστή ιστού (DOCUMENT_ROOT) και γράψτε τα ακόλουθα σε αυτό:

Παράδειγμα #1 Πρώτο σενάριο στην PHP: hello.php



Δοκιμή PHP


"

Γειά σου Κόσμε!

" ; ?>

Ανοίξτε αυτό το αρχείο στο πρόγραμμα περιήγησής σας πληκτρολογώντας το όνομα του διακομιστή ιστού σας και /hello.php. Κατά την ανάπτυξη τοπικά, αυτός ο σύνδεσμος θα μπορούσε να είναι κάτι παρόμοιο http://localhost/hello.phpή http://127.0.0.1/hello.php, αλλά εξαρτάται από τις ρυθμίσεις του διακομιστή σας. Εάν όλα έχουν ρυθμιστεί σωστά, αυτό το αρχείο θα υποβληθεί σε επεξεργασία από την PHP και το πρόγραμμα περιήγησης θα παράγει το ακόλουθο κείμενο:

PHP Test

Γειά σου Κόσμε

Αυτό το πρόγραμμα είναι εξαιρετικά απλό και δεν χρειάζεται καν να χρησιμοποιήσετε PHP για να δημιουργήσετε μια τόσο απλή σελίδα. Το μόνο που κάνει είναι να συμπεράνει Γειά σου Κόσμεχρησιμοποιώντας οδηγίες PHP ηχώ. Σημειώστε ότι το αρχείο δεν χρειάζεται να είναι εκτελέσιμοή να διαφέρουν κάπως από άλλα αρχεία. Ο διακομιστής γνωρίζει ότι αυτό το αρχείο πρέπει να υποβληθεί σε επεξεργασία από την PHP, καθώς το αρχείο έχει επέκταση ".php", που οι ρυθμίσεις διακομιστή λένε ότι τέτοια αρχεία πρέπει να μεταφερθούν στην PHP. Σκεφτείτε το ως ένα κανονικό αρχείο HTML που είναι αρκετά τυχερό να έχει ένα σωρό ειδικές ετικέτες (διαθέσιμες και σε εσάς) που μπορούν να κάνουν πολλά ωραία πράγματα.

Εάν αυτό το παράδειγμα δεν εμφανίζει τίποτα ή εμφανίζει ένα παράθυρο λήψης ή εάν βλέπετε ολόκληρο αυτό το αρχείο ως κείμενο, τότε πιθανότατα ο διακομιστής ιστού σας δεν έχει υποστήριξη PHP ή έχει ρυθμιστεί εσφαλμένα. Ζητήστε από τον διαχειριστή του διακομιστή σας να ενεργοποιήσει αυτήν την υποστήριξη. Δώστε του οδηγίες εγκατάστασης: την ενότητα Εγκατάσταση αυτής της τεκμηρίωσης. Εάν αναπτύσσετε σενάρια PHP στο σπίτι (τοπικά), τότε διαβάστε επίσης αυτό το κεφάλαιο για να βεβαιωθείτε ότι έχετε ρυθμίσει τα πάντα σωστά. Βεβαιωθείτε επίσης ότι ζητάτε το αρχείο από τον διακομιστή μέσω του πρωτοκόλλου http. Εάν ανοίξετε απλώς ένα αρχείο από το σύστημα αρχείων σας, δεν θα υποβληθεί σε επεξεργασία από την PHP. Εάν εξακολουθείτε να αντιμετωπίζετε προβλήματα, μη διστάσετε να ζητήσετε βοήθεια από έναν από τους παρόχους υποστήριξης PHP.

Ο σκοπός του παραδείγματος είναι να δείξει τη μορφή των ειδικών ετικετών PHP. Σε αυτό το παράδειγμα χρησιμοποιήσαμε ως ετικέτα ανοίγματος, ακολουθούμενη από εντολές PHP που τελειώνουν με ετικέτα κλεισίματος ?> . Με αυτόν τον τρόπο μπορείτε να μεταβείτε και να βγείτε από τη λειτουργία PHP οπουδήποτε σε ένα αρχείο HTML. Μπορείτε να διαβάσετε περισσότερα σχετικά με αυτό στην ενότητα Βασική σύνταξη του εγχειριδίου.

Σχόλιο: Μια σημείωση για τις νέες γραμμές

Οι αλλαγές γραμμής δεν σημαίνουν πολλά σε HTML, αλλά θεωρείται καλή ιδέα να διατηρείτε την HTML ευανάγνωστη τυλίγοντάς την σε μια νέα γραμμή. Η PHP αφαιρεί αυτόματα τις αλλαγές γραμμής αμέσως μετά την ετικέτα κλεισίματος ?> . Αυτό μπορεί να είναι εξαιρετικά χρήσιμο εάν χρησιμοποιείτε πολλά μπλοκ κώδικα PHP ή εάν συμπεριλάβετε αρχεία PHP που δεν πρέπει να εξάγουν τίποτα. Ταυτόχρονα, μπορεί να προκαλέσει σύγχυση. Μπορείτε να βάλετε κενό διάστημα μετά την ετικέτα κλεισίματος ?> και στη συνέχεια ο χώρος θα βγει μαζί με τη νέα γραμμή ή μπορείτε να προσθέσετε συγκεκριμένα μια νέα γραμμή στην τελευταία κλήση echo/print από το μπλοκ κώδικα PHP.

Σχόλιο: Λίγα λόγια για τους επεξεργαστές κειμένου

Υπάρχουν πολλοί επεξεργαστές κειμένου και ενσωματωμένα περιβάλλοντα ανάπτυξης (IDE) στα οποία μπορείτε να δημιουργήσετε και να επεξεργαστείτε αρχεία PHP. Μια λίστα με ορισμένους συντάκτες περιέχεται στην ενότητα » Λίστα συντακτών PHP . Εάν θέλετε να προτείνετε έναν συντάκτη, επισκεφτείτε αυτήν τη σελίδα και ζητήστε να προστεθεί στη λίστα. Η χρήση ενός προγράμματος επεξεργασίας με επισήμανση σύνταξης μπορεί να είναι μια τεράστια βοήθεια στην εργασία σας.

Σχόλιο: Λίγα λόγια για τους επεξεργαστές κειμένου

Οι επεξεργαστές κειμένου (StarOffice Writer, Microsoft Word, Abiword κ.λπ.) στις περισσότερες περιπτώσεις δεν είναι κατάλληλοι για την επεξεργασία αρχείων PHP. Εάν εξακολουθείτε να θέλετε να χρησιμοποιήσετε οποιοδήποτε από αυτά για το σενάριο δοκιμής σας, βεβαιωθείτε ότι έχετε αποθηκεύσει το αρχείο ως απλό κείμενο(απλό κείμενο), διαφορετικά η PHP δεν θα μπορεί να διαβάσει και να εκτελέσει το σενάριό σας.

Σχόλιο: Λίγα λόγια για το Σημειωματάριο των Windows

Όταν γράφετε σενάρια PHP χρησιμοποιώντας το ενσωματωμένο Σημειωματάριο των Windows, πρέπει να αποθηκεύετε αρχεία με την επέκταση .php. (Το Σημειωματάριο θα προσθέσει αυτόματα την επέκταση .txt, εκτός και αν ακολουθήσετε τα ακόλουθα βήματα.) Όταν σας ζητηθεί ένα όνομα αρχείου κατά την αποθήκευση του αρχείου, εισαγάγετε το όνομα αρχείου σε διπλά εισαγωγικά (για παράδειγμα, "hello.php"). Επιπλέον, μπορείτε να κάνετε κλικ στο αναπτυσσόμενο μενού «Έγγραφα κειμένου» στο πλαίσιο διαλόγου αποθήκευσης αρχείων και να επιλέξετε «Όλα τα αρχεία» σε αυτό. Μετά από αυτό, μπορείτε να εισαγάγετε το όνομα του αρχείου χωρίς εισαγωγικά.

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

Παράδειγμα #2 Λήψη πληροφοριών συστήματος από την PHP

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

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

ΠΡΟΣΟΧΗ: Ο φάκελος εικόνων προτύπων δεν περιέχει γραφικά περιεχομένου!

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

Στη συνέχεια, μπορείτε να αρχίσετε να δημιουργείτε το κύριο αρχείο index.php, το οποίο θα καθορίσει την οπτική διάταξη των στοιχείων του ιστότοπου και θα πει στο Joomla CMS σε ποιο μπλοκ θα τοποθετήσει διάφορα στοιχεία και λειτουργικές μονάδες. Το αρχείο είναι ένας συνδυασμός PHP και HTML.

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

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

Η τοποθέτηση των στοιχείων της σελίδας (μπλοκ) γίνεται με χρήση κώδικα HTML συγκεκριμένα, θα χρησιμοποιήσουμε ετικέτες DIV. Αλλά ο τρόπος με τον οποίο θα λειτουργεί ο ιστότοπός μας στη μηχανή Joomla, π.χ. Θα είναι δυναμικό, τότε θα πρέπει επίσης να χρησιμοποιήσετε τη γλώσσα PHP. Με τη βοήθειά του, θα προσδιορίσουμε σε ποια μπλοκ θα βρίσκονται οι θέσεις για τις μονάδες εξόδου και πώς θα ονομάζονται αυτές οι θέσεις, εάν τα μπλοκ θα συμπτυχθούν ή όχι. Θα συνδέσουμε φύλλα στυλ από εξωτερικά αρχεία, τη γλώσσα περιεχομένου, θα ορίσουμε πώς θα αλλάξει το μέγεθος του ιστότοπου κ.λπ.

index.php

Κεφαλίδα αρχείου

Η κεφαλίδα του αρχείου αποτελείται από πολλά μέρη. Το πρώτο μέρος του κώδικα κεφαλίδας PHP είναι να διασφαλίσει ότι το αρχείο δεν έχει άμεση πρόσβαση, για λόγους ασφαλείας.

< ?php
ορίζεται ("_JEXEC" ) ή die ;
JHtml::_("behavior.framework" , true );
$app = JFactory::getApplication() ;
?>
< ?php echo "< ?" ; ?> xml version="1.0" encoding=" < ?php echo $Αυτό-> _σύνολο χαρακτήρων ?> "?>

Το DOCTYPE είναι μια πολύ σημαντική παράμετρος βάσει της οποίας το πρόγραμμα περιήγησης αποφασίζει πώς να εμφανίσει αυτήν τη σελίδα και πώς να ερμηνεύσει το CSS.

< ! DOCTYPE html PUBLIC "- / / W3C/ / DTD XHTML 1.0 Strict/ / EN""http: // www.w3.org/ TR/ xhtml1/ DTD/ xhtml1- strict.dtd">

Το παρακάτω απόσπασμα ανακτά την εγκατεστημένη γλώσσα από την καθολική διαμόρφωση.

< html xmlns= "http:// www.w3.org/ 1999/ xhtml" xml:lang= " < ?php echo $Αυτό-> γλώσσα; ?>" lang = " < ?php echo $Αυτό-> γλώσσα; ?>" dir = " < ?php echo $Αυτό-> κατεύθυνση; ?>" >

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

< head>
< jdoc:include type= "head" / >

Οι ακόλουθες γραμμές κεφαλίδας περιέχουν συνδέσμους προς τα κύρια στυλ CSS του Joomla.

< link rel= "stylesheet" href= "< ?php echo $Αυτό-> baseurl ?> / templates/ system / css/ system .css" type="text /css" / >
< link rel= "stylesheet" href= "< ?php echo $Αυτό-> baseurl ?> / templates/ system / css/ general.css" type="text /css" / >

Για να χρησιμοποιήσουμε στυλ σχεδίασης προτύπων, συνδέουμε ένα αρχείο που περιέχει φύλλα στυλ cascading template.css, το οποίο βρίσκεται στο φάκελο CSS. Δεν έχει σημασία ότι αυτό το αρχείο είναι κενό προς το παρόν, το κύριο πράγμα είναι να το συνδέσετε, θα ασχοληθούμε με το σχεδιασμό αργότερα, όταν εγκαταστήσουμε το πρότυπο στο Joomla. Αυτό θα διευκολύνει την παρατήρηση του αποτελέσματος.

< link rel= "stylesheet" href= "< ?php echo $Αυτό-> baseurl ?> /templates/< ?php echo $Αυτό-> πρότυπο ?> /css/template.css" type="text /css" / >

Το παρακάτω απόσπασμα κώδικα μας επιτρέπει να συμπτύξουμε την αριστερή ή τη δεξιά στήλη, εάν δεν υπάρχουν λειτουργικές μονάδες στην αριστερή και τη δεξιά θέση. Εάν και οι δύο στήλες είναι σύμπτυκτες, το περιεχόμενο καταλαμβάνει το 100% του πλάτους της σελίδας. Εάν περιλαμβάνεται μόνο μία στήλη, τότε το περιεχόμενο καταλαμβάνει 80%. Με δύο στήλες ενεργοποιημένες, το περιεχόμενο αντιπροσωπεύει το 60% του πλάτους της σελίδας.

< ?php
εάν ($ Αυτό-> countModules("αριστερά και δεξιά" ) = = 0) $contentwidth = "100" ;
εάν ($ Αυτό-> countModules("αριστερά ή δεξιά" ) = = 1) $contentwidth = "80" ;
εάν ($ Αυτό-> countModules("αριστερά και δεξιά" ) = = 1) $contentwidth = "60" ;
?>

Η κεφαλίδα κλείνει

< / head>

< body>

Το μπλοκ "σελίδα" περιέχει τη σχεδίαση μόνο της σελίδας του ιστότοπου, η οποία θα έχει πλάτος 950 εικονοστοιχεία.

< div id= "page" >

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

< div id= "top" >

Στο "λογότυπο" bokeh θα τοποθετήσουμε ένα γραφικό αρχείο του λογότυπου αυτό θα καθοριστεί στα φύλλα στυλ. Όμως γράφουμε την αυτόματη εμφάνιση του ονόματος της τοποθεσίας στο αρχείο index.php και τοποθετούμε το όνομα στην ετικέτα H1, η οποία είναι πολύ σημαντική για τη βελτιστοποίηση μηχανών αναζήτησης.

< div id= "logo" >
< h1> < ?php echo $app - >getCfg("όνομα τοποθεσίας" ); ?>< / h1>
< / div>

Ας ορίσουμε τη θέση «χρήστης1» στο ομώνυμο μπλοκ για την εμφάνιση της ενότητας αναζήτησης ιστότοπου.

< div id= "user1" >
< jdoc:include type= "modules" name= "user1" style= "xhtml" / >
< / div>
< / div> < ! - - конец блока top - - >

Έξοδος της μονάδας οριζόντιου μενού στο μπλοκ "user2" στη θέση "user2". Το μπλοκ θα καταρρεύσει εάν δεν υπάρχει μονάδα σε αυτήν τη θέση.

< ?php if ($Αυτό-> countModules("user2" ) ): ?>
< div id= "user2 " >
< jdoc:include type= "modules" name= "user2" style= "xhtml" / >
< / div>
< ?php endif ; ?>

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

< ?php if ($Αυτό-> countModules(" επί κεφαλής") ) : ?>
< div id= "επί κεφαλής">
< jdoc:include type= "modules" name= "επί κεφαλής" style="xhtml" / >
< / div>
< ?php endif ; ?>

Στο μπλοκ "user3" ορίζουμε τη θέση "user3" για την έξοδο των μονάδων.

Το μπλοκ θα καταρρεύσει εάν δεν υπάρχει έξοδος μονάδας σε αυτήν τη θέση "χρήστης3".

< ?php if ($Αυτό-> countModules("user3" ) ): ?>
< div id= "user3" >
< jdoc:include type= "modules" name= "user3" style= "xhtml" / >
< / div>
< ?php endif ; ?>

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

< ?php if ($Αυτό-> countModules("left" ) ): ?>
< div id= "left" >
< jdoc:include type= "modules" name= "left" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Ανοίγει το πιο σημαντικό μπλοκ περιεχομένου, το οποίο μπορεί να καταλάβει το 100% του πλάτους της σελίδας, το 80% και το 60%, ανάλογα με τον αριθμό των στηλών που περιλαμβάνονται.

< div id= "content< ?php echo $contentwidth ; ?> " >

Εμφάνιση μηνυμάτων σε στοιχεία

< jdoc:include type= "message" / >

Εξαγωγή περιεχομένου περιεχομένου.

< jdoc:include type= "component" style= "xhtml" / >
< / div> < ! - - конец блока контента- - >

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

< ?php if ($Αυτό-> countModules("right" ) : ?>
< div id= "rigth" >
< jdoc:include type= "modules" name= "right" style= "xhtml" / >
< / div>
< ?php endif ; ?>

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

< ?php if ($Αυτό-> countModules("footer") ): ?>
< div id= "footer" >
< jdoc:include type= "modules" name= "footer" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Το μπλοκ σελίδας ιστότοπου "σελίδα", το σώμα και όλος ο κώδικας είναι κλειστά.

< / div> < ! - - конец блока page- - >
< / body> < ! - - конец блока body - - >
< / html> < ! - - конец кода- - >

Έχουμε δημιουργήσει ένα πλήρες αρχείο index.php. Τώρα ξέρετε ποιες εντολές χρησιμοποιούνται και με ποια σειρά εμφανίζονται τα μπλοκ προτύπων.

ΠΡΟΣΟΧΗ: Για να διαβαστεί ο κώδικας του προτύπου από τον πίνακα διαχείρισης του joomla, το αρχείο index.php πρέπει να ανοίξει στον επεξεργαστή AkelPad και να αποθηκευτεί σε κωδικοποίηση UTF-8, ενώ καταργήστε την επιλογή του πλαισίου ελέγχου BOM. Εάν χρησιμοποιήσατε το πρόγραμμα Macromedia Dreamweaver για να εργαστείτε με το αρχείο, τότε πρέπει να επιλέξετε "Επεξεργασία"> "Ιδιότητες σελίδας" στο επάνω μενού και να επιλέξετε το έγγραφο που κωδικοποιεί Unicode (utf-8) και να καταργήσετε την επιλογή "ενεργοποίηση υπογραφών Unicode (BOM )». Ωστόσο, σας συμβουλεύω ανεπιφύλακτα να μην επεξεργαστείτε τον κώδικα από τον πίνακα διαχείρισης του Joomla, εάν χάσετε κάτι - δεν υπάρχει επιστροφή, σε αντίθεση με το πρόγραμμα Macromedia Dreamweaver, όπου μπορείτε πάντα να αναιρέσετε τις αλλαγές που έγιναν.

Ο σχεδιασμός των ίδιων των μπλοκ θα περιγραφεί στο template.css. Αλλά θα διαμορφώσουμε φύλλα στυλ μετά την εγκατάσταση του προτύπου στο Joomla 3 (joomla 2.5) και για αυτό πρέπει να δημιουργήσουμε

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

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

Δημιουργία δυναμικής σελίδας

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

"Δημιουργία δυναμικών σελίδων", "περιεχόμενο" => "Κείμενο του άρθρου σχετικά με τις δυναμικές σελίδες." ], [ "title" => "Πώς να πιάσετε ένα γατάκι", "content" => "Κείμενο του άρθρου για τα γατάκια." ] ]; ?>

Η δυναμική παράμετρος στη διεύθυνση URL θα ονομάζεται id και θα την πιάσουμε στο $_GET["id"] . Θα μπορούσαμε να προσθέσουμε ένα πεδίο id σε κάθε στοιχείο του πίνακα, αλλά στη συνέχεια θα έπρεπε να επαναλάβουμε όλα τα στοιχεία και να αναζητήσουμε τον υποπίνακα με το επιθυμητό αναγνωριστικό. Επομένως, είναι πολύ πιο εύκολο να χρησιμοποιήσετε τα πλήκτρα του κύριου πίνακα ως αναγνωριστικά.

Με απλά λόγια, παίρνουμε το αναγνωριστικό και προσπαθούμε να βρούμε ένα άρθρο με αυτό το κλειδί στον πίνακα $articles. Μοιάζει με αυτό:

Το μόνο που μένει είναι να σκιαγραφήσετε την έξοδο του μενού και να ελέγξετε το αναγνωριστικό για ορθότητα. Αποδεικνύεται ότι είναι ένας πραγματικός δρομολογητής PHP!

"Αρχική σελίδα", "περιεχόμενο" => "Κείμενο του άρθρου για τον ιστότοπό μας" ], [ "τίτλος" => "Δημιουργία δυναμικών σελίδων", "περιεχόμενο" => "Κείμενο του άρθρου σχετικά με τις δυναμικές σελίδες." ], [ "title" => "Πώς να πιάσετε ένα γατάκι", "content" => "Κείμενο του άρθρου για τα γατάκια." ] ]; # Εάν το αναγνωριστικό έχει περάσει, γράψτε το άρθρο στο $article ή null εάν δεν υπάρχει άρθρο με αυτό το αναγνωριστικό if(isset($_GET["id"])) $current_article = $articles[$_GET["id"]] ?? μηδενικό; # Εάν το αναγνωριστικό δεν περάσει, τότε αυτή είναι η κύρια σελίδα, μπορούμε να εμφανίσουμε τη σελίδα με id = 0 else $current_article = $articles; ?>

$article): ?> ">

Σφάλμα 404 - Η σελίδα δεν βρέθηκε

Τώρα μπορείτε να δημιουργήσετε δυναμικούς ιστότοπους όπου ο αριθμός των σελίδων εξαρτάται από τον αριθμό των στοιχείων του πίνακα και όχι από τα αρχεία PHP. :) Εάν ο ιστότοπος πρέπει να έχει διαφορετικούς τύπους σελίδων, για παράδειγμα, ένα άρθρο και ένα προϊόν, μπορείτε να μεταβιβάσετε τον τύπο σελίδας ως δεύτερη παράμετρο: site.ru?type=article&id=5 .

Φυσικά, αυτό το σύστημα δεν είναι τέλειο. Μετά από λίγο θα μάθετε πώς να δημιουργείτε ένα κανονικό CNC (πιο βολικές διευθύνσεις URL, για παράδειγμα site.ru/articles/5/) και να αποθηκεύετε άρθρα σε ένα αρχείο ή μια βάση δεδομένων.

1. Ας ξεκινήσουμε δημιουργώντας τον πίνακα χρηστών στη βάση δεδομένων. Θα περιέχει δεδομένα χρήστη (σύνδεση και κωδικό πρόσβασης). Ας πάμε στο phpmyadmin (αν δημιουργείτε μια βάση δεδομένων στον υπολογιστή σας http://localhost/phpmyadmin/). Δημιουργήστε έναν πίνακα χρήστες, θα έχει 3 πεδία.

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

2. Απαιτείται σύνδεση σε αυτόν τον πίνακα.Ας δημιουργήσουμε ένα αρχείο bd.php. Το ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ:

$db = mysql_connect("ο διακομιστής σας MySQL", "login for this server","password for this server");
mysql_select_db ("όνομα της βάσης δεδομένων στην οποία συνδέουμε", $db);
?>

Στην περίπτωσή μου μοιάζει με αυτό:

$db = mysql_connect("localhost","user","1234");
mysql_select_db("mysql",$db);
?>

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

3. Δημιουργήστε ένα αρχείο reg.php με τα περιεχόμενα (όλα τα σχόλια μέσα):



Εγγραφή


Εγγραφή
















4. Δημιουργήστε ένα αρχείο, το οποίο θα εισάγει δεδομένα στη βάση δεδομένων και θα αποθηκεύσει τον χρήστη. save_user.php(σχόλια μέσα):



{
}
//εάν εισαγάγετε τη σύνδεση και τον κωδικό πρόσβασης, τότε τα επεξεργαζόμαστε έτσι ώστε οι ετικέτες και τα σενάρια να μην λειτουργούν, ποτέ δεν ξέρετε τι μπορούν να εισαγάγουν οι χρήστες


//αφαίρεση επιπλέον διαστημάτων
$login = trim($login);
$password = trim($password);
// σύνδεση στη βάση δεδομένων
// ελέγξτε για την ύπαρξη χρήστη με την ίδια σύνδεση
$result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
if (!empty($myrow["id"])) (
exit("Λυπούμαστε, η σύνδεση που εισαγάγατε είναι ήδη εγγεγραμμένη. Εισαγάγετε άλλη σύνδεση.");
}
// αν δεν υπάρχει τέτοιο πράγμα, τότε αποθηκεύστε τα δεδομένα
$result2 = mysql_query("INSERT INTO users (login,password) VALUES("$login","$password")");
// Ελέγξτε εάν υπάρχουν σφάλματα
εάν ($result2=="TRUE")
{
echo "Έχετε εγγραφεί με επιτυχία! Τώρα μπορείτε να εισέλθετε στον ιστότοπο. Αρχική σελίδα";
}
αλλού(
echo "Σφάλμα! Δεν είστε εγγεγραμμένος.";
}
?>

5. Τώρα οι χρήστες μας μπορούν να εγγραφούν!Στη συνέχεια, πρέπει να δημιουργήσετε μια «πόρτα» για να μπουν ήδη εγγεγραμμένοι χρήστες στον ιστότοπο. index.php(σχόλια μέσα) :

// όλη η διαδικασία λειτουργεί σε συνεδρίες. Είναι όπου αποθηκεύονται τα δεδομένα του χρήστη ενώ βρίσκεται στον ιστότοπο. Είναι πολύ σημαντικό να τα λανσάρετε στην αρχή κιόλας της σελίδας!!!
session_start();
?>


Αρχική σελίδα


Αρχική σελίδα











Κανω ΕΓΓΡΑΦΗ



// Ελέγξτε εάν οι μεταβλητές σύνδεσης και αναγνωριστικού χρήστη είναι κενές
εάν (κενό($_SESSION["login"]) ή κενό($_SESSION["id"]))
{
// Εάν είναι κενό, τότε δεν εμφανίζουμε τον σύνδεσμο
echo "Έχετε συνδεθεί ως επισκέπτης
Αυτός ο σύνδεσμος είναι διαθέσιμος μόνο σε εγγεγραμμένους χρήστες".
}
αλλού
{

Στο αρχείο index.phpΘα εμφανίσουμε έναν σύνδεσμο που θα είναι ανοιχτός μόνο σε εγγεγραμμένους χρήστες. Αυτό είναι όλο το νόημα του σεναρίου - ο περιορισμός της πρόσβασης σε οποιαδήποτε δεδομένα.

6. Παραμένει ένα αρχείο με επαλήθευση των εισαγόμενων στοιχείων σύνδεσης και κωδικού πρόσβασης. testreg.php (σχόλια μέσα):

session_start();// όλη η διαδικασία λειτουργεί σε συνεδρίες. Είναι όπου αποθηκεύονται τα δεδομένα του χρήστη ενώ βρίσκεται στον ιστότοπο. Είναι πολύ σημαντικό να τα λανσάρουμε στην αρχή κιόλας της σελίδας!!!
if (isset($_POST["login"])) ($login = $_POST["login"]; if ($login == "") ( unset($login);) ) //εισαγάγετε τη σύνδεση που έχει εισαχθεί από ο χρήστης στη μεταβλητή $login, εάν είναι κενή, τότε καταστρέψτε τη μεταβλητή
if (isset($_POST["password"])) ($password=$_POST["password"]; if ($password =="") ( unset($password);) )
//βάλτε τον κωδικό πρόσβασης που εισήγαγε ο χρήστης στη μεταβλητή $password, εάν είναι κενή, τότε καταστρέψτε τη μεταβλητή
εάν (κενό($login) ή κενό($password)) //εάν ο χρήστης δεν εισήγαγε κωδικό σύνδεσης ή κωδικό πρόσβασης, τότε παρουσιάζουμε ένα σφάλμα και διακόπτουμε το σενάριο
{
exit ("Δεν έχετε εισαγάγει όλες τις πληροφορίες, επιστρέψτε και συμπληρώστε όλα τα πεδία!");
}
//εάν εισαγάγετε τη σύνδεση και τον κωδικό πρόσβασης, τα επεξεργαζόμαστε έτσι ώστε οι ετικέτες και τα σενάρια να μην λειτουργούν, ποτέ δεν ξέρετε τι μπορούν να εισαγάγουν οι χρήστες
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//αφαίρεση επιπλέον διαστημάτων
$login = trim($login);
$password = trim($password);
// σύνδεση στη βάση δεδομένων
include("bd.php");// το αρχείο bd.php πρέπει να βρίσκεται στον ίδιο φάκελο με όλα τα άλλα, αν δεν είναι, απλώς αλλάξτε τη διαδρομή

$result = mysql_query("SELECT * FROM users WHERE login="$login"",$db); //ανάκτηση από τη βάση δεδομένων όλων των δεδομένων σχετικά με τον χρήστη με την εισαγόμενη σύνδεση
$myrow = mysql_fetch_array($result);
if (κενό($myrow["password"]))
{
//αν δεν υπάρχει ο χρήστης με τα καταχωρημένα στοιχεία σύνδεσης
}
αλλού(
//αν υπάρχει, τότε ελέγξτε τους κωδικούς πρόσβασης
αν ($myrow["password"]==$password) (
//αν οι κωδικοί πρόσβασης ταιριάζουν, τότε ξεκινάμε μια συνεδρία για τον χρήστη! Μπορείτε να τον συγχαρείτε, μπήκε!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//αυτά τα δεδομένα χρησιμοποιούνται πολύ συχνά, επομένως ο συνδεδεμένος χρήστης θα "τα φέρει μαζί του"
echo "Έχετε μπει με επιτυχία στον ιστότοπο! Αρχική σελίδα";
}
αλλού(
//αν οι κωδικοί πρόσβασης δεν ταιριάζουν

Έξοδος ("Λυπούμαστε, η σύνδεση ή ο κωδικός πρόσβασης που εισαγάγατε είναι λάθος.");
}
}
?>

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

Τα ελεγξα όλα, δουλεύει σωστά!


Μπλουζα