>> DOUG LLOYD: Dus in onze video op PHP syntax,
We hebben veel gepraat over hoe PHP kan worden gebruikt op de opdrachtregel
Om in een wijze lopen dat We zijn behoorlijk vertrouwd met van C.
Maar zoals ik ook vermeld in die video, PHP
werd aanvankelijk ontwikkeld implementeren web programmeren, websites.
En zo in deze video zijn we gaan praten over hoe we
PHP gebruiken in het web development context.
>> We weten al uit onze video op HTML,
dat websites worden gebouwd uit een set van HTML-tags
dat semantisch definiëren de structuur van een webpagina.
Maar websites die zijn gebouwd met pure HTML
lijdt aan een, zeer ernstige beperking.
>> En deze beperking te illustreren, laten we eens kijken naar de volgende.
Dus nu wil ik een webpagina te bouwen dat, wanneer de gebruiker bezoekt het,
het geeft me de huidige tijd in Cambridge, Mass.,
weergeven van het aan de laatste minuut.
Als ik was het maken van dit recht nu, Ik zou zoiets zeggen.
Tijd in Cambridge-- dus ik heb HTML-tags, hoofd-tags, title-tags,
lichaam tags-- de huidige tijd in Cambridge is 14:08,
afdrukken van militaire tijd.
>> Wat gebeurt er als het is nu 02:09, 14:09?
Nou tot nu toe, met HTML, ik heb te gaan en verander het in 14:09.
En dan een minuut later, Ik moet het weer te veranderen.
En zoals je je kunt voorstellen, dat is waarschijnlijk de ergste baan ooit.
Jij bent de webmaster voor een webpagina, en elke minuut, 24 uur per dag,
je nodig hebt om de huidige tijd te werken door handmatig openen time.html en veranderende
alleen dat stukje code aan het zeggen de huidige tijd in uren en minuten.
Dat is waarschijnlijk niet een erg goed gebruik van onze middelen,
zowel mens en computationele.
>> Websites die alle HTML volledig statisch.
De enige manier waarop je kunt bijwerken inhoud, zoals we net hebben gezien,
is om deze bron handmatig openen bestanden, bewerken en opslaan.
En dan wanneer de gebruiker ververst de pagina,
of bezoekt de pagina voor de eerste tijd, zullen ze de nieuwste inhoud te krijgen.
Maar alleen omdat we hebben handmatig bewerkt het.
>> Als we beginnen met een aantal PHP mengen daar, onze code kan krijgen veel flexibeler.
En we kunnen een manier voor onze pagina's dynamisch zijn of zichzelf bij te werken,
zonder dat onze arme webmaster in het vorige voorbeeld
handmatig te actualiseren dingen.
Ze kan het automatisch doen.
We hoeven niet in te grijpen.
We kunnen slapen.
Dat is waarschijnlijk een goede zaak als je doet een heleboel web programmeren.
>> Dus in CS50 IDE, lopen we een webserver genaamd Apache.
Het is een veelgebruikte, open source webserver systeem.
Dit systeem heeft capaciteit te interpreteren
PHP, die zal nuttig te zijn indien u wilt een PHP programmeren.
>> En in CS50 IDE, hebben we een opdracht deze zeer gemakkelijk te doen maken,
apache50 starten.
En toen dat slash pad, slash aan, slash
dir, dat is gewoon een heel gebruikelijke manier aangeeft wat je hier hebt opgegeven
is een pad naar een bepaalde directory die u
willen de wortel site, of de wortel pagina
of de map waaruit uw webserver begint om bestanden te onderzoeken en te dienen
ze aan klanten die erom vragen.
Dus laten we pop naar CS50 IDE, alleen maar om laten zien, erg snel, hoe dit werkt.
>> Dus hier in CS50 IDE, ik ben in een directory genaamd Week Nine Zero.
En ik heb two-- ik geëxecuteerd een LS commando net
hierboven om te laten zien dat ik twee mappen hier, PHP,
dat is de set van bestanden die ik gebruikte in de PHP syntax video, en dan PHP-web,
dat is de set van bestanden die ik wilt gebruiken in deze video.
>> En ik zou willen beginnen een webserver bijvoorbeeld
met de inhoud van de map PHP-web als de bestanden worden geserveerd.
Dus wat moet ik doen?
Ik ga apache50 ruimte typen start, ruimte PHP, scheutje web.
Dat is het pad naar de directory van waar ik nu ben.
Dan druk ik op Enter.
Het gaat om een ​​te doen beetje spul hier.
En dan is het gaan zeggen, Apache gestart met succes.
Uw site is nu beschikbaar en at-- dan is er de URL van de site.
Dus wat moet ik doen?
Ik ga dit snel te kopiëren.
En ik ga up-- openen en Ik zal uit te zoomen een beetje hier--
Ik ga om te openen een nieuw tabblad in Chrome.
En ik ga naar die URL te bezoeken.
>> Ik ga druk op Enter.
Het gaat om te laden.
En ik zal er weer uit te zoomen.
En we kunnen hier zien is de inhoud van mijn PHP web directory.
>> Dus nu wat er eigenlijk gebeurt Hier is mijn voorbeeld van CS50 IDE
is waar je van deze bestanden naar iedereen die daarom verzoekt.
En in de loop van deze video, zullen we een soort van
een kijkje nemen op een bos van deze verschillende bestanden in context.
>> Om te testen dat je Apache server werkt,
die in het algemeen gaat het geval in CS50 IDE,
maar als je dit doet meer in het algemeen, en u begint met het bouwen van uw eigen web
servers, er is een echt voorkomende soort van analoog naar,
"Hello World", dat is meestal gebruikt voor PHP web development.
Die is om een ​​bestand bestaande uit alleen deze code--
een PHP begrenzer set met PHP info, haakjes, puntkomma tussen.
Die in feite een speciale PHP functie die u vertelt
welke versie van PHP die u gebruikt.
>> Dus in CS50 IDE, ik heb dat bestand beschikbaar alleen
om te laten zien hoe dit eruit zou zien.
Dus ik ben op zoek naar mijn index van mijn PHP bijvoorbeeld.
Mijn Apache exemplaar wordt uitgevoerd de inhoud van PHP web.
En ik heb een bestand hier de naam info.php.
>> Ik ga klik erop, uitzoomen.
Dit is wat je gaat om te zien, vrij veel.
Dit is gewoon me te vertellen dat mijn Apache server werkt.
Dit is blijkbaar de versie van PHP die ik ben actief.
Dit is mijn analoog naar "Hello World".
>> Dus ik weet dat dingen zijn operationeel.
Dus we zijn goed om te gaan.
We kunnen verder gaan vanaf hier.
>> Dus laten we opnieuw dat tijd Zo waren we
over met onze arme webmaster die moest de pagina voortdurend te actualiseren.
Dit zou een oplossing voor hoe zijn Ik wil dingen uit te voeren
zodat de webmaster niet te houden bijwerken van de tijd.
Het zou gewoon een soort van automatisch gebeuren.
>> De beneden de HTML, is het redelijk vergelijkbaar, met één uitzondering.
Maar hier, ik heb een aantal PHP aan de top.
Ik heb, blijkbaar, dit heet functie date_default_timezone_set.
>> En we niet over alles praten deze functies in CS50,
omdat PHP heeft waarschijnlijk tienduizenden.
Dat is misschien een beetje een te zijn overdrijving, maar het kan niet.
Het heeft veel functies ingebouwd.
En dus dit is een functie blijkbaar zet mijn tijdzone als US / Eastern,
dat is de tijdzone die ik ben Momenteel maken van deze video.
>> Toen ik een telefoontje te maken functie genaamd, datum.
En, blijkbaar, ben ik het opslaan van de HIS van iets geroepen, de tijd.
Dus wat is hier aan de hand?
>> Nou, eigenlijk wat is gebeurt is, ben ik het maken van een oproep
enkele server die gaat vertel me wat de tijd die momenteel is.
En ik doe het omzetten naar een formaat uren, minuten, seconden.
En de reden dat de hoofdstad H is dit gaat me 24 uur tijd, niet 12
uurs die kleine h zou zijn.
En ik ben gewoon het opslaan van dat in een variabele met de naam, tijd.
Zodat de tweede regel van PHP daar, de oproep om de functie,
datum, is net stukje tekst, wat
gaat me de datum te geven en de de tijd, en een heleboel andere informatie.
En het eerste argument is er, dat zijn, is gewoon het extraheren van de belangrijke rol
dat ik de zorg over voor dit voorbeeld, dat is de uren, minuten en seconden.
Dus dat is het alles wat er gaande is.
Dus ik bewaar dat in een variabele $ tijd.
En dan naar beneden op de bodem daar, ik
hebben die afkorting voor afdrukken van de huidige tijd.
Dus ik ga gewoon om af te drukken wat de huidige tijd is.
>> Dus laten we een kijkje nemen op deze in CS50 IDE en zien hoe we zijn nu
besparing die webmaster een hoop problemen.
Oké, dus hier ben ik weer terug naar de root directory
mijn Apache instantie.
En ik heb een bestand hier genoemd time.php.
Ik ga gewoon op dat.
En ik zal omhoog schuiven, omdat we ingezoomd vrij ver.
De huidige tijd is 14:20:34.
Dus ik doe het uur, minuten en seconden.
En ik kan het vernieuwen pagina en krijg nieuwe tijd.
--41.
Ik ga naar de pagina te vernieuwen en krijg nieuwe tijd, 44, 46, 47.
>> Dus, ik ben duidelijk niet mezelf iets te veranderen.
Ik ben hier de pagina te vernieuwen.
Dus ik kan niet terug te bewerken.
En ik beloof je, ik niet enige bondgenoten
die het bestand bewerken op mijn naam op de zijkant.
>> Ik ben gewoon met behulp van dat PHP functie, tijd, om de tijd voor mij genereren
automatisch.
Zodat zelfs als ik slaap, en mijn web-server draait,
de gebruiker die een bezoek aan die pagina is nog steeds gaat precies krijgen de huidige tijd.
Dus dat is behoorlijk goed.
Ik heb mijn site dynamischer gemaakt met niet te veel PHP-code.
Het was slechts twee regels code en vervolgens een beetje een print instructie.
En al heb ik een veel meer dynamische site
dan die eerste voorbeeld zagen we aan het begin van de video.
>> Dus, herinneren van de video op PHP syntax dat wanneer de PHP-tolk loopt
ons programma, negeert alles dat is niet de binnenkant van PHP afbakeningen,
spugen het uit.
In dat voorbeeld, wat het ding dat het spugen was HTML.
En dit betekent dat ik kan nu tussenwerpen HTML en PHP samen.
Omdat de tolk zal net negeren de HTML en letterlijk uitgang het.
Dat is goed, toch?
>> Omdat vermoedelijk, aan het einde van de dag,
Ik zou mijn site te willen geconstrueerd van HTML.
Zodat elke webbrowser kan interpreteren , of begrijp de HTML op de pagina
en maken het als iets dat we daadwerkelijk kan begrijpen als mensen.
En ik kan alleen gebruik maken van PHP voor gedeelten van mijn site
de eisen dynamiek, die me nodig dingen die voortdurend bij te werken.
De statische informatie kan hetzelfde blijven.
>> OK, dus dat is prima.
Maar waarom zou ik dat doen?
Waarom zou ik meng HTML en PHP?
Ik kon gewoon uitprinten alle HTML, met behulp van de PHP-printfunctie.
Waarom ben ik niet om dat te doen?
Denk er eens over voor een tweede.
>> Waarom, als ik kon gewoon afdrukken out-- I lijnen van PHP dat gewoon zeggen zou kunnen hebben,
afdrukken HTML-tag, printkop.
Waarom ben ik niet om dat te doen?
Waarom ben ik het mengen van de PHP en HTML?
>> Nou, als je denkt over het voor een tweede.
PHP, de tolk heeft om te interpreteren wat hij ziet.
En dus het gaat om om een ​​lijn van code uit te voeren.
Uitprinten HTML.
Uitprinten open hoofd tag.
Uitprinten geopend title tag.
Het gaat te hebben om uit te voeren en te interpreteren
dat iedere stap van de weg.
Waarom niet gewoon laten de tolk slechts verdoezelen
dingen die het niet begrijpt en automatisch te doen?
Het gaat me een hoop tijd mijn HTML en mijn PHP samen mengen.
>> En dus dat is waarom we niet doen gewoon geopend PHP begrenzer
en dan gewoon uitprinten het hele inhoud van onze pagina als een gigantische PHP
bellen om de functie Print en dan dicht PHP begrenzer en we zijn klaar.
Dus dat is waarom we samen meng ze omhoog.
>> Tot nu toe hebben we niet te veel van gezien een verschil van de algemene PHP syntax.
Het is vrij eenvoudig.
We hebben al gezien dat de vraagteken, gelijk.
We zagen een paar van de nieuwe functie oproepen, maar niets echt bijzonders aan de hand.
Laten we misschien dingen een beetje liefhebber.
Wat als we willen informatie door te geven verschillende PHP bestanden,
zodat misschien kan de gebruiker submit informatie aan mij.
En dan kon ik iets doen met het op een andere pagina.
>> Dus PHP heeft ondersteuning voor iets genaamd Super Global
Variabelen, die vrij geweldig klinkt.
Ze zijn eigenlijk alleen giant associatieve arrays
die helpen de uitvoering van deze functionaliteit van passerende
informatie tussen de PHP-bestanden die zijn bestaan ​​op onze webserver.
>> De eerste van deze super globals heet $ _GET.
En het is waarschijnlijk de eenvoudigste te begrijpen.
Wat gebeurt er met $ _GET?
Nou, in principe, de gebruiker is gaat naar extra informatie typen
aan het einde van onze URLs.
En wat ze typen, in de veronderstelling het is geformatteerd op een bepaalde manier
riep een query string, dat is gewoon een reeks van belangrijke waarde paren gescheiden
door ampersands.
Die sleutel waarde paren zal zijn opgeslagen in een $ _GET associatieve array.
En van onze video-on- PHP syntax, we weten
hoe te werken met associatieve arrays al.
Dus hier is een voorbeeld van sommige PHP, waarbij misschien ben ik
extraheren van alle belangrijke waardeparen dat de in de URL geleverde gebruiksaanwijzing.
Dus ik heb mijn Open PHP begrenzer.
Ik heb een foreach lus.
Ik itereren over de Super Global Array genaamd $ _GET.
>> En ik wil in staat zijn om te verwijzen zowel de sleutel en waarde.
En ik ze gewoon afdrukken out, elk op schijnbaar
eigen paragraaf tag hier.
Ik ben het afdrukken van een aantal HTML en interpoleren van de waarden
van de sleutel en de waarde in die verklaring.
>> Dus laten we eens kijken naar hoe dit eigenlijk zou werken aan onze IDE.
En misschien is dit zal helpen illustreren een beetje
van wat GET eigenlijk doet.
Dus ik ben hier terug in mijn web root.
En ik zal in een te zoomen beetje te laten zien
dat ik een bestand genaamd, get1.php.
>> Dus laten we op get1.php.
En ik zie geen inhoud.
Dat is raar, toch?
Nou, niet echt eigenlijk.
Omdat ik niet leveren iets in de URL.
Ik ga get1.php, maar ik Er zijn geen belangrijke waarde paren leveren
als onderdeel van mijn query string.
Dus laten we voegen een query string en zie wat dit bestand kan doen.
>> Om een ​​query string begin je typt vraagteken.
Dan misschien zal ik zeggen name = Doug & jaar = 2015.
En dan zal ik op Enter.
Let nu op wat er gebeurt.
Ik ben nog steeds in get1.php.
Maar nu heb ik geleverd key waarde paren, en ik ben
printen ze uit op hun eigen paragraph-- naam, Doug-- jaar 2015.
Dat is precies de code we net zag op de dia een moment geleden.
>> En als ik wil misschien een ander toe te voegen key waarde paar, & class = CS50.
Nu heb ik een andere belangrijke waarde pair die wordt afgedrukt
toen ik weer opnieuw de URL.
Nu misschien is dit niet vreselijk goed geformatteerd.
Dus ik heb een andere versie van get.php.
Het is get2.php.
>> Het verschil in deze men Ik heb CSS-bestand,
en formaten dingen die een beetje meer mooi voor mij.
Het is misschien niet de meest mooi CSS ter wereld.
Maar het is gewoon een andere manier van doen.
Dus ik kan nog steeds toegang mijn variabelen met behulp van $ _GET.
En in dit geval, ik ben gewoon een soort van het maken van de CSS een beetje meer luxe.
En als we pop naar mijn IDE voor een tweede,
Ik zal je laten zien in mijn PHP web directory hier get2.php.
We zullen het hier open te stellen, wat HTML.
Blijkbaar ben ik de koppeling in die CSS-bestand dat ik het over had.
Ik open een tafel tag.
En dan is hier mijn foreach lus.
>> Hier is dat, wat ik getoond op de dia voor.
Het enige verschil is dat ik hebben deze sleutel en de waarde van CSS
styling dat ik daarop van toepassing is.
Maar dat is alles wat ik doe, wordt ik ben itereren over $ _GET te krijgen allemaal
van de sleutelwaarde paren.
>> En ik ze af te drukken als de tafel.
En, blijkbaar, ben ik het formatteren van de sleutels op één manier, met de td class = "sleutel" <.
Dus blijkbaar geldt voor sommige class selector in mijn CSS-bestand GET.CSS.
En, blijkbaar, ik printen mijn waarden een totaal andere manier.
Dat is vrij veel wat we hier, waarbij zag
onze waarden werden gedrukt met een blauwe achtergrond,
en onze sleutels werden gedrukt met een gele achtergrond.
Dus dat is hoe ik krijg die verschillende stijlen.
Want ik ben met behulp van verschillende CSS-klassen.
Maar dat is vrij veel voor te krijgen.
Zoals ik ben gewoon het extraheren van informatie.
En in dit geval, ik ben gewoon printen naar het scherm.
Ik krijg het uit de URL, en dat is wat GET voor ons doet.
>> Ziet u een mogelijke probleem hier wel?
Waarom zouden we misschien niet willen $ _GET gebruiken?
Wat als, misschien, ik was het maken van deze vraag?
--om get3.php, die ik niet op mijn IDE.
Het is gewoon een hypothetische bestand.
Maar merk hier dat blijkbaar het passeren van mijn wachtwoord.
En misschien mijn wachtwoord is gênant.
Of misschien heb ik mensen niet te willen weet wat mijn wachtwoord is, rechts.
>> Als ik het doorgeven hoewel-- als ik gebruik de $ _GET methode, wat er gebeurt is,
dat gaat worden in de URL.
Dus sommige kwaadwillende gebruiker zou kunnen in staat zijn om te zien wat ik doe.
Ik kan hen passeren gevoelige informatie.
Of misschien is het niet eens een kwaadwillende gebruiker.
Misschien is het gewoon je vriend die staat over je schouder.
En nu weten ze het wachtwoord je Facebook-account.
>> En misschien zouden ze niet doen niets mee.
Maar als je wachtwoord waren via $ _GET op Facebook ingediend,
nu ze weten dat je Facebook-wachtwoord.
Omdat het daar in de URL als je hebt gedaan het verstrekken van informatie.
>> En dus misschien is dat niet de beste manier om gevoelige informatie door te geven.
Het is een goede manier om informatie door te geven dat we niet bijzonder
zorg over als te gevoelig.
Omdat GET is vrij snel, opzichte van de andere super globals
We gaan om te praten over.
Maar misschien niet de beste tool voor gevoelige informatie.
>> Daarvoor zouden we willen Gebruik iets genaamd $ _POST,
die een Super globale variabele.
Het is weer een associatieve array.
Dus het werkt vrij veel precies hetzelfde als GET.
Behalve in plaats van extraheren informatie van de URL,
het doet iets via HTTP headers.
Zo herinneren van onze video op HTTP, we praatten
over hoe browsers, servers, en klanten te communiceren.
En informatie wordt doorgegeven terug en weer in de HTTP-headers.
>> Met $ _POST, informatie is typisch verstuurd via de HTTP-headers.
En we zullen het meest te zien in $ _POST het kader van het indienen van HTML-formulieren.
U kunt nog steeds gebruik maken van HTML-formulieren om dingen te krijgen in te dienen.
Maar ze meestal gebruikt in de context van de POST.
>> Dus hier is een voorbeeld van een HTML-formulier.
Nu hebben we deze eerder gezien, maar we hebben niet gezien dit deel, action = "post.php".
Dus toen we spraken over formulieren in de context van HTML, had ik een Submit knop.
En als je te herinneren, zou ik klik op Verzenden en dan de pagina net vernieuwd,
deed niets.
>> In dit geval ben ik het indienen wat ik typ in deze vorm,
naar een PHP-bestand met de naam post.php.
En, blijkbaar, de manier waarop ik doe dat in deze vorm wordt met behulp van de POST-methode.
Dus elk stukje informatie dat ik typ in deze vorm
zullen worden voorgelegd via HTTP headers.
>> Het zal toegankelijk in post.php zijn, want dat is de actie van mijn vorm.
Het zal toegankelijk zijn door te gaan naar $ _POST.
En blijkbaar, de manier waarop ik kan krijgen op elk afzonderlijk element
met die associatieve array is met deze eigenschap,
het attribuut Naam van onze inbreng labels.
>> Dus blijkbaar kan ik zeggen $ _POST square beugels naam aan wat de gebruiker te krijgen
getypt in het eerste veld.
En $ _POST wachtwoord van pw plaats, op welk de gebruiker getypte te krijgen
in het tweede veld.
>> Dus laten we een kijkje nemen op dit over in CS50 IDE.
Dus hier zijn we, en ik zal in te zoomen voor een tweede.
En we hebben een bestand genaamd post.html.
Ik klik op post.html.
Bij hier de top heb ik een heel eenvoudig webformulier.
Het is de vorm die we net zagen op de dia een seconde geleden.
>> Ik kan typen, Doug, en ik kan typ mijn wachtwoord vergeten, wat we allemaal
weet is squadgoals.
En ik zal raken Verzenden.
En blijkbaar, dat onderwerpt aan post.php.
En ik ben blijkbaar afdrukt dat.
Dus ik ben het wegwerken van alle veiligheid dat POST geeft me door gewoon printen
de gebruikersnaam en wachtwoord.
>> De naam van de gebruiker is Doug.
Wachtwoord van de gebruiker is squadgoals.
Hoe heb ik dit doen?
Nou, pop over naar IDE opnieuw voor een tweede.
We zullen beneden scrollen om te nemen een kijkje op post.php, dat was
de actie die ik heb gebruikt om hier te dienen.
Dat was de actie van mijn HTML-formulier.
En dat is alles wat ik doe.
Naam van de gebruiker is, en ik ben druk de inhoud van $ _POST "naam".
En dan het wachtwoord van de gebruiker is $ _POST "password".
Dus ik was gezien het feit dat informatie door het indienen van de HTML-formulier.
En ik kan nu uitpakken met behulp van $ _POST omdat de methode ik zenden
gegevens met die vorm was de POST methode.
>> Nu is het waarschijnlijk niet dus geweldig-- ik ga
om terug te gaan voor een tweede onze set hier--
het is waarschijnlijk niet zo groot als ik ben het indienen van informatie met POST,
die schijnbaar veiliger.
Het is waarschijnlijk niet zo groot als ik doe dat en dan
afdrukken van het wachtwoord van de gebruiker.
Het moet meer veilig.
>> OK, maar het is niet helemaal veilig.
En zo in dit kleine snippet hier wil ik
gewoon uw aandacht vestigen op een aantal beveiliging van gegevens betreft, gewoon iets
na te denken over als je werkt of via het internet.
Dit is gewoon iets om te overwegen.
>> Ik vertelde u dat de informatie via HTTP headers ingediend
wanneer u de POST-methode gebruiken.
Wat betekent dat ze niet helemaal veilig.
Ze zijn moeilijker te vinden dan het gebruik van de GET methode, waarbij
het is gewoon recht in de URL.
Maar er is nog een manier om het te vinden.
En ik wil gewoon om te laten zien je dit zodat je misschien
beginnen te denken over deze als je werkt, of het gebruik van
websites en indienen wachtwoorden, en misschien met behulp
hetzelfde wachtwoord in een veel verschillende plaatsen.
Weet dat is nog steeds eigenlijk vrij makkelijk om uit te vinden het wachtwoord van iemand.
>> En dus even, ik ga naar post2.html.
En het verschil met post2.html en post2.php is vrij subtiel.
Het verschil is gewoon dat ik niet uitprinten
het wachtwoord wanneer ik verzend het formulier.
>> Dus ik ga in te typen, Doug.
En ik ga om te typen in, squadgoals, zelfs
hoewel we weten dat het wachtwoord.
Voordat ik het indienen vormen hoewel, ik ga
openstellen Developer Tools, gewoon om laten zien wat er gaat gebeuren hier.
Dus in Chrome, ik ben gewoon gaan F12 raken.
En dat gaat open mijn Developer Tools aan de rechterkant.
Ik heb het formulier nog niet ingediend.
Nu ga ik raakte toevoegen aan mijn vorm.
En blijkbaar, maakte ik een roepen, of ik een verzoek
om post2.php, wat logisch is.
Ik ga om te klikken op die.
>> Dan hier, ga ik te klikken op Headers.
Er is een heleboel dingen hier aan de hand.
Maar als ik naar beneden scrollen naar de zeer onderkant, bericht rechts er-- mijn agenda
heeft geblokkeerd voor een second-- recht er helemaal onderaan hoek,
name-- Doug, pw-- squadgoals.
Dus ook al ben ik met behulp van de POST methode, die veiliger,
maar wees gewaarschuwd dat als je dat doet, je nog steeds het verzenden van informatie
via HTTP.
En het kan nog steeds gevonden door een tegenstander.
Het is gewoon iets wat we gaan te maken hebben met echt.
Misschien is er een aantal manieren om te versleutelen onze wachtwoorden voordat we sturen ze over,
waarbij een beter zou zijn, die ik hier niet te doen.
>> Maar wees ervan bewust dat de POST methode heeft beperkingen ook.
Het is een verbetering ten opzichte van GET in termen van direct zichtbaar.
Maar het is niet een volledige oplossing.
Dus hier is een voorbeeld van snel een thuis te oefenen
die u kunt gebruiken om een ​​aantal te krijgen de praktijk werken met PHP.
Maak de volgende paar van webpagina's.
De eerste moet gewoon een zeer eenvoudige vormen met één veld en een Submit
knop.
Dus zeer vergelijkbaar met wat we net deed met post.html.
>> En dan de tweede bestand dat u moet maken
is een bestand, een PHP-bestand, dat verwacht input, via POST,
en op basis van wat de gebruiker heeft ingevoerd, waarbij kunt u ervan uitgaan zal een integer zijn.
Je hoeft niet aan een doen foutcontrole of dergelijke.
U kunt de gebruiker ervan uitgaan zal een geheel getal te typen,
of iets dergelijks een geïnterpreteerd door PHP als een geheel in die vorm.
Je wil gewoon een te creëren n door n tafel van vermenigvuldiging.
>> Dus als de gebruiker indient 10, we willen hebben een 10 bij 10 tafel van vermenigvuldiging.
Als de gebruiker dient een 12, wij willen 12 van 12 tafel van vermenigvuldiging.
Zodat je kunt zien wat we rijden naar hier,
zullen we een kijkje nemen op Dit bestand in mijn IDE.
>> Dus hier in IDE, ik heb mult_form.html.
Ik zal het klikt.
Alles wat ik wil doen is het indienen van een waarde.
Type 10, raakte Verzenden.
En blijkbaar mult_table.php die kunnen we aan de top zien dat er in de URL,
Ik ben het creëren van een 10 bij 10 tafel van vermenigvuldiging.
>> Als ik typ 15 en druk op Verzenden, nu heb ik hebben een 15 bij 15 tafel van vermenigvuldiging.
Ik ben natuurlijk niet van plan om te laten zien u de inhoud van mult_table.php,
want dat het leuk zou nemen uit dit thuis te oefenen.
Maar het is een geweldige manier om wat te krijgen de praktijk werken met PHP lussen
en POST, heel simpel, hopelijk stress bijvoorbeeld, net
om een ​​beetje van de praktijk doen.
En ik heb een beetje CSS gaande kreeg hier om mijn individuele tafel maken
cellen gewoon een soort van pop uit een beetje en kijk een beetje meer
zoals een tafel van vermenigvuldiging, in tegenstelling tot alleen tekst gewoon
soort zitten.
De laatste super wereldwijde we praten over in deze video is iets genaamd
$ _SESSION.
En misschien is dit eigenlijk het beste voorbeeld van iets
we zouden wereldwijde overwegen.
Het is een andere array.
Het is weer een associatieve array.
Maar het is toegankelijk via elke PHP-bestand dat bestaat op ons systeem.
>> We hoeven niet in te dienen Informatie één pagina tegelijk
zoals wij dat doen met GET en POST.
Het is er altijd.
En dus dit is geweldig voor een pagina waar u bent aangemeld, bijvoorbeeld,
en u uw login gegevens wilt voortduren van pagina naar pagina naar pagina.
>> Je kunt gewoon een sessie te starten en vervolgens Gebruik $ _SESSION om dingen zoals te redden
naam, of de gebruiker van de gebruiker ID-informatie, enzovoort.
En dat de informatie zal blijven $ _SESSION Totdat u de sessie te vernietigen
een beetje later.
>> Het schrijven van dynamische websites met PHP maakt ze een stuk beter.
Uw sites worden zeer dynamische, en jij niet
al te veel meer doen dan wat zou je anders gewoon hebben gedaan
doet het met HTML.
Maar het vereist de praktijk veel van de praktijk.
>> Je weet al hoe te werken met C, en zo te springen om PHP is niet al te lastig.
Wat is misschien een beetje beetje lastig werkt
met dit nieuwe idee van GET en POST, en misschien het mengen van uw HTML en PHP
samen.
Maar zich ook bewust zijn dat het internet is een enorme opslagplaats van informatie.
En documentatie van PHP is beschikbaar op veel plaatsen, maar misschien wel het meest
canoniek op php.net.
En je kunt daar vinden, veel verschillende functies,
en use cases en voorbeelden upon voorbeelden van voorbeelden.
Waar als je wilt proberen en figuur hoe om iets te doen, zijn de kansen,
iemand is het waarschijnlijk gedaan voor je.
En je kunt ze gebruiken als inspiratie uit te voeren, ongeacht
het is je probeert te implementeren.
>> Ik ben Doug Lloyd.
Dit is CS50.