Χρήση PHP σε σελίδες με επέκταση html. Φόρμα στη διάταξή σας Πώς να διαβάσετε τη σελίδα html php

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

Προσωπικά το πήρα για Π.Ο.Π.

Σημεία 4 και 5

$password = mysql_real_escape_string(stripslashes(md5($_POST["password"])));

Πρώτον, η σειρά αυτού είναι λάθος. Κατακερματίζετε $_POST["password"] και έπειταπροσπαθώντας να χρησιμοποιήσω stripslash - μετάοι κατακερματισμοί του δεν θα έχουν κάθετες. Ωστόσο, εάν προσπαθείτε να αποτρέψετε τη χρήση κάθετου (ή οτιδήποτε άλλο) στους κωδικούς πρόσβασης, θα πρέπει να τις αφαιρέσετε πριν κατακερματίσετε τη συμβολοσειρά.

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

ναι εσύ πρέπειΑποθηκεύστε κατακερματισμούς ή "δαχτυλικά αποτυπώματα" των κωδικών πρόσβασης, όχι τους ίδιους τους κωδικούς πρόσβασης, αλλά ιδανικά θέλετε να αλατίσετε και να κατακερματίσετε (τουλάχιστον με sha1) αυτούς τους κωδικούς πρόσβασης, αντί να τους ρίξετε απλώς στη συνάρτηση md5().

Και αναζητήστε "ρυθμίσεις κατακερματισμού κωδικού πρόσβασης" χρησιμοποιώντας τη μηχανή αναζήτησης της επιλογής σας.

Σημείο 6

SELECT id FROM $table WHERE όνομα χρήστη = "" . $όνομα χρήστη. "" και κωδικός = "" . $password. "";

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

SELECT user.id ΑΠΟ χρήστη WHERE user.username = "fred" Ή 1 = 1 -- AND user.password = "abc123"

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

Σημείο 7

$_SESSION["user"] = $_POST["όνομα χρήστη"];

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

Το αναγνωριστικό περιόδου σύνδεσης μπορεί εύκολα να μυριστεί από το cookie σε πραγματικό χρόνο και αυτό είναι το μόνο που απαιτείται για να "δανειστεί" το όνομα χρήστη κάποιου άλλου. Θα πρέπει τουλάχιστον να προσπαθήσετε να μειώσετε την πιθανότητα παραβίασης συνεδρίας συνδέοντας τη διεύθυνση IP του χρήστη, τη συμβολοσειρά UserAgent ή κάποιον άλλο συνδυασμό σχετικά στατικών δεδομένων που μπορούν να συγκριθούν με κάθε σελίδα... υπάρχουν μειονεκτήματα σε σχεδόν οποιαδήποτε προσέγγιση (ειδικά , όπως έχω ήδη διαπιστώσει, εάν έχετε επισκέπτες που χρησιμοποιούν AOL), αλλά μπορείτε να κάνετε μια πιθανή 99% αποτελεσματική συνεδρία δακτυλικών αποτυπωμάτων δυνατή για να μειώσετε την αεροπειρατεία με μια πολύ μικρή πιθανότητα να μηδενιστεί κατά λάθος η περίοδος σύνδεσης του χρήστη.

Στην ιδανική περίπτωση, θα μπορούσατε επίσης να δημιουργήσετε ένα διακριτικό περιόδου λειτουργίας για να μετριαστείτε Επιθέσεις CSRFόταν ο χρήστης χρειάζεται να εκτελέσει μια «προνομιακή» ενέργεια στη βάση δεδομένων (ενημέρωση των δεδομένων του ή κάτι άλλο). Το διακριτικό μπορεί να είναι ένας εντελώς τυχαίος και μοναδικός κώδικας αποθηκευμένος σε μια βάση δεδομένων ή/και κουλουράκι SSL όταν ο χρήστης συνδέεται (με την προϋπόθεση ότι ο χρήστης δεν μπορεί να εκτελέσει ενέργειες που ενημερώνουν τη βάση δεδομένων εκτός HTTPS, καθώς αυτό απλώς θα μεταδώσει τα δεδομένα σε καθαρό κείμενο μέσω του Διαδικτύου - κάτι που θα ήταν κακή ιδέα).

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

Μπορεί να υπάρχουν πολλά προβλήματα.

Πρώτα,στη δήλωση $match σας λείπει ο τελεστής ισότητας κωδικού πρόσβασης:

$match = "SELECT id FROM $table WHERE username = "".$username."" και password"".$password."";";

Θα πρέπει να είναι:

$match = "SELECT id FROM $table WHERE username = "".$username."" και password = "".$password."";";

κατα δευτερον, εισάγετε τον κωδικό πρόσβασης στη βάση δεδομένων μετάη χρήση του με md5;

Εάν όχι, τότε το αίτημά σας προσπαθεί να αντιστοιχίσει το md5 (κωδικός πρόσβασης) με τον κωδικό πρόσβασης.

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

Προηγουμένως, για τη χρήση του SSI, τα ονόματα σελίδων ιστοτόπων έπρεπε να τελειώνουν με την επέκταση .shtml, αλλά σήμερα οι περισσότεροι διακομιστές Διαδικτύου έχουν ρυθμιστεί έτσι ώστε το SSI να μπορεί να χρησιμοποιηθεί σε σελίδες με την επέκταση .html, κάτι που είναι αρκετά βολικό. Η PHP είναι μια εντελώς διαφορετική ιστορία - η επέκταση .php είναι η προεπιλεγμένη επέκταση. Οι προγραμματιστές ιστοτόπων γνωρίζουν εκ των προτέρων τι θα χρησιμοποιηθεί δεδομένης γλώσσαςπρογραμματισμός, στο στρας έχει εκχωρηθεί η σωστή επέκταση.

Τι να κάνετε όμως όταν όλες οι σελίδες τελειώνουν με την επέκταση .html;

Αντικαταστήστε την επέκταση HTML με PHP

Αυτό μπορεί να γίνει με διάφορους τρόπους. Ο πιο προφανής τρόπος είναι να δώσετε σε όλες τις σελίδες μια επέκταση .php ή να αλλάξετε τις υπάρχουσες επεκτάσεις (.html, .shtml, κ.λπ.). Αυτή η μέθοδος έχει μειονεκτήματα. Για παράδειγμα, οι σελίδες που έχουν ήδη ευρετηριαστεί με την επέκταση .html θα πρέπει να ευρετηριαστούν ξανά μηχανές αναζήτησης. Ή ακόμα χειρότερα - τα πάντα εξωτερικοί σύνδεσμοι, τα οποία συνδέονται ρητά σε μια συγκεκριμένη σελίδα θα είναι άκυρα. Και θα πρέπει να ειδοποιήσετε τους κατόχους κάθε ιστότοπου για αυτές τις αλλαγές και να δημιουργήσετε μια άλλη σελίδα με 301 σφάλματα για κάθε σελίδα. Φυσικά, η αλλαγή μιας επέκτασης σε άλλη είναι αποδεκτή, αλλά τι γίνεται αν ο ιστότοπος έχει ήδη πολλές σελίδες και πολλούς συνδέσμους σε διαφορετικές σελίδες από άλλους ιστότοπους;

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

Μπορείτε να το κάνετε με άλλο τρόπο. Εάν ο διακομιστής που φιλοξενεί τον ιστότοπο υποστηρίζει mod_rewrite (στις περισσότερες περιπτώσεις υποστηρίζει) και υπάρχει πρόσβαση στο αρχείο .htaccess, τότε μπορείτε να προσθέσετε τις ακόλουθες γραμμές σε αυτό ακριβώς το αρχείο:

RewriteEngine στο RewriteRule ^(.*)\.html $1\.php

Προσθέτοντας αυτόν τον κώδικα στο .htaccess, δεν χρειάζεται να ανησυχείτε. Όλες οι ζητούμενες ανύπαρκτες σελίδες με επέκταση .html θα αντικατασταθούν αυτόματα με επέκταση .php χάρη στα θαύματα του Apache. Αλλά αυτή η μέθοδος δεν είναι η μόνη. Μπορείτε να γράψετε τα ακόλουθα στο ίδιο αρχείο .htaccess:

Εφαρμογή AddHandler/x-httpd-php .php .html .htm

Κατά τη γνώμη μου ο πιο επιτυχημένος τρόπος. Αυτό κάνει τις σελίδες HTML ίσες με τις σελίδες PHP, που σημαίνει ότι όλες οι συναρτήσεις PHP μπορούν πλέον να χρησιμοποιηθούν σε σελίδες με επέκταση HTML. Εάν δεν έχετε πρόσβαση στο αρχείο .htaccess, τότε μπορείτε να γράψετε μια επιστολή στην εταιρεία φιλοξενίας και να ζητήσετε ευγενικά από τους διαχειριστές να εγγραφούν στο Διαμορφώσεις Apache(httpd.conf) την απαιτούμενη τιμή για τον ιστότοπο.

Παρεμπιπτόντως, εάν πριν από αυτό ο ιστότοπος χρησιμοποιούσε το SSI ως εξής:

τότε στη νέα κατάσταση PHP αυτός ο κώδικας πρέπει να αντικατασταθεί με:

Λοιπόν, αυτό είναι όλο, νομίζω ότι μία από τις παραπάνω μεθόδους θα βοηθήσει.

Η PHP είναι μια ενσωματωμένη γλώσσα προγραμματισμού από την πλευρά του διακομιστή. Μεγάλο μέρος της σύνταξής του είναι δανεισμένο από C, Java και Perl. Και προστέθηκαν επίσης μερικά μοναδικά χαρακτηριστικά μόνο για Συναρτήσεις PHP. Ο κύριος σκοπός αυτής της γλώσσας είναι η δημιουργία σελίδων HTML PHP που δημιουργούνται δυναμικά.

PHP σε HTML

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

Ο κώδικας PHP περιλαμβάνεται σε σελίδες HTML χρησιμοποιώντας ειδικές ετικέτες. Όταν ένας χρήστης ανοίγει μια σελίδα, ο διακομιστής επεξεργάζεται τον κώδικα PHP και στη συνέχεια στέλνει το αποτέλεσμα της επεξεργασίας (όχι το Κώδικας PHP) στο πρόγραμμα περιήγησης.

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

Γεια σας σήμερα.

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

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

Πιο προηγμένες μέθοδοι:

  • Στοιχείο μενού

και το αποτέλεσμα:

PHP σε HTML χρησιμοποιώντας short_open_tag

Εάν πρέπει να κάνετε τον κώδικά σας όσο το δυνατόν πιο σύντομο πριν εισαγάγετε HTML στην PHP, μπορείτε να χρησιμοποιήσετε short_tags. Ως αποτέλεσμα, δεν θα χρειαστεί να εισέλθετεσύντομες_ετικέτες" Με " Μακριά από" επί " Επί". Αν και οι περισσότεροι διακομιστές έχουν ήδη ενεργοποιημένη αυτήν την επιλογή, είναι πάντα καλύτερο να το ελέγχετε χειροκίνητα. Ένα πρόβλημα που μπορεί να προκύψει κατά τη χρήση σύντομων ετικετών είναι μια διένεξη κατά τη χρήση XML. Σε έκφραση σύνταξης XML

PHP σε HTML χρησιμοποιώντας short__tag

Γεια σας, σήμερα είναι.

Λάβετε υπόψη ότι εάν θέλετε να δημιουργήσετε έναν ιστότοπο που να είναι συμβατός με όσο το δυνατόν περισσότερες πλατφόρμες, δεν θα πρέπει να βασίζεστε σε short_tags κατά την εισαγωγή της PHP σε HTML.

HTML σε PHP με χρήση echo

Ένας άλλος τρόπος για να ενσωματώσετε την HTML σε ένα αρχείο PHP είναι η εντολή echo:.

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

PHP σε HTML - Επεκτάσεις αρχείων

Για τυπικό διαμορφωμένο διακομιστή web:

AddHandler cgi-script .html .htm

Για διακομιστή web που εκτελεί το FastCGI:

AddHandler fcgid-script .html .htm

HTML σε PHP

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

Χρήση HTML στην PHP:

Προσωπικές πληροφορίες

Όνομα:
Επίθετο:
"; ?>

Η εισαγωγή της PHP σε HTML με αυτόν τον τρόπο σας επιτρέπει να χρησιμοποιείτε πολύ λιγότερο κώδικα. Εδώ χρησιμοποιούμε το $PHP_SELF καθολικά, το οποίο επιτρέπει τις τιμές πεδίων που καθορίζονται κάτω από αυτά να χρησιμοποιούνται στο ίδιο αρχείο. Συνήθως, δημιουργούνται δύο αρχεία για τέτοιες φόρμες: το πρώτο είναι η ίδια η φόρμα HTML και το δεύτερο είναι το αρχείο PHP που εκτελεί την επεξεργασία.

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

Αυτή η δημοσίευση είναι μετάφραση του άρθρου «PHP σε HTML», που εκπονήθηκε από τη φιλική ομάδα του έργου

>

Php για αρχάριους

Σε αυτή τη σελίδα θα προσπαθήσουμε να εξηγήσουμε τη λογική της κατασκευής μιας δυναμικής ιστοσελίδας. Το Php είναι ένα σενάριο που εκτελείται από διακομιστή. Τι σημαίνει αυτό? Ο διακομιστής έχει εγκατεστημένο έναν ειδικό διερμηνέα που κατανοεί ορισμένες γλωσσικές κατασκευές. Το ίδιο το αρχείο php, το διαβάζει γραμμή προς γραμμή, σαν να το τρέχει από πάνω προς τα κάτω. Αν βρει, για παράδειγμα, τη λέξη έξοδος, μετά σταματά και δεν διαβάζει τίποτα περαιτέρω, αλλά εκτελεί αυτό που βρήκε πριν από αυτή τη λέξη, για παράδειγμα Τυπώνω"Εξαιρετική!"Θα εκτυπωθεί υπέροχα!

Τυπώνω"Εξαιρετική!";
έξοδος ;
?>

Αυτό είναι το απλούστερο αρχείο php, αλλά στην πραγματικότητα, στην πράξη πρέπει να αντιμετωπίσετε ένα πολύπλοκο αρχείο php. Υπάρχουν πολλές σελίδες στον ιστότοπο, αυτή τη στιγμή έχουμε 24 χιλιάδες, θα έπρεπε να γράψουμε τον ίδιο αριθμό αρχείων php ή απλώς αρχεία html. Όμως, η php σας επιτρέπει να τα κάνετε όλα αυτά σε ένα εκτελέσιμο αρχείο. Δηλαδή, πρέπει να οργανώσουμε συνδέσμους σε αυτό το ίδιο το αρχείο όπως, εάν αυτό - κάντε εκείνο, αν αυτό - κάντε εκείνο. Το Php σάς επιτρέπει να οργανώνετε πολύ καλά τους συνδέσμους. Το γενικό σχήμα είναι:

Βλέπετε στο σενάριο ότι αρέσουν τα διαμερίσματα
αν τότε)
τότε το κάνουμε
}

Τότε τι έγινε αν εκπληρωνόταν η πρώτη προϋπόθεση, δηλαδή $uslovie 1== "ναι", τότε εκτελούμε το σενάριο σε αγκύλες ( ) που σχετίζονται με αυτήν την ενότητα του σεναρίου, τότε σε αυτήν την ενότητα υπάρχει έξοδος- εδώ τελειώνει το πρόγραμμα. Δηλαδή, με τη βοήθεια διαμερισμάτων μπορούμε να χωρίσουμε ένα αρχείο php στα συστατικά μέρη του. Και ποια είναι η προϋπόθεση - if($uslovie == "ναι")??? Αυτό το δίκτυο είναι ο ίδιος σύνδεσμος, σε αυτήν την περίπτωση, κάτι θα εκτελεστεί εάν η μεταβλητή $uslovieθα είναι ίσοι Ναί.

Ας ονομάσουμε το αρχείο all.php. Για να οργανώσετε συνδέσμους σε αυτό στη γραμμή εντολών, απλώς προσθέστε all.php?uslovie=ναι. Εάν δείτε ένα ερωτηματικό στη γραμμή εντολών, τότε αυτός είναι ο σύνδεσμος σε αυτήν την περίπτωση, $uslovie == "ναι". Στη συνέχεια θα δημιουργήσουμε ένα αρχείο html στο οποίο θα γράψουμε συνδέσμους προς το εκτελέσιμο σενάριό μας.



ΝΕΑ ΣΕΛΙΔΑ


uslovie1=yes" >Πρώτος σύνδεσμος
uslovie2=yes" >Δεύτερη σύνδεση

Βλέπετε δύο συνδέσμους. Εάν κάνετε κλικ στους συνδέσμους, το αρχείο θα εκτελεστεί all.php, και στην πρώτη περίπτωση θα ειπωθεί στο σενάριο ότι η μεταβλητή $uslovie 1==ναικαι στη δεύτερη περίπτωση, $uslovie 2==ναι. Από τον πρώτο σύνδεσμο το πρώτο διαμέρισμα θα ολοκληρωθείκαι το πρόγραμμα θα σταματήσει, χρησιμοποιώντας τον δεύτερο σύνδεσμο το πρόγραμμα θα τρέξει μέσα από το πρώτο διαμέρισμα και κάτι από το δεύτερο διαμέρισμα θα εκπληρωθεί(βλέπε παραπάνω). Λάβετε υπόψη ότι το σύμβολο του δολαρίου δεν είναι γραμμένο στους συνδέσμους· το πρόγραμμα τις κάνει μεταβλητές όταν τις μεταβιβάζει στο σενάριο, δηλαδή όταν τις μεταβιβάζει στη γραμμή εντολών.

Τώρα ξέρουμε πώς να οργανώνουμε συνδέσμους σε ένα αρχείο php, πώς να το χωρίζουμε σε ενότητες και πώς να οργανώνουμε συνδέσμους σε κείμενο html προς το αρχείο μας. Όμως, υπάρχει και κάτι ακόμα... Το γεγονός είναι ότι αν οργανώσεις τον ιστότοπο με αυτόν τον τρόπο, τότε στην αρχική του μορφή, όταν δεν υπάρχουν πολλοί σύνδεσμοι, δεν θα δεις προβλήματα. Ας υποθέσουμε ότι υπάρχουν 10 διαμερίσματα, όλα θα χωρέσουν αθόρυβα σε ένα αρχείο. Αλλά αν υπάρχουν πολλοί σύνδεσμοι, για παράδειγμα έχουμε 24.000 σελίδες, τότε καταρχήν είναι αδύνατο να χωρέσουμε όλες τις ενότητες σε ένα αρχείο php. Εσείς οι ίδιοι θα βασανιστείτε αναζητώντας αυτό ή εκείνο το διαμέρισμα σε ένα αρχείο για, για παράδειγμα, να το αλλάξετε. Επιπλέον, το αρχείο θα είναι πολύ μεγάλο σε μέγεθος, το all.php μας θα καταλάμβανε 1MB. Επιπλέον, πρέπει να καταλάβετε ένα ακόμη πράγμα: σε πολλούς διακομιστές υπάρχει ένα όριο στο μέγεθος των εκτελέσιμων αρχείων (για παράδειγμα, 50 Kb), εάν ξεπεραστεί, ένα τέτοιο αρχείο αγνοείται και δεν εκτελείται. Σε σχέση με αυτούς τους υπολογισμούς, μειώσαμε το μέγεθος του κύριου αρχείου στα 8Kb, αν και φέρει φόρτο εκτέλεσης 1MB. Πώς να το κάνετε αυτό; Το Php παρέχει μια εξαιρετική ευκαιρία να χωρίσετε ένα αρχείο php σε κομμάτια χρησιμοποιώντας την εντολή περιλαμβάνεται....

Τώρα γίνεται σαφές πώς μειώσαμε το κύριο αρχείο μας στα 8 Kb, επειδή όλα τα άλλα αρχεία που περιλαμβάνονται έχουν συνολικό μέγεθος 1 MB και τα κρύψαμε σε ξεχωριστό φάκελο και τα συνδέουμε όπως απαιτείται, δηλαδή ανάλογα με τους συνδέσμους στην εντολή γραμμή. Η εντολή include συνδέει αρχεία σαν να ήταν γραμμένα στο κύριο σενάριο, επομένως, εάν στα εισαγόμενα αρχεία έχετε πρόσβαση σε βάσεις δεδομένων ή αρχεία html, τότε η καταμέτρηση θα πρέπει να πραγματοποιηθεί ακριβώς από το κύριο αρχείο, στην περίπτωσή μας all.php. Για παράδειγμα, υπάρχει ένας φάκελος html, περιέχει ένα αρχείο ένα.htmπώς να το εκτυπώσετε. Τότε το αρχείο one.php μοιάζει με αυτό:

περιλαμβάνω"html/one.htm";
Τυπώνω
έξοδος ;
?>

Εκτυπώσαμε τα περιεχόμενα ένα.htm, συν τυπωμένο Αυτή είναι η πρώτη ενότητα του προγράμματος, και σταμάτησε το πρόγραμμα. Δηλαδή, με βάση τη θεωρία html, θα έπρεπε να συμπεριλάβουμε το αρχείο ένα.htmΕτσι: περιλαμβάνουν "../html/one.htm", αφού ο φάκελος htmlβρίσκεται ένα επίπεδο πάνω από το αρχείο one.php. Αλλά στην php αυτό δεν συμβαίνει, η εντολή include απλώς προσθέτει κώδικα στο σενάριο και γίνεται αναπόσπαστο μέρος του, πράγμα που σημαίνει ότι όλοι οι σύνδεσμοι μετρώνται σε σχέση με το κύριο αρχείο, και όχι οι συμπεριλαμβανόμενοι.



ΝΕΑ ΣΕΛΙΔΑ


uslovie1=yes" >Απλώς ο πρώτος σύνδεσμος
uslovie1=ναι& υποκρίνομαι=ναι" >
uslovie2=yes" >Μόλις δεύτερος σύνδεσμος
uslovie2=ναι& υποκρίνομαι=yes" >Δεύτερη σύνδεση, αλλά και act=yes

Στη συνέχεια, αρχείο php one.phpμετατρέψτε το σε αυτό:

αν($act == "ναι")(
περιλαμβάνω"html/one.htm";
έξοδος ;
}
Τυπώνω"Αυτή είναι η πρώτη ενότητα του προγράμματος"
έξοδος ;
?>

Εάν κάνατε κλικ στον σύνδεσμο uslovie1=yes" >Ο σύνδεσμος Simply First, θα εκτυπωθεί Αυτή είναι η πρώτη ενότητα του προγράμματος,αν κάνατε κλικ στον σύνδεσμο uslovie1=ναι& υποκρίνομαι=yes" >Ο πρώτος σύνδεσμος, αλλά και το act=yes, τότε θα εκτυπωθούν τα περιεχόμενα του αρχείου html/one.htm, και το πρόγραμμα θα σταματήσει.

403 KB

Κατεβάστε το αρχείο, είναι φτιαγμένο με τέτοιο τρόπο που δεν χρειάζεται να γνωρίζετε Php, χρειάζεται μόνο να γνωρίζετε HTML.

Ναι.))

Θα ήταν πιο εύκολο για μένα να κάνω ένα αντίγραφο του index.php και να το μετονομάσω, για παράδειγμα, σε contact.php και μετά να αλλάξω το μέσο σε middle2 με νέο περιεχόμενο.

Βραστήρας είμαι λίγο php


Ακόμα δεν καταλαβαίνω.
Έχω μια ιστοσελίδα.
αρχείο ευρετηρίου στη ρίζα. Σε έναν άλλο φάκελο υπάρχουν αρχεία πάνω στο μεσαίο κουμπί για παράδειγμα.

Υπάρχει μενού. Θέλω να εμφανίζεται μια διαφορετική μέση όταν κάνετε κλικ σε ένα στοιχείο μενού.

Πώς να το κάνετε αυτό και πού να το βάλετε;;;

Απάντηση: Λοιπόν, όπου κι αν. Είναι πολύ απλό, πρόκειται για τη δημιουργία ενός σεναρίου μενού menus.html


κάτι χωρίς πίνακα $_GET ["uslovie"] ; τα παραδειγματα σου δεν μου κανουν

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

αν (isset($_GET )) ( για κάθε($_GET ως $key =>$val ) ( $$key =$val ; ) )

τότε μπορείτε να χρησιμοποιήσετε τα σενάρια μας χωρίς να χρησιμοποιήσετε $_GET [ "uslovie" ] , αλλά απλώς βάλτε $uslovie


Πολύ ενδιαφέρουσα πηγή έχετε..
Ευχαριστώ για τις πληροφορίες.

Απάντηση:


Έχετε υποσχεθεί εδώ και καιρό να εξετάσετε πώς δημιουργείται ένας ιστότοπος PHP. Γιατί δεν τηρήσατε την υπόσχεσή σας; Ίσως γράψετε ένα άρθρο για αυτό το θέμα (και αν χρησιμοποιείτε επίσης MySQL, τότε όλα θα πάνε καλά).

Απάντηση:


Πολύ ναι. Μόνο, εκεί είναι, αντί για too.htm μάλλον χρειάζεστε δύο.htm
Δεν είναι απαραίτητο, αλλά για να κρατάμε τα πράγματα σε τάξη))

Απάντηση:


Πείτε μου πού μπορώ να διαβάσω και να μάθω από έξω όλους τους τελεστές και τους κωδικούς PHP, για παράδειγμα: ηχώ , περιλαμβάνω , αλλού , αν , Τυπώνω , για κάθε , issetκ.λπ., τι σημαίνουν και τι εξυπηρετούν;

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


Mobilesfinks, ενώ ετοιμαζόμουν να επανεγκαταστήσω το php 4, είχε ήδη κυκλοφορήσει μια νέα έκδοση του ιστότοπου σε php 5. Και δεν υπήρχαν προβλήματα, όλα δούλευαν %tashus%

Απάντηση:


Γειά σου!

Πείτε μου πώς να αλλάξω τον ΤΙΤΛΟ στο επάνω μέρος του παραθύρου σε κάθε σελίδα: δηλαδή, " ΝΕΑ ΣΕΛΙΔΑ" ...

Για παράδειγμα, εάν ακολουθήσετε τον σύνδεσμο "1", τότε το παράθυρο θα πρέπει να ονομάζεται "Πρώτη ενότητα. Μαθηματικά" - δηλαδή, ο κώδικας HTML θα πρέπει να είναι Πρώτη ενότητα. Μαθηματικά...
Και αν ο σύνδεσμος είναι "2", για παράδειγμα, τότε το παράθυρο θα πρέπει να ονομάζεται "Δεύτερη Ενότητα. Γεωγραφία" - δηλαδή, ο κώδικας HTML θα πρέπει να είναι Δεύτερη ενότητα. Γεωγραφία...

Πώς μπορώ να το αλλάξω χρησιμοποιώντας PHP;

Απάντηση: html.html


Πρέπει να εγκαταστήσουμε το PHP4 για το Ντένβερ. Το σενάριο εγκατάστασης θα κάνει όλες τις αλλαγές από μόνο του.
Στη συνέχεια στον φάκελο που έχετε το αρχείο all.php που δημιουργείτε
ένα αρχείο που ονομάζεται ".htaccess" και προσθέστε μια γραμμή σε αυτό
Σελίδα: 1
Τρέχουσα σελίδα: 1 Σύνολο μηνυμάτων: 22

Πολλοί αναγνώστες σε οποιοδήποτε βιβλίο σχετικά με τους υπολογιστές προσπερνούν όλα όσα δεν έχουν άμεσο ενδιαφέρον και προχωρούν σε αυτό που πραγματικά χρειάζονται. θέλωξέρω. Προσωπικά, αυτό κάνω. Ωστόσο, δεν υπάρχει τίποτα κακό σε αυτό - σπάνια υπάρχουν τεχνικά βιβλία που πρέπει να διαβαστούν από εξώφυλλο σε εξώφυλλο. Ή ίσως αυτό κάνατε - παραλείψατε τα αρχικά οκτώ κεφάλαια και πήρατε αυτό το κεφάλαιο επειδή είχε τον πιο ενδιαφέροντα τίτλο; Και ποιος θέλει να χάνει χρόνο σε λεπτομέρειες όταν ένα άλλο έργο καίγεται στη δουλειά;

Ευτυχώς, μια τέτοια βιασύνη δεν θα σας εμποδίσει να καταλάβετε σωστά το υλικό στο δεύτερο μέρος του βιβλίου, το οποίο είναι αφιερωμένο στη χρήση της PHP για τη δημιουργία τοποθεσιών και την αλληλεπίδραση με τον Ιστό. Σε αυτό το κεφάλαιο, θα μάθετε πώς να τροποποιείτε εύκολα το περιεχόμενο των ιστοσελίδων και να περιηγείστε στον Ιστό χρησιμοποιώντας συνδέσμους και διάφορες τυπικές λειτουργίες. Το επόμενο κεφάλαιο θα συμπληρώσει το υλικό που παρουσιάζεται - εξετάζει λεπτομερώς τα μέσα αλληλεπίδρασης με τον χρήστη σε φόρμες HTML. Στο Κεφάλαιο 11 περιγράφεται η οργάνωση της διεπαφής με τις βάσεις δεδομένων. Τα υπόλοιπα κεφάλαια του δεύτερου μέρους συζητούν μη τετριμμένες πτυχές του προγραμματισμού Ιστού στην PHP.

Ωστόσο, πρέπει να θυμόμαστε ότι το υλικό στο Μέρος 1 Απόλυτα αναγκαίογια κανονική γνώση της PHP. Υποτίθεται ότι έχετε ήδη διαβάσει το Μέρος 1, επομένως τα παραδείγματα θα χρησιμοποιήσουν πολλές από τις έννοιες που περιγράφηκαν προηγουμένως. Οπότε, αν προσπερνάτε μέρος του βιβλίου, θα πρέπει να επιστρέφετε κατά διαστήματα στα προηγούμενα κεφάλαια και να προλαβαίνετε.

Απλοί σύνδεσμοι

<а href = "date.php">

$link = "date.php";

Τυπώνω "<а href = \"$link\">Δείτε τη σημερινή ημερομηνία
\n"

Πιθανότατα αναρωτιέστε γιατί υπάρχει μια ανάστροφη κάθετο (\) πριν από τα εισαγωγικά (") στον κώδικα συνδέσμου; Το γεγονός είναι ότι τα εισαγωγικά στην PHP είναι ειδικοί χαρακτήρες και χρησιμοποιούνται ως οριοθέτες γραμμής. Επομένως, τα εισαγωγικά είναι κυριολεκτικά σε συμβολοσειρές πρέπει να θωρακίζονται .

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

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

// Δημιουργία μιας σειράς ενοτήτων

$contents - array("tutorials", "articles", "scripts", "contact");

// Επαναλάβετε και εμφανίστε διαδοχικά κάθε στοιχείο του πίνακα

για ($i = 0; $i< sizeof($contents; $i++)

Τυπώνω " ".$contents[$i]."
\n";

// - ειδική ονομασία για σημείο δείκτη endfor;

Στοιχεία αρχείων (πρότυπα)

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

Συνήθως, τα κοινά κομμάτια περιεχομένου/κώδικας (δηλαδή πρότυπα) αποθηκεύονται σε ξεχωριστά αρχεία. Κατά τη δημιουργία ενός εγγράφου Ιστού, απλώς «συμπεριλαμβάνετε» αυτά τα αρχεία στα κατάλληλα σημεία της σελίδας. Στην PHP υπάρχουν δύο συναρτήσεις για αυτό: include() και require().

περιλαμβάνουν() και απαιτούν()

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

εμπειρία προγραμματισμού σε άλλες γλώσσες (όπως C, C++ ή Java) και είναι εξοικειωμένοι με την έννοια των βιβλιοθηκών συναρτήσεων και τη χρήση τους σε προγράμματα για την επέκταση της λειτουργικότητας.

Η συμπερίληψη ενός ή περισσότερων αρχείων σε ένα σενάριο γίνεται χρησιμοποιώντας τις τυπικές συναρτήσεις PHP require() και include(). Όπως θα φανεί στην επόμενη ενότητα, κάθε μία από αυτές τις λειτουργίες εφαρμόζεται σε μια συγκεκριμένη περίπτωση.

Λειτουργίες

Υπάρχουν τέσσερις λειτουργίες στην PHP για τη συμπερίληψη αρχείων σε σενάρια PHP:

  • περιλαμβάνω();
  • include_once();
  • απαιτώ();
  • require_once().

Παρά την ομοιότητα των ονομάτων, αυτές οι συναρτήσεις επιλύουν διαφορετικά προβλήματα.

Η συνάρτηση include() περιλαμβάνει τα περιεχόμενα ενός αρχείου στο σενάριο. Η σύνταξη της συνάρτησης include() είναι:

περιλαμβάνει(αρχείο αρχείου)

Η συνάρτηση include() έχει ένα ενδιαφέρον χαρακτηριστικό - μπορεί να εκτελεστεί υπό όρους. Για παράδειγμα, εάν μια κλήση συνάρτησης περιλαμβάνεται σε ένα μπλοκ εντολών if. τότε το αρχείο περιλαμβάνεται στο πρόγραμμα μόνο αν ισχύει η συνθήκη i f. Εάν η συνάρτηση includeO χρησιμοποιείται σε μια εντολή υπό όρους, τότε αυτή πρέπεινα περικλείεται σε σγουρά σιδεράκια ή εναλλακτικούς οριοθέτες. Συγκρίνετε τις διαφορές στη σύνταξη μεταξύ των καταχωρίσεων 9.1 και 9.2.

Καταχώριση 9.1. Εσφαλμένη χρήση του include()

εάν (κάποια_υπό όρους)

include("text91a.txt"); αλλού

include("text91b.txt");

Καταχώριση 9.2. Σωστή χρήση του include()

αν (μερικοί_προϋποθέσεις):

include("text91a.txt");

include("text91b.txt");

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

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

εκτυπώστε "αυτό είναι ένα μη έγκυρο αρχείο συμπερίληψης"?

Η συνάρτηση include_once() κάνει το ίδιο με την include(), με μία εξαίρεση: πριν συμπεριλάβει ένα αρχείο στο πρόγραμμα, ελέγχει αν έχει ήδη συμπεριληφθεί. Εάν το αρχείο έχει ήδη συμπεριληφθεί, η κλήση include_once() αγνοείται και αν όχι, εμφανίζεται η τυπική συμπερίληψη αρχείου. Από όλες τις άλλες απόψεις, η include_once() δεν διαφέρει από την include(). Η σύνταξη της συνάρτησης include_once() είναι:

include_once(αρχείο αρχείου)

Γενικά, η συνάρτηση request() είναι παρόμοια με την include() - περιλαμβάνει επίσης το πρότυπο στο αρχείο στο οποίο βρίσκεται η κλήση require(). Η σύνταξη της συνάρτησης require() είναι:

απαιτείται (αρχείο)

Ωστόσο, υπάρχει μια σημαντική διαφορά μεταξύ των συναρτήσεων require() και include(). Το αρχείο που καθορίζεται από την require() περιλαμβάνεται στο σενάριο ανεξάρτητα από τη θέση της require() στο σενάριο. Για παράδειγμα, εάν καλέσετε την requi re() σε ένα μπλοκ if, εάν η συνθήκη είναι false, το αρχείο θα εξακολουθεί να περιλαμβάνεται στο σενάριο!

Σε πολλές περιπτώσεις, είναι βολικό να δημιουργήσετε ένα αρχείο με μεταβλητές και άλλες πληροφορίες που χρησιμοποιούνται σε ολόκληρο τον ιστότοπο και στη συνέχεια να το συμπεριλάβετε όπως απαιτείται. Αν και το όνομα αυτού του αρχείου είναι αυθαίρετο, συνήθως το αποκαλώ init.tpl (συντομογραφία του "initializaion.template"). Η λίστα 9.3 δείχνει πώς μοιάζει ένα πολύ απλό αρχείο init.tpl. Στη Λίστα 9.4, τα περιεχόμενα του init.tpl περιλαμβάνονται στο σενάριο με την εντολή require().

Καταχώριση 9.3. Παράδειγμα αρχείου προετοιμασίας

$site_title = "PHP Συνταγές";!}

$contact_email = " [email προστατευμένο]";

$contact_name = "WJ Gilmore";

Καταχώριση 9.4. Χρησιμοποιώντας το αρχείο init.tpl

<? print $site_title; ?>

\"mai1 to:$contact_email\">$contact_name."; ?>

Η μετάδοση μιας διεύθυνσης URL κατά την κλήση της require() επιτρέπεται μόνο εάν είναι ενεργοποιημένη η λειτουργία "URL fopen wrappers" (αυτή η λειτουργία είναι ενεργοποιημένη από προεπιλογή).

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

Η συνάρτηση require_once() διασφαλίζει ότι το αρχείο περιλαμβάνεται στο σενάριο μόνο μία φορά. Μόλις κληθεί η requi re_once(), αγνοούνται όλες οι περαιτέρω προσπάθειες συμπερίληψης του ίδιου αρχείου. Η σύνταξη της συνάρτησης require_once() είναι:

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

Εξαρτήματα Κτιρίου

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

Επικεφαλίδα

Ένα αρχείο κεφαλίδας (όπως αυτό στη Λίστα 9.5) εμφανίζεται σχεδόν σε κάθε έναν από τους ιστοτόπους μου με δυνατότητα PHP. Αυτό το αρχείο περιέχει

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

Καταχώριση 9.5. Παράδειγμα αρχείου κεφαλίδας

// Αρχείο: header.tpl

// Σκοπός: αρχείο κεφαλίδας για τον ιστότοπο PhpRecipes.

$site_name = "PHPRecipes";

$site_email=" [email προστατευμένο]";

$site_path = "http://localhost/phprecipes";

<? print $site_name; ?>

// Εκτύπωση τρέχουσας ημερομηνίας και ώρας

ημερομηνία εκτύπωσης ("F d, h:i a");

Πολύ συχνά, η πρόσβαση των επισκεπτών στα αρχεία που περιλαμβάνονται είναι περιορισμένη, ειδικά εάν αυτά τα αρχεία περιέχουν ευαίσθητες πληροφορίες (για παράδειγμα, κωδικούς πρόσβασης). Στο Apache, μπορείτε να αποτρέψετε την προβολή ορισμένων αρχείων επεξεργάζοντας τα αρχεία http.conf ή htaccess. Το ακόλουθο παράδειγμα δείχνει πώς μπορείτε να αποτρέψετε την προβολή όλων των αρχείων με επέκταση .tpl:

Παραγγελία επιτρέψτε, αρνηθείτε

Να επιτρέπεται από 127.0.0.1

Τα ζητήματα ασφάλειας της PHP και του ιστότοπου καλύπτονται λεπτομερώς στο Κεφάλαιο 16.

Τρέξιμος τίτλος

Το υποσέλιδο είναι συνήθως οι πληροφορίες που βρίσκονται στο κάτω μέρος των σελίδων ενός ιστότοπου - στοιχεία επικοινωνίας, σύνδεσμοι και πληροφορίες πνευματικών δικαιωμάτων. Αυτές οι πληροφορίες μπορούν να τοποθετηθούν σε ξεχωριστό αρχείο και να συμπεριληφθούν ως πρότυπο με τον ίδιο τρόπο όπως μια κεφαλίδα. Ας πούμε ότι με την έναρξη του νέου έτους πρέπει να αλλάξετε τις πληροφορίες πνευματικών δικαιωμάτων και να τις φέρετε στη φόρμα «Copyright © 2000-2001». Υπάρχουν δύο επιλογές: Περάστε την παραμονή των Χριστουγέννων ξέφρενα επεξεργάζεστε εκατοντάδες στατικές σελίδες. ήχρησιμοποιήστε ένα πρότυπο όπως αυτό που εμφανίζεται στην Καταχώριση 9.6. Μια απλή αλλαγή και μπορείτε να επιστρέψετε στη ρουτίνα των διακοπών σας.

Καταχώριση 9.6.Παράδειγμα αρχείου υποσέλιδου (footer.tpl)

Επικοινωνία |

το απόρρητό σας

Σημειώστε τη χρήση της καθολικής μεταβλητής $site_email στο αρχείο υποσέλιδου. Η τιμή αυτής της μεταβλητής είναι σε ολόκληρη τη σελίδα και υποθέτουμε ότι τα αρχεία header.tpl και footer.tpl θα συμπεριληφθούν σε μία τελική σελίδα. Παρατηρήστε επίσης την παρουσία του $site_path στο σύνδεσμο Privacy. Περιλαμβάνω πάντα την πλήρη διαδρομή προς όλους τους συνδέσμους στα πρότυπά μου - εάν η διεύθυνση URL του συνδέσμου ήταν απλώς privacy.php, το αρχείο υποσέλιδου θα κωδικοποιούνταν σε έναν συγκεκριμένο κατάλογο.

Κύριο μέρος

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

Λίστα 9.7. Παράδειγμα του κύριου μέρους της σελίδας (index_body.tpl)

/tutorials.php">tutorials

άρθρα

σενάρια

contact

Καλώς ήρθατε στο PHPRecipes. το σημείο εκκίνησης για σενάρια PHP, σεμινάρια,

και πληροφορίες για γκουρμέ μαγειρική!

Όλα μαζί: κεφαλίδα, υποσέλιδο και σώμα

Ίσως η διάθεσή μου να συνοψίζεται καλύτερα από μια φράση του συνταγματάρχη "Hannibal" Smith (George Peppard) από τη διάσημη τηλεοπτική σειρά "The A-Team": "Μου αρέσει όταν τα πράγματα μπαίνουν στη θέση τους". Βιώνω κάτι παρόμοιο όπου διαφορετικά πρότυπα ενώνονται για να σχηματίσουν ένα πλήρες έγγραφο ιστού. Συνδυάζοντας τρεις ενότητες εγγράφου: header.tpl, index_body.tpl και footer.tpl, μπορείτε να δημιουργήσετε γρήγορα μια απλή σελίδα όπως αυτή που εμφανίζεται στη Λίστα 9.8.

Καταχώριση 9.8. Δημιουργία σελίδας index.php συμπεριλαμβάνοντας πολλά αρχεία

// Αρχείο: index.php

// Προορισμός: αρχική σελίδα PHPRecipes

// Εκτύπωση τίτλου

include("header.tpl");

// Έξοδος του κύριου μέρους

include("index_body.tpl");

// Εμφάνιση του υποσέλιδου

include("footer.tpl");

Πώς, λοιπόν? Τρεις απλές εντολές και έχετε μια ολοκληρωμένη σελίδα. Το κείμενο της τελικής σελίδας εμφανίζεται στη Λίστα 9.9.

Λίστα 9.9. Ενσωματωμένη σελίδα HTML στη Λίστα 9.8 (index.php)

PHPRecipes

23 Αυγούστου, 03:17 μ.μ

σεμινάρια

άρθρα

σενάρια

Επικοινωνία

Καλώς ήρθατε στο PHPRecipes, το σημείο εκκίνησης για σενάρια PHP, σεμινάρια,

και γκουρμέ συμβουλές και συνταγές μαγειρικής!

Πνευματικά δικαιώματα 2000 PHPRecipes. Ολα τα δικαιώματα διατηρούνται.

Επικοινωνία |

το απόρρητό σας

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

Ρύζι. 9.1. Εμφάνιση της ενσωματωμένης σελίδας στη Λίστα 9.8

Βελτιστοποίηση προτύπων

Στη δεύτερη (κατά τη γνώμη μου, προτιμότερη) επιλογή, τα πρότυπα σχεδιάζονται ως λειτουργίες που βρίσκονται σε ξεχωριστό αρχείο. Αυτό παρέχει πρόσθετη δομή στα πρότυπά σας. Ονομάζω αυτό το αρχείο αρχείο προετοιμασίας και αποθηκεύω άλλες χρήσιμες πληροφορίες σε αυτό. Δεδομένου ότι έχουμε ήδη εξετάσει σχετικά μεγάλα παραδείγματα κεφαλίδας και υποσέλιδου, οι καταχωρίσεις 9.10 και 9.11 συντομεύτηκαν ελαφρώς για να επεξηγήσουν τη νέα ιδέα.

Καταχώριση 9.10. Βελτιστοποιημένο πρότυπο ιστότοπου (site_init.tpl)

// Αρχείο: site_init.tpl

// Σκοπός: Αρχείο προετοιμασίας PhpRecipes

$site_name = "PHPRecipes";

$site_email = " [email προστατευμένο]";

$site_path = "http://localhost/phprecipes/";

συνάρτηση show_header($site_name) (

<? print $site_name: ?>

Αυτή είναι η κεφαλίδα

συνάρτηση εμφάνιση υποσέλιδου()

Αυτό είναι το υποσέλιδο

Καταχώριση 9.11. Χρησιμοποιώντας ένα αρχείο προετοιμασίας

// Συμπερίληψη αρχείου προετοιμασίας

include("site_init.tpl");

// Εκτύπωση τίτλου

εμφάνιση κεφαλίδας($site_name);

// Περιεχόμενο σώματος Αυτές είναι ορισμένες πληροφορίες σώματος

// Εμφάνιση του υποσέλιδου Show_footer();

Έργο: δημιουργία σελίδων

Αν και οι περισσότεροι από τους ιστότοπους που έχω δημιουργήσει έχουν δημιουργήσει το περιεχόμενο της κύριας σελίδας με βάση τις πληροφορίες που διαβάζονται από μια βάση δεδομένων, υπάρχουν πάντα μερικές σελίδες που παραμένουν ουσιαστικά αμετάβλητες. Συγκεκριμένα, μπορούν να εμφανίσουν πληροφορίες σχετικά με την ομάδα ανάπτυξης, στοιχεία επικοινωνίας, διαφημίσεις κ.λπ. Συνήθως αποθηκεύω αυτές τις «στατικές» πληροφορίες σε ξεχωριστό φάκελο και χρησιμοποιώ ένα σενάριο PHP για να το φορτώσω όταν έρχεται ένα αίτημα. Φυσικά, έχετε μια ερώτηση - εάν πρόκειται για στατικές πληροφορίες, σε τι χρησιμεύει το σενάριο PHP; Γιατί δεν φορτώνετε κανονικές σελίδες HTML; Το πλεονέκτημα της PHP είναι ότι μπορείτε να χρησιμοποιήσετε πρότυπα και να εισάγετε στατικά αποσπάσματα όπως απαιτείται.

<а href = "/static.php?content=$content">Όνομα στατικής σελίδας

Ας ξεκινήσουμε δημιουργώντας στατικές σελίδες. Για λόγους απλότητας, θα περιοριστώ σε τρεις σελίδες που περιέχουν πληροφορίες τοποθεσίας (Λίστα 9.12), διαφήμιση (Λίστα 9.13) και στοιχεία επικοινωνίας (Λίστα 9.14).

Καταχώριση 9.12. Πληροφορίες σχετικά με τον ιστότοπο (about.html)

Σχετικά με το PHPRecipes

Ποιος προγραμματιστής δεν συνδυάζει όλο το βράδυ προγραμματισμό με γκουρμέ μπισκότα. Εδώ στο PHPRecipes. Δεν περνάει σχεδόν μια νύχτα χωρίς κάποιος από τους κωδικοποιητές μας να αναμιγνύει λίγο HTML με ένα νόστιμο πιάτο μανιτάρια Portobello ή ακόμα και φοντύ. Αποφασίσαμε λοιπόν να σας φέρουμε το καλύτερο από αυτό που αγαπάμε περισσότερο: PHP και φαγητό!

Σωστά, αναγνώστες. Σεμινάρια, σενάρια, σουφλέ και άλλα. 0nlyστο PHPRecipes.

Διαφημιστικές Πληροφορίες

Ανεξάρτητα από το αν έρχονται για να μάθουν τις πιο πρόσφατες τεχνικές PHP ή για να μάθουν πώς

για να ψήσετε κοτόπουλο, μπορείτε να στοιχηματίσετε ότι οι αναγνώστες μας είναι αυτοί που λαμβάνουν αποφάσεις. Είναι η Βιομηχανία

επαγγελματίες που λαμβάνουν αποφάσεις για το τι αγοράζει η εταιρεία τους.

Για διαφημιστικές πληροφορίες, επικοινωνήστε

">[email προστατευμένο].

Καταχώριση 9.14. Στοιχεία επικοινωνίας (contact.html)

Επικοινωνήστε μαζί μας

Έχετε μια συμβουλή κωδικοποίησης;

Γνωρίζετε το τέλειο topping για ζαχαρωτά γιαμ;

Ενημέρωσέ μας! Επικοινωνήστε με την ομάδα στο [email προστατευμένο].

Ας προχωρήσουμε στη δημιουργία της σελίδας static.php, η οποία εμφανίζει τις ζητούμενες στατικές πληροφορίες. Αυτό το αρχείο (βλ. Καταχώριση 9.15) περιλαμβάνει τα στοιχεία σελίδας του ιστότοπού μας και το αρχείο αρχικοποίησης site_init.tpl.

Καταχώριση 9.15. Γενική έξοδος στατικών σελίδων (static.php)

// Αρχείο: static.php

// Σκοπός: εμφάνιση στατικών σελίδων που ζητήθηκαν.

// ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αυτό προϋποθέτει ότι το αρχείο είναι "site_init.tpl" και αυτό είναι

// τα στατικά αρχεία βρίσκονται στον ίδιο κατάλογο.

// Οι συναρτήσεις και οι μεταβλητές φόρτωσης περιλαμβάνουν ("site_init.tpl"):

// Εμφάνιση της κεφαλίδας show_header($site_name);

// Εξαγωγή του ζητούμενου περιεχομένου περιλαμβάνει("$content.html"):

// Εμφάνιση του υποσέλιδου show footer();

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

<а href = "static.php?content=about">Στατικό Όνομα Σελίδας

Διαφημιστικές Πληροφορίες

Επικοινωνήστε μαζί μας

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

Αποτελέσματα

Σε αυτό το κεφάλαιο, εξοικειωθείτε με την κύρια εργασία για την οποία δημιουργήθηκε η PHP - η δυναμική δημιουργία ιστοσελίδων. Εξετάστηκαν τα ακόλουθα θέματα:

  • Επεξεργασία URL.
  • Δημιουργία δυναμικού περιεχομένου.
  • ένταξη και κατασκευή βασικών προτύπων.

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

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


Ο κόσμος των δωρεάν προγραμμάτων και χρήσιμες συμβουλές
2024 whatsappss.ru