DOUG LLOYD: Έτσι σε μας βίντεο σε PHP σύνταξη, μιλήσαμε πολύ για το πώς PHP μπορεί να χρησιμοποιηθεί στη γραμμή εντολών για την εκτέλεση προγραμμάτων κατά τρόπο που να είμαστε αρκετά εξοικειωμένοι με από C. Αλλά όπως ανέφερα επίσης σε αυτό το βίντεο, PHP αναπτύχθηκε αρχικά για να εφαρμογή web προγραμματισμό, ιστοσελίδες. Και έτσι σε αυτό το βίντεο είμαστε Θα μιλήσουμε για το πώς μπορούμε χρησιμοποιήσετε το PHP στο πλαίσιο ανάπτυξης ιστοσελίδων. Γνωρίζουμε, ήδη, από την βίντεο μας στο HTML, ότι οι δικτυακοί τόποι είναι χτισμένα από ένα σύνολο από ετικέτες HTML ότι σημασιολογικά ορίζουν η δομή μιας ιστοσελίδας. Αλλά ιστοσελίδες που είναι χτισμένο με καθαρά HTML υποφέρουν από ένα πολύ, πολύ σοβαρός περιορισμός. Και για να απεικονίσουν αυτόν τον περιορισμό, Ας εξετάσουμε τα ακόλουθα. Έτσι τώρα θέλω να οικοδομήσουμε μια ιστοσελίδα ότι, κάθε φορά που ο χρήστης επισκέπτεται αυτήν, μου δίνει την τρέχουσα φορά στο Cambridge, Mass., εμφανίζοντας το στην τελευταία λεπτά. Αν ήμουν κάνει αυτό τώρα, Θα ήθελα να πω κάτι τέτοιο. Τρέχουσα ώρα σε Cambridge-- έτσι έχω Ετικετών HTML και το κεφάλι, ετικέτες τίτλου, σώμα tags-- την τρέχουσα φορά στο Cambridge είναι 14:08, εκτύπωση στρατιωτική ώρα. Τι θα συμβεί αν είναι τώρα 14:09, 14:09; Λοιπόν μέχρι στιγμής, με την HTML, έχω για να πάει και να το αλλάξετε σε 14:09. Και στη συνέχεια, ένα λεπτό αργότερα, Έχω να το αλλάξετε ξανά. Και στη συνέχεια, ένα λεπτό αργότερα, Έχω να το αλλάξετε ξανά. Και όπως μπορείτε να φανταστείτε, αυτό είναι ίσως η χειρότερη δουλειά ποτέ. Είσαι το webmaster για μια ιστοσελίδα, και κάθε λεπτό, 24 ώρες την ημέρα, θα πρέπει να ενημερώσετε την τρέχουσα ώρα χειροκίνητα το άνοιγμα και την αλλαγή time.html ακριβώς αυτό απόσπασμα του κώδικα για να πούμε το τρέχουσα ώρα σε ώρες και λεπτά. Αυτό πιθανώς δεν είναι πολύ καλή χρήση των πόρων μας, τόσο των ανθρώπων όσο και υπολογιστικά. Δικτυακοί τόποι που είναι όλα HTML είναι εντελώς στατική. Ο μόνος τρόπος που μπορείτε να ενημερώσετε περιεχόμενο, όπως μόλις είδαμε, είναι να ανοίξει το χέρι εκείνων πηγή αρχεία, να τα επεξεργαστείτε και να τα αποθηκεύσετε. Και στη συνέχεια, όταν ο χρήστης Η σελίδα ανανεώνεται, ή επισκέπτεται τη σελίδα για την πρώτη ώρα, θα πάρουν το πιο πρόσφατο περιεχόμενο. Αλλά μόνο και μόνο επειδή έχουμε το χέρι άλλαξε. Αν αρχίσουμε να ανακατεύουμε λίγο PHP εκεί, Κωδικός μας μπορούν να πάρουν μια πολύ πιο ευέλικτη. Και μπορούμε να έχουμε έναν τρόπο για τις σελίδες μας να είναι δυναμική, ή να ενημερώσετε τον εαυτό τους, χωρίς να απαιτείται η κακή μας webmaster στο προηγούμενο παράδειγμα να είναι χειροκίνητη ενημέρωση πράγματα. Μπορούν να το κάνουν αυτόματα. Δεν έχουμε να παρέμβει. Μπορούμε να πάρετε κάποια ύπνο. Ποια είναι πιθανώς ένα καλό πράγμα, αν κάνετε πολλά web προγραμματισμό. Έτσι, σε CS50 IDE, θα τρέχει ένα web server που ονομάζεται Apache. Είναι ένα πολύ συχνά χρησιμοποιείται, ανοικτού λογισμικού σύστημα web server. Αυτό το σύστημα έχει την ικανότητα να ερμηνεύσει PHP, η οποία πρόκειται να είναι χρήσιμο εάν θέλετε να κάνετε κάποια προγραμματισμού PHP. Και σε CS50 IDE, έχουμε μια εντολή για να κάνουν αυτό το πολύ εύκολο να το κάνουμε, apache50 ξεκινήσει. Και στη συνέχεια, ότι το κάθετο μονοπάτι, κάθετο προς, κάθετος dir, αυτό είναι μόνο ένα πραγματικά κοινό τρόπο δείχνει τι έχετε ορίσει εδώ Είναι μια διαδρομή προς μια συγκεκριμένη καταλόγου που θέλουν να είναι η ρίζα περιοχή, ή η κεντρική σελίδα, ή το φάκελο από τον οποίο τον web server σας θα αρχίσουν να εξετάσει τα αρχεία και να εξυπηρετήσει τους επάνω στους πελάτες που θα το ζητήσουν. Ας σκάσει πάνω σε CS50 IDE, ακριβώς για να σας δείξω, πραγματικά γρήγορα, πώς αυτό λειτουργεί. Έτσι, εδώ στο CS50 IDE, είμαι σε μια κατάλογο που ονομάζεται Εβδομάδα Zero Nine. Και έχω two-- έχω εκτελείται μία εντολή LS μόνο παραπάνω για να σας δείξω ότι έχω δύο καταλόγους εδώ, PHP, που είναι το σύνολο των αρχείων που χρησιμοποιούνται σε το βίντεο σύνταξη της PHP, και στη συνέχεια PHP-web, που είναι το σύνολο των αρχείων που έχω Θα ήθελα να χρησιμοποιήσω σε αυτό το βίντεο. Και εγώ θα ήθελα να ξεκινήσω ένα παράδειγμα του web server με τα περιεχόμενα του φακέλου PHP-web όπως τα αρχεία που σερβίρονται. Λοιπόν, τι θα πάω να κάνω; Θα πάω να πληκτρολογήσετε apache50 χώρο ξεκινήσει, χώρος PHP, παύλα ιστοσελίδων. Αυτή είναι η διαδρομή προς τον κατάλογο από εκεί που είμαι σήμερα. Τότε πατήστε Enter. Δεν πρόκειται να κάνουμε λίγο τα πράγματα εδώ. Και μετά πάει να πει, Apache ξεκίνησε με επιτυχία. Η ιστοσελίδα σας είναι τώρα διαθέσιμη και at-- Στη συνέχεια υπάρχει το URL για την ιστοσελίδα. Λοιπόν, τι θα πάω να κάνω; Πάω να αντιγράψετε γρήγορα αυτό. Και Πάω να ανοίξει και up-- Θα σμίκρυνση λίγο here-- Πάω να ανοίξει μια νέα καρτέλα στο Chrome. Και Πάω να επισκεφθείτε αυτήν τη διεύθυνση URL. Πάω να πατήστε Enter. Είναι πρόκειται να φορτώσει. Και εγώ θα σμίκρυνση και πάλι. Και μπορούμε να δούμε εδώ είναι η περιεχόμενο της PHP μου κατάλογο Ιστού. Και τώρα τι βασικά συμβαίνει εδώ είναι, π.χ. μου CS50 IDE εκτίει ασφαλείας αυτών των αρχείων σε όποιον τις ζητά. Και κατά τη διάρκεια της Αυτό το βίντεο, θα το είδος της ρίξτε μια ματιά σε ένα σωρό από αυτά διαφορετικά αρχεία σε αυτό το πλαίσιο. Για να ελέγξετε ότι ο Apache σας διακομιστής λειτουργεί, η οποία είναι γενικά πρόκειται να είναι η περίπτωση σε CS50 IDE, αλλά αν το κάνετε αυτό, γενικότερα, και μπορείτε να ξεκινήσετε την οικοδόμηση δική σας ιστοσελίδα servers, υπάρχει μια πραγματικά κοινό είδος του αναλογικού σήματος σε, "hello world", που συνήθως είναι που χρησιμοποιούνται για την ανάπτυξη της PHP web. Ποια είναι να έχουμε ένα αρχείο που αποτελείται από μόλις αυτή code-- ένα PHP οριοθέτη που με την PHP πληροφορίες, παρενθέσεις, το ερωτηματικό στο μεταξύ. Το οποίο είναι ουσιαστικά μια ειδική PHP λειτουργία που σας λέει Τι έκδοση της PHP που χρησιμοποιείτε. Έτσι, σε CS50 IDE, έχω αυτό το αρχείο διαθέσιμο μόνο για να σας δείξω τι αυτό θα μοιάζουν. Έτσι κοιτάζω δείκτη μου από PHP παράδειγμα μου. Apache παράδειγμα μου τρέχει το περιεχόμενο της PHP-Web. Και έχω ένα αρχείο που ονομάζεται εδώ info.php. Πάω να κάντε κλικ σε αυτό, σμίκρυνση. Αυτό είναι αυτό που πρόκειται για να δούμε, λίγο πολύ. Αυτό ακριβώς μου λέει ότι Apache server μου δουλεύει. Και αυτό είναι, προφανώς, το έκδοση της PHP που τρέχω. Αυτό είναι ανάλογο μου "hello world". Έτσι ξέρω ότι τα πράγματα είναι λειτουργικά. Έτσι είμαστε καλοί να πάτε. Μπορούμε να προχωρήσουμε από εδώ. Ας επανεξετάσουμε ότι ώρα παράδειγμα ήμασταν μιλάμε για κακή με τον webmaster μας ο οποίος είχε να ενημερώσετε τη σελίδα συνεχώς. Αυτό θα μπορούσε να είναι μια λύση για το πώς Θα ήθελα να εφαρμόσουν τα πράγματα έτσι ώστε ο webmaster δεν το έκανε πρέπει να συνεχίσουμε την ενημέρωση του χρόνου. Θα ήταν ακριβώς το είδος του να συμβεί αυτόματα. Το κάτω κάτω, το HTML, είναι αρκετά παρόμοια, με μία εξαίρεση. Αλλά εδώ έχω κάποια PHP στην κορυφή. Έχω, προφανώς, αυτό που ονομάζεται date_default_timezone_set λειτουργία. Και δεν μιλάμε για όλα Αυτές οι λειτουργίες σε CS50, επειδή η PHP έχει πιθανώς δεκάδες χιλιάδες. Αυτό θα μπορούσε να είναι ένα κομμάτι από ένα υπερβολή, αλλά μπορεί να μην είναι. Είναι πήρε πολλές λειτουργίες ενσωματωμένες. Και έτσι αυτό είναι μια συνάρτηση προφανώς καθορίζει τη ζώνη ώρας μου ως ΗΠΑ / Ανατολική, που είναι η ζώνη ώρας που είμαι σήμερα στην κατασκευή αυτού του βίντεο. Τότε κάνω μια κλήση σε λειτουργία που ονομάζεται, ημερομηνία. Και, προφανώς, είμαι η αποθήκευση Του κάτι που ονομάζεται, το χρόνο. Λοιπόν, τι συμβαίνει εδώ; Λοιπόν, βασικά αυτό που είναι συμβαίνει είναι, κάνω μια κλήση σε κάποιο διακομιστή που πρόκειται να πες μου ποια είναι η ώρα τώρα είναι. Και είμαι μετατρέποντας σε μορφή ώρες, λεπτά, δευτερόλεπτα. Και ο λόγος είναι πρωτεύουσα H είναι αυτό πρόκειται να μου δώσει το χρόνο 24 ώρες, δεν 12 ώρα ώρα, το οποίο θα είναι πεζά h. Και είμαι απλώς αποθηκεύει ότι σε μια μεταβλητή που ονομάζεται, χρόνος. Έτσι ώστε δεύτερη γραμμή της PHP εκεί, η έκκληση για τη λειτουργία, ημερομηνία, είναι ακριβώς να πάρει κάποια συμβολοσειρά, η οποία είναι πρόκειται να μου δώσει την ημερομηνία, καθώς και η το χρόνο, και ένα σωρό άλλες πληροφορίες. Και το πρώτο επιχείρημα εκεί, ότι HIS, μόλις την εξαγωγή του σημαντικό μέρος ότι νοιάζομαι για αυτό το παράδειγμα, η οποία είναι η ώρα, λεπτό και δευτερόλεπτο. Έτσι, αυτό είναι το μόνο που συμβαίνει. Γι 'αυτό και αποθηκεύσει ότι σε μια μεταβλητή $ το χρόνο. Και στη συνέχεια κάτω κατά τη πολύ κάτω εκεί, έχουν αυτή στενογραφία για εκτύπωση την τρέχουσα ώρα. Έτσι, είμαι απλώς πρόκειται να εκτυπώσετε ποια είναι η τρέχουσα ώρα είναι. Έτσι, ας ρίξουμε μια ματιά σε αυτό CS50 IDE και να δούμε πώς είμαστε τώρα εξοικονομώντας ότι webmaster πολλά προβλήματα. Εντάξει, τόσο εδώ είμαι και πάλι πίσω στο ριζικό κατάλογο του Apache παράδειγμα μου. Και έχω ένα αρχείο που ονομάζεται εδώ time.php. Είμαι ακριβώς πρόκειται να κάνουν κλικ σε αυτό. Και εγώ θα μετακινηθείτε προς τα επάνω, γιατί είμαστε μεγεθύνεται αρκετά μακριά. Η τρέχουσα ώρα είναι 14:20:34. Έτσι κάνω αυτό ωρών, λεπτά, και δευτερόλεπτα. Και μπορώ να ανανεώσετε το σελίδα και να πάρετε νέο χρόνο. --41. Πάω να ανανεώσετε τη σελίδα και να πάρει νέα ώρα, 44, 46, 47. Έτσι, δεν είμαι σαφώς αλλάζοντας τον εαυτό μου τίποτα. Είμαι εδώ για να ανανεώσετε τη σελίδα. Έτσι, δεν μπορώ να είμαι εκεί πίσω την επεξεργασία του. Και σας υπόσχομαι, δεν το κάνω έχετε συμμάχους που επεξεργάζονται το αρχείο για λογαριασμό μου από την πλευρά της. Είμαι απλά με τη χρήση αυτής της λειτουργίας PHP, ώρα, για να δημιουργηθεί το χρόνο για μένα αυτομάτως. Έτσι ώστε, ακόμη και αν είμαι κοιμισμένος, και web server μου τρέχει, Ο χρήστης που επισκέπτεται ότι η σελίδα εξακολουθεί να είναι πρόκειται να πάρει ακριβώς την τρέχουσα ώρα. Έτσι, αυτό είναι πολύ καλό. Έχω κάνει το site μου πιο δυναμική με όχι πάρα πολύ κώδικα PHP. Ήταν μόλις δύο γραμμές κώδικα και, στη συνέχεια, ένα μικρό κομμάτι της δήλωσης εκτύπωσης. Και ήδη έχω ένα πολύ πιο δυναμική ιστοσελίδα από εκείνο το πρώτο παράδειγμα που είδαμε κατά την έναρξη του βίντεο. Έτσι, υπενθυμίζουν από το βίντεο για την σύνταξη της PHP ότι όταν η διερμηνέα PHP τρέχει το πρόγραμμά μας, αγνοεί τα πάντα ότι δεν είναι μέσα διαχωριστικά PHP, φτύσιμο. Σε αυτό το παράδειγμα, τι το πράγμα ότι ήταν φτύσιμο ήταν HTML. Και αυτό σημαίνει ότι μπορεί πλέον διασπείρω HTML και PHP μαζί. Επειδή ο διερμηνέας θα είναι ακριβώς αγνοούν την HTML και κυριολεκτικά να το εξάγει. Ποιο είναι καλό, έτσι δεν είναι; Επειδή προφανώς, στο τέλος της μέρας, Θα ήθελα να μου ιστοσελίδα να κατασκευαστεί από HTML. Έτσι ώστε οποιοδήποτε web browser μπορεί να ερμηνεύσει αυτό, ή να κατανοήσει τον κώδικα HTML στη σελίδα και την καθιστούν ως κάτι που μπορεί πραγματικά να καταλάβουν οι άνθρωποι. Και μπορώ να χρησιμοποιήσω μόνο PHP για τα τμήματα του site μου το απαιτούν δυναμισμό, που με χρειάζονται να έχουν τα πράγματα που αναπροσαρμόζουν συνεχώς. Οι στατικές πληροφορίες μπορεί να παραμείνει το ίδιο. Εντάξει, έτσι ώστε να είναι μια χαρά. Αλλά γιατί να το κάνω αυτό; Γιατί να αναμειγνύεται HTML και PHP; Θα μπορούσα απλά να εκτυπώσετε όλα τα HTML, χρησιμοποιώντας τη λειτουργία PHP εκτύπωσης. Γιατί να μην το κάνουμε αυτό; Σκεφτείτε το για ένα δευτερόλεπτο. Γιατί, όταν θα μπορούσα απλά να εκτυπώσετε out-- μου θα μπορούσε να έχει γραμμές της PHP που μόνο να πω, εκτύπωση ετικέτα HTML, κεφαλή εκτύπωσης. Γιατί να μην το κάνουμε αυτό; Γιατί ανάμιξη της PHP και HTML; Λοιπόν, αν νομίζετε ότι περίπου για ένα δευτερόλεπτο. PHP, ο διερμηνέας έχει να ερμηνεύσει αυτό που βλέπει. Και γι 'αυτό πρόκειται να έχουν να εκτελέσει μια γραμμή κώδικα. Εκτυπώστε HTML. Εκτυπώστε ετικέτα ανοικτή κεφαλή. Εκτυπώστε ετικέτα ανοιχτό τίτλου. Είναι πρόκειται να πρέπει να εκτελούν και να ερμηνεύουν ότι κάθε βήμα του τρόπου. Γιατί να μην αφήσουμε το διερμηνέα μόλις αποσιωπήσει πράγματα που δεν καταλαβαίνει και το κάνει αυτόματα; Είναι πρόκειται να με σώσει πολύ χρόνο να αναμειγνύεται HTML μου και PHP μαζί μου. Και έτσι γι 'αυτό δεν το κάνουμε Απλά πρέπει ανοιχτό PHP οριοθέτησης και στη συνέχεια απλά να εκτυπώσετε ολόκληρη την περιεχόμενο της σελίδας μας, σαν ένα γιγάντιο PHP καλέσει τη λειτουργία, Εκτύπωση και, στη συνέχεια, κοντά PHP οριοθέτησης και τελειώσατε. Έτσι, γι 'αυτό και τα ανακατεύουμε μαζί. Μέχρι στιγμής, δεν έχουμε δει πάρα πολύ διαφορά από τη γενική σύνταξη της PHP. Ήταν αρκετά απλή. Έχουμε ήδη δει το ερωτηματικό, ίσες. Είδαμε ένα ζευγάρι των νέων κλήσεων λειτουργίας, αλλά τίποτα πραγματικά φανταχτερό συμβαίνει. Ας ίσως κάνει τα πράγματα λίγο περίπλοκη. Τι γίνεται αν θέλουμε να περάσει τις πληροφορίες μεταξύ διαφορετικών αρχεία PHP, έτσι ώστε ίσως ο χρήστης μπορεί να να υποβάλουν πληροφορίες για μένα. Και τότε θα μπορούσα να κάνω κάτι με αυτήν σε μια άλλη σελίδα. Έτσι, η PHP έχει υποστήριξη για κάτι που ονομάζεται Σούπερ Παγκόσμια Μεταβλητές, το οποίο ακούγεται πολύ ωραία. Είναι πραγματικά μόνο γίγαντας συνειρμική συστοιχίες που συμβάλλουν στην υλοποίηση αυτή λειτουργικότητα της διασταύρωσης πληροφοριών μεταξύ των αρχείων PHP που Οι υφιστάμενες στον web server μας. Το πρώτο από αυτά τα σούπερ globals ονομάζεται $ _GET. Και αυτό είναι ίσως το απλούστερο να καταλάβει. Τι συμβαίνει με $ _GET; Λοιπόν, βασικά, ο χρήστης είναι πρόκειται να πληκτρολογήσετε πρόσθετες πληροφορίες στο τέλος των διευθύνσεων URL μας. Και ό, τι πληκτρολογείτε, υποθέτοντας αυτό είναι μορφοποιημένο με ένα συγκεκριμένο τρόπο που ονομάζεται συμβολοσειρά ερωτήματος, το οποίο είναι ακριβώς μια σειρά από βασικά ζευγάρια αξίας διαχωρίζεται από συμπλεκτικά σύμβολα. Αυτά τα ζεύγη κλειδιών τιμή θα είναι αποθηκεύονται σε ένα $ _GET associative πίνακα. Και από το βίντεο μας PHP σύνταξη, ξέρουμε πώς να συνεργαστεί με συνειρμικό συστοιχίες ήδη. Έτσι εδώ είναι ένα παράδειγμα του μερικά PHP, όπου ίσως είμαι εξόρυξη όλα τα βασικά ζεύγη τιμών ότι ο χρήστης που παρέχονται στη διεύθυνση URL. Έτσι έχω Open PHP οριοθέτησης μου. Έχω έναν βρόχο foreach. Είμαι επανάληψη σε όλη τη Σούπερ Παγκόσμια Array ονομάζεται $ _GET. Και θέλω να είναι σε θέση να υποβάλει τόσο στο κλειδί και την τιμή. Και είμαι ακριβώς την εκτύπωσή τους έξω, κάθε μία για τα φαινόμενα τη δική του ετικέτα παραγράφου εδώ. Είμαι εκτύπωση κάποια HTML και την παρεμβολή των τιμών των βασικών και την αξία σε αυτή τη δήλωση. Έτσι, ας ρίξουμε μια ματιά στο πώς αυτό στην πραγματικότητα θα μπορούσε να λειτουργήσει σε IDE μας. Και ίσως αυτό θα βοηθήσει απεικονίζουν ένα μικρό κομμάτι από ό, τι πάρετε είναι πραγματικά κάνει. Έτσι είμαι και πάλι εδώ στο διαδίκτυο ρίζας μου. Και εγώ θα μεγεθύνετε ένα λίγο για να σας δείξω ότι έχω ένα αρχείο που ονομάζεται, get1.php. Ας κάντε κλικ στο get1.php. Και δεν βλέπω κανένα περιεχόμενο. Αυτό είναι παράξενο, έτσι δεν είναι; Λοιπόν, δεν είναι πραγματικά πραγματικά. Επειδή εγώ δεν παρείχε τίποτα στη διεύθυνση URL. Πάω να get1.php, αλλά εγώ δεν παρείχε βασικά ζευγάρια αξίας ως τμήμα της συμβολοσειράς ερωτήματος μου. Ας προσθέσουμε λοιπόν μια σειρά ερωτημάτων και να δούμε τι μπορεί να κάνει αυτό το αρχείο. Για να ξεκινήσετε μια συμβολοσειρά ερωτήματος σας απλά πληκτρολογήστε ερωτηματικό. Τότε ίσως θα πω το όνομά = Doug & έτος = 2015. Και τότε θα πατήστε Enter. Τώρα παρατηρήστε τι συμβαίνει. Είμαι ακόμα σε get1.php. Αλλά τώρα έχω παρέχεται βασικά ζευγάρια αξίας, και είμαι εκτύπωσή τους με δική τους paragraph-- όνομα, Doug-- έτος, το 2015. Αυτός είναι ακριβώς ο κώδικας που μόλις είδε στη διαφάνεια πριν από λίγο. Και αν θέλω να προσθέσω μια άλλη ίσως κλειδί ζεύγους αξίας, και class = CS50. Τώρα έχω ένα άλλο κλειδί αξία ζεύγος που έχει εκτυπωθεί όταν επανέλθουμε και πάλι το URL. Τώρα ίσως αυτό δεν είναι διαμορφωμένη τρομερά καλά. Έτσι έχω μια άλλη εκδοχή του get.php. Είναι get2.php. Η διαφορά σε αυτό μία είναι ότι έχω αρχείο CSS, και μορφοποιεί τα πράγματα λίγο πιο όμορφα για μένα. Δεν είναι ίσως η πιο όμορφη CSS στον κόσμο. Αλλά είναι απλά ένας άλλος τρόπος για να γίνει αυτό. Γι 'αυτό και μπορεί ακόμα να πάρει την πρόσβαση με μεταβλητές μου χρησιμοποιώντας $ _GET. Και σε αυτή την περίπτωση, είμαι ακριβώς το είδος του καθιστώντας το CSS λίγο πιο φανταχτερό. Και αν σκάσει πάνω σε IDE μου για ένα δευτερόλεπτο, Θα σας δείξω σε PHP web μου κατάλογο εδώ, get2.php. Θα το ανοίξουμε, κάποια HTML εδώ. Προφανώς είμαι συνδέουν σε αυτό CSS αρχείο μιλούσα για. Ανοίγω μια ετικέτα πίνακα. Και τότε εδώ είναι βρόχου foreach μου. Εδώ είναι πως, ό, τι έχω έδειξε στη διαφάνεια πριν. Η μόνη διαφορά είναι ότι έχουν αυτό το κλειδί και CSS αξία στυλ που είμαι εφαρμόζεται σ 'αυτήν. Αλλά αυτό είναι το μόνο που κάνω, είναι ότι είμαι επανάληψη σε όλη την $ _GET να πάρει όλα από τα βασικά ζεύγη τιμών. Και εγώ τους την εκτύπωση όπως φαίνεται στον πίνακα. Και, προφανώς, είμαι μορφοποίηση των κλειδιών με έναν τρόπο, με τον td class = "κλειδί" <. Έτσι, προφανώς, αυτό ισχύει και για κάποια Επιλογή κατηγορίας στο αρχείο CSS μου GET.CSS. Και, προφανώς, είμαι εκτύπωση τις αξίες μου ένα εντελώς διαφορετικό τρόπο. Ποια είναι λίγο πολύ αυτό που είδαμε εδώ, όπου τις αξίες μας τυπώθηκαν με μπλε φόντο, και τα κλειδιά μας τυπώθηκαν με κίτρινο φόντο. Έτσι, αυτό είναι το πώς παίρνω αυτά τα διαφορετικά στυλ. Επειδή είμαι με τη χρήση διαφορετικών κατηγοριών CSS. Αλλά αυτό είναι λίγο πολύ για την GET. Όπως είμαι απλά εξαγωγή πληροφοριών. Και σε αυτή την περίπτωση, είμαι απλά εκτύπωση στην μεγάλη οθόνη. Είμαι το πάρει έξω από το URL, και αυτό είναι που κάνει GET για εμάς. Βλέπετε μια πιθανή πρόβλημα εδώ όμως; Γιατί θα έχουμε ίσως Δεν θέλετε να χρησιμοποιήσετε $ _GET; Τι θα συμβεί αν, ίσως, έφτιαχνα αυτό το ερώτημα; --Για get3.php, η οποία θα δεν έχουν σε IDE μου. Είναι απλά ένα υποθετικό αρχείο. Να σημειωθεί όμως ότι εδώ προφανώς περνώντας τον κωδικό μου. Και ίσως το συνθηματικό μου είναι ενοχλητικό. Ή ίσως δεν θέλω οι άνθρωποι να ξέρετε τι ο κωδικός μου είναι, σωστά. Αν είμαι το πέρασμα though-- αν είμαι με τη χρήση η μέθοδος $ _GET, αυτό που συμβαίνει είναι, ότι πρόκειται να είναι στο URL. Έτσι, κάποιοι κακόβουλος χρήστης θα μπορούσε να είναι σε θέση να δουν τι κάνω. Ι μπορεί να τον προσπερνά ευαίσθητες πληροφορίες. Ή ίσως δεν είναι καν ένας κακόβουλος χρήστης. Ίσως είναι απλά ο φίλος σας, ο οποίος στέκεται πάνω από τον ώμο σας. Και τώρα ξέρουν τον κωδικό πρόσβασης στο λογαριασμό σας στο Facebook. Και ίσως δεν θα κάνουμε τίποτα για αυτό. Αλλά αν ο κωδικός σας ήταν υποβάλλονται μέσω $ _GET στο Facebook, τώρα ξέρουν Facebook τον κωδικό πρόσβασής σας. Επειδή είναι εκεί στο URL όταν έχετε κάνει την υποβολή των πληροφοριών. Και έτσι ίσως αυτό δεν είναι η καλύτερη τρόπος για να περάσει ευαίσθητες πληροφορίες. Είναι ένας καλός τρόπος για να περάσει τις πληροφορίες ότι εμείς δεν κάνουμε ιδιαίτερα νοιάζονται για ότι είναι πάρα πολύ ευαίσθητη. Επειδή GET είναι αρκετά γρήγορο, σε σχέση με τα άλλα σούπερ globals θα πάμε να μιλήσουμε για. Αλλά ίσως δεν είναι το καλύτερο εργαλείο για τις ευαίσθητες πληροφορίες. Γι 'αυτό θα μπορούσαμε να θέλουμε να χρησιμοποιήσετε κάτι που ονομάζεται $ _POST, που αποτελεί άλλο ένα Σούπερ καθολική μεταβλητή. Είναι άλλο ένα associative πίνακα. Έτσι λειτουργεί λίγο πολύ ακριβώς το ίδιο όπως GET. Εκτός, αντί της εξαγωγής πληροφορίες από τη διεύθυνση URL, κάνει κάτι μέσω κεφαλίδων HTTP. Έτσι ανάκληση από μας βίντεο σε HTTP, μιλήσαμε σχετικά με το πώς τα προγράμματα περιήγησης, servers, και οι πελάτες να επικοινωνούν. Και η πληροφορία μεταφέρεται πίσω και πίσω σε κεφαλίδες HTTP. Με $ _POST, οι πληροφορίες είναι συνήθως αποστέλλονται μέσω αυτών των κεφαλίδων HTTP. Και θα δούμε πιο συχνά $ _POST σε το πλαίσιο της υποβολής εντύπων HTML. Μπορείτε ακόμα να χρησιμοποιήσετε φόρμες HTML να υποβάλουν πράγματα για να πάρει. Αλλά είναι συνήθως χρησιμοποιούνται στο πλαίσιο του POST. Έτσι, εδώ είναι ένα παράδειγμα μια φόρμα HTML. Τώρα που έχουμε δει αυτά πριν, αλλά έχουμε δεν δει αυτό το μέρος, η δράση = "post.php". Έτσι, όταν μιλήσαμε για τις μορφές στο πλαίσιο της HTML, είχα ένα κουμπί Υποβολή. Και αν θυμάστε, είχα κάντε κλικ στο Υποβολή και, στη συνέχεια, η σελίδα ανανεώνεται μόνο, Δεν έκανα τίποτα. Σε αυτήν την περίπτωση, είμαι υποβάλλοντας Ό, τι πληκτρολογείτε σε αυτή τη μορφή, σε ένα αρχείο PHP που ονομάζεται post.php. Και, προφανώς, ο τρόπος που το κάνω αυτό σε αυτή τη μορφή, χρησιμοποιώντας τη μέθοδο POST. Έτσι, κάθε κομμάτι των πληροφοριών ότι πληκτρολογείτε σε αυτή τη μορφή θα υποβληθεί μέσα από τις κεφαλίδες HTTP. Θα είναι προσβάσιμο σε post.php, γιατί αυτή είναι η δράση της μορφής μου. Θα είναι προσβάσιμα πηγαίνοντας στο $ _POST. Και προφανώς, ο τρόπος που μπορώ να πάρει σε κάθε επιμέρους στοιχείου με την εν λόγω associative πίνακα Με αυτό το χαρακτηριστικό, το χαρακτηριστικό Όνομα ετικέτες εισόδου μας. Έτσι, προφανώς, μπορώ να πω $ _POST πλατεία παρένθεση το όνομα για να πάρει ό, τι του χρήστη πληκτρολογήσει στο πρώτο πεδίο. Και $ _POST κωδικό πρόσβασης, της PW μάλλον, για να πάρει σε ό, τι πληκτρολογήσει ο χρήστης στο δεύτερο πεδίο. Έτσι, ας ρίξουμε μια ματιά Αυτό πάνω στο CS50 IDE. Έτσι, εδώ είμαστε, και θα zoom in για μια δεύτερη. Και έχουμε ένα αρχείο που ονομάζεται post.html. Κάνω κλικ στο post.html. Στην κορυφή εδώ έχω μια πολύ απλή μορφή web. Είναι η μορφή που μόλις είδατε σχετικά με τη διαφάνεια πριν από ένα δευτερόλεπτο. Μπορώ να πληκτρολογήσετε, Doug, και δεν μπορώ πληκτρολογήστε τον κωδικό πρόσβασής μου, την οποία όλοι ξέρω είναι squadgoals. Και θα χτυπήσει Υποβολή. Και προφανώς, ότι υποβάλλει post.php. Και είμαι προφανώς ότι η εκτύπωση. Έτσι είμαι για να απαλλαγούμε από όλα την ασφάλεια ότι η θέση μου δίνει από μόνο εκτύπωση το όνομα χρήστη και τον κωδικό πρόσβασης. Το όνομα του χρήστη είναι Doug. Ο κωδικός πρόσβασης του χρήστη είναι squadgoals. Πώς το κάνω αυτό; Λοιπόν, ποπ πάνω σε IDE πάλι για ένα δευτερόλεπτο. Θα μετακινηθείτε προς τα κάτω για να πάρετε μια ματιά στο post.php, η οποία ήταν η ενέργεια που χρησιμοποιείται για να υποβάλετε εδώ. Αυτή ήταν η δράση του μορφή HTML μου. Και αυτό είναι το μόνο που κάνω. Το όνομα του χρήστη είναι, και είμαι εκτύπωση από το περιεχόμενο των $ _POST "όνομα". Και στη συνέχεια τον κωδικό πρόσβασης του χρήστη είναι $ _POST "password". Έτσι μου δόθηκε ότι οι πληροφορίες με την υποβολή της φόρμας HTML. Και τώρα μπορώ να το εξαγάγετε χρησιμοποιώντας $ _POST επειδή η μέθοδος που χρησιμοποιείται για τη μετάδοση δεδομένων με τη μορφή αυτή ήταν η μέθοδος POST. Τώρα είναι πιθανόν να μην έτσι great-- Πάω να πάμε πίσω για μια δεύτερη σε σύνολο here-- μας είναι πιθανόν να μην είναι τόσο μεγάλη, αν είμαι την υποβολή των πληροφοριών με τις POST, η οποία είναι φαινομενικά πιο ασφαλής. Είναι πιθανόν να μην είναι τόσο μεγάλη αν το κάνω αυτό και, στη συνέχεια, εκτύπωση κωδικό πρόσβασης του χρήστη. Είναι υποτίθεται ότι είναι πιο ασφαλής. Εντάξει, αλλά δεν είναι απολύτως ασφαλής. Και έτσι σε αυτό το μικρό snippet εδώ θέλω να επιστήσω την προσοχή σας μόνο σε μερικά ανησυχίες για την ασφάλεια των δεδομένων, μόνο κάτι να σκεφτούμε, όπως είστε εργάζονται ή χρησιμοποιούν το διαδίκτυο. Αυτό είναι απλά κάτι που εξετάζει. Σας είπα ότι οι πληροφορίες είναι υποβάλλονται μέσω κεφαλίδες HTTP όταν χρησιμοποιείτε τη μέθοδο POST. Πράγμα που σημαίνει ότι δεν είναι απόλυτα ασφαλής. Είναι πιο δύσκολο να βρείτε ό, τι χρησιμοποιώντας τη μέθοδο GET, όπου είναι ακριβώς δεξιά στο URL. Αλλά υπάρχει ακόμα ένας τρόπος για να το βρείτε. Και εγώ απλά θέλω να δείξω σας αυτή, ώστε να μπορείτε ίσως αρχίσουν να σκέφτονται για αυτό καθώς εργάζεστε, ή με τη χρήση ιστοσελίδες και υποβολή κωδικούς πρόσβασης, και ίσως με τη χρήση το ίδιο κωδικό πρόσβασης σε ένα πολλά διαφορετικά μέρη. Να ξέρετε ότι είναι εξακολουθεί να είναι στην πραγματικότητα αρκετά εύκολο να μάθετε τον κωδικό πρόσβασης κάποιου. Και έτσι εδώ, θα πάω να πάει στο post2.html. Και η διαφορά με post2.html και post2.php είναι αρκετά λεπτή. Η διαφορά είναι μόνο ότι δεν εκτυπώνει ο κωδικός πρόσβασης όταν υποβάλετε τη φόρμα. Έτσι, Πάω να πληκτρολογήσετε, Νταγκ. Και Πάω να πληκτρολογήσετε σε, squadgoals, ακόμη και αν και γνωρίζουμε ότι είναι ο κωδικός πρόσβασης. Πριν υποβάλει η αποτελούν όμως, θα πάω να ανοίξει Εργαλεία για προγραμματιστές, μόνο και μόνο για να να σας δείξω τι πρόκειται να συμβεί εδώ. Έτσι στο Chrome, είμαι απλώς πρόκειται να χτυπήσει F12. Και αυτό πρόκειται να ανοίξει μου Developer Tools στη δεξιά πλευρά. Δεν έχω ακόμα υποβληθεί το έντυπο. Τώρα είμαι πρόκειται να χτυπήσει Υποβολή στη φόρμα μου. Και προφανώς, έκανα μια καλέσετε, ή έκανα μια αίτηση να post2.php, το οποίο έχει νόημα. Πάω να κάνουν κλικ σε αυτό. Στη συνέχεια, εδώ, θα πάω να κάνουν κλικ στις κεφαλίδες. Υπάρχουν πολλά πράγματα συμβαίνουν εδώ. Αλλά αν μετακινηθείτε προς τα κάτω για την ίδια την κάτω, δεξιά ανακοίνωση there-- ημερολόγιό μου το έχει αποκλείσει για second-- δικαιώματος υπάρχει στο κάτω γωνία, name-- Doug, pw-- squadgoals. Έτσι ακόμα κι αν είμαι με τη χρήση του POST μέθοδος, η οποία είναι πιο ασφαλής, απλά να γνωρίζουν ότι όταν το κάνετε αυτό, είστε εξακολουθούν να μεταδίδουν πληροφορίες μέσω HTTP. Και μπορεί ακόμα να είναι Δεν βρέθηκε κάποιος αντίπαλος. Είναι απλά κάτι που θα πάμε να έχουν να αντιμετωπίσουν πραγματικά. Ίσως υπάρχουν μερικοί τρόποι για να κρυπτογραφήσετε μας κωδικούς πρόσβασης πριν στέλνουμε πάνω, η οποία θα είναι μια καλύτερη, πράγμα που δεν κάνω εδώ. Αλλά απλώς να γνωρίζουν ότι η θέση μέθοδος έχει τα όριά πάρα πολύ. Είναι μια βελτίωση σε σχέση με έρθετε σε την άποψη ότι είναι άμεσα ορατά. Αλλά δεν είναι μια πλήρης λύση. Έτσι, εδώ είναι ένα παράδειγμα της μια γρήγορη άσκηση στο σπίτι που μπορείτε να χρησιμοποιήσετε για να πάρετε κάποια πρακτική που εργάζονται με την PHP. Δημιουργήστε το ακόλουθο ζεύγος των ιστοσελίδων. Το πρώτο πρέπει απλώς να είναι ένα πολύ απλό σχηματίζουν ένα ενιαίο χώρο και ένα Υποβολή κουμπί. Έτσι, πολύ παρόμοιο με αυτό που ακριβώς έκανε με post.html. Και τότε το δευτερόλεπτο αρχείο θα πρέπει να δημιουργήσετε είναι ένα αρχείο, ένα αρχείο PHP, ότι αναμένει εισόδου, μέσω ΕΛΤΑ, και με βάση αυτό πληκτρολογήσει ο χρήστης, ο οποίος μπορείτε να υποθέσετε θα είναι ένας ακέραιος. Δεν χρειάζεται να κάνετε οποιαδήποτε έλεγχος σφαλμάτων ή τα παρόμοια. Μπορείτε να υποθέσετε το χρήστη θα πληκτρολογήσετε μια ακέραια τιμή, ή κάτι σαν ερμηνεύεται από PHP ως ένα ακέραιο, σε αυτή τη μορφή. Απλά θέλετε να δημιουργήσετε ένα n με n πίνακα πολλαπλασιασμού. Έτσι, αν ο χρήστης υποβάλλει 10, θέλουμε να έχουν ένα τραπέζι 10 από 10 πολλαπλασιασμό. Εάν ο χρήστης υποβάλλει ένα 12, θέλουμε ένα τραπέζι 12 από 12 πολλαπλασιασμό. Ακριβώς έτσι μπορείτε να δείτε τι είμαστε οδήγηση εδώ, θα ρίξουμε μια ματιά Αυτό το αρχείο σε IDE μου. Έτσι, εδώ στο IDE, έχω mult_form.html. Θα το κλικ. Το μόνο που θέλω να κάνω είναι να υποβάλει μία τιμή. Πληκτρολογήστε 10, χτύπησε Υποβολή. Και προφανώς, mult_table.php, η οποία μπορούμε να δούμε στην κορυφή υπάρχουν στο URL, Είμαι δημιουργώντας μια 10 από 10 πίνακα πολλαπλασιασμού. Αν μου πληκτρολογήστε 15 και να χτυπήσει Υποβολή, τώρα έχουν ένα τραπέζι 15 από 15 πολλαπλασιασμό. Είμαι, φυσικά, δεν πρόκειται να δείξει Σας το περιεχόμενο της mult_table.php, γιατί αυτό θα πάρει τη διασκέδαση έξω από αυτό άσκηση στο σπίτι. Αλλά είναι ένας πολύ καλός τρόπος για να πάρετε κάποια πρακτική εργασία με βρόχους PHP και Ταχυδρομείων, πολύ απλά, ελπίζω χωρίς άγχος παράδειγμα, μόλις να κάνει μια λίγη πρακτική. Και έχω μια μικρή CSS σε εξέλιξη εδώ για να κάνει ατομική τραπέζι μου κύτταρα ακριβώς το είδος της ποπ από ένα λίγο και να δούμε λίγο περισσότερο σαν ένα πίνακα πολλαπλασιασμού, σε αντίθεση με μόνο κείμενο μόνο είδος κάθεται εκεί. Το τελευταίο σούπερ παγκόσμια θα μιλήσουμε για σε αυτό το βίντεο είναι κάτι που ονομάζεται $ _SESSION. Και ίσως αυτό είναι πραγματικά το καλύτερο παράδειγμα για κάτι θα εξετάσει παγκόσμια. Είναι μια άλλη σειρά. Είναι άλλο ένα associative πίνακα. Αλλά είναι προσβάσιμο μέσω κάθε PHP αρχείο που υπάρχει στο σύστημά μας. Δεν έχουμε να υποβάλουν πληροφορίες μία σελίδα τη φορά όπως κάνουμε με GET και POST με. Είναι πάντα εκεί. Και έτσι αυτό είναι μεγάλη για μια σελίδα όπου είστε συνδεδεμένοι, για παράδειγμα, και θέλετε τα στοιχεία σύνδεσής σας να επιμένουν από σελίδα σε σελίδα σε σελίδα. Μπορείτε να ξεκινήσετε μόνο μια συνεδρία και, στη συνέχεια, χρησιμοποιήστε $ _SESSION για να αποθηκεύσετε τα πράγματα όπως το όνομα του χρήστη, ή το χρήστη ID πληροφορίες, και ούτω καθεξής. Και ότι οι πληροφορίες θα παραμείνουν στην $ _SESSION Μέχρι να καταστρέψει τη συνεδρία λίγο αργότερα. Γράφοντας δυναμικές ιστοσελίδες με PHP τους κάνει πολύ καλύτερα. Ιστοσελίδες σας να γίνει πολύ δυναμική, και δεν το κάνετε Πρέπει να κάνουμε πάρα πολύ περισσότερο από ό, τι που διαφορετικά θα είχαν κάνει ακριβώς το κάνει με την HTML. Αλλά αυτό απαιτεί εξάσκηση, πολλή πρακτική. Ξέρετε ήδη πώς να εργαστεί με C, και έτσι το άλμα για την PHP δεν είναι πάρα πολύ δύσκολο. Τι είναι ίσως λίγο λίγο δύσκολο εργάζεται με αυτή τη νέα ιδέα της GET και POST, και ίσως μίξης σας HTML και PHP σας μαζί. Αλλά επίσης να γνωρίζουν ότι το διαδίκτυο είναι μια τεράστια αποθήκη πληροφοριών. Και τεκμηρίωση της PHP είναι διαθέσιμη σε πολλά μέρη, αλλά ίσως η πιο κανονικώς σε php.net. Και μπορείτε να βρείτε εκεί, πολλές διαφορετικές λειτουργίες, και τις περιπτώσεις χρήσης, και τα παραδείγματα σε παραδείγματα, σε παραδείγματα. Όπου και αν θέλετε να δοκιμάσετε και το σχήμα πώς να κάνει κάτι, οι πιθανότητες είναι, Κάποιος ίσως αυτό που κάνατε πριν. Και μπορείτε να τα χρησιμοποιήσετε ως έμπνευση να εφαρμόσει ανεξαρτήτως είναι αυτό που προσπαθεί να εφαρμόσει πάρα πολύ. Είμαι ο Νταγκ Lloyd. Αυτό είναι CS50.