1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [PHP Web Development] 2 00:00:03,000 --> 00:00:05,000 [Tommy MacWilliam] 3 00:00:05,000 --> 00:00:07,000 [Dit is CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> In deze video zullen we leren over het gebruik van PHP voor webontwikkeling. 5 00:00:11,000 --> 00:00:14,000 PHP is een scripttaal die kan worden gebruikt voor het implementeren 6 00:00:14,000 --> 00:00:17,000 websites op een webserver. 7 00:00:17,000 --> 00:00:21,000 Een webserver is in wezen een machine gewijd aan het verstrekken van de inhoud 8 00:00:21,000 --> 00:00:24,000 die kan worden geraadpleegd via het internet. 9 00:00:24,000 --> 00:00:30,000 Wanneer u navigeren naar een webpagina zoals Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 de code in het bestand genaamd home.php die leeft op een Facebook webserver ergens 11 00:00:35,000 --> 00:00:38,000 zullen worden uitgevoerd op die server. 12 00:00:38,000 --> 00:00:41,000 Deze code zal waarschijnlijk genereren sommige uitgang 13 00:00:41,000 --> 00:00:43,000 die op hun beurt van de server wordt verzonden 14 00:00:43,000 --> 00:00:45,000 naar uw webbrowser. 15 00:00:45,000 --> 00:00:49,000 We zullen gebruik maken van de CS50 apparaat als een webserver. 16 00:00:49,000 --> 00:00:51,000 Uw machine zal waarschijnlijk niet zo krachtig als de machines zijn 17 00:00:51,000 --> 00:00:57,000 in een Facebook-datacenter, maar je zult geen probleem hebben het te gebruiken voor web ontwikkeling. 18 00:00:57,000 --> 00:01:05,000 >> Wanneer we navigeren naar een URL zoals http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 we het apparaat te configureren via een applicatie genaamd de Apache HTTP server 20 00:01:10,000 --> 00:01:19,000 om te zoeken naar een bestand genaamd hello.php binnenkant van huis / jharvard / vhosts / localhosts / html standaard. 21 00:01:19,000 --> 00:01:23,000 Als dat bestand bestaat dan Apache zal de PHP interpreter gebruiken 22 00:01:23,000 --> 00:01:27,000 aan de PHP-code in hello.php voeren. 23 00:01:27,000 --> 00:01:31,000 Als dat bestand niet bestaat dan Apache zal niet gevonden fout gooien 24 00:01:31,000 --> 00:01:36,000 of een 404-fout, die je waarschijnlijk hebt gezien tijdens het surfen op het web. 25 00:01:36,000 --> 00:01:40,000 >> Laten we eens een kijkje nemen op hello.php. 26 00:01:40,000 --> 00:01:45,000 We kunnen hier zien dat hello.php genereert een signaal lijn van de output. 27 00:01:45,000 --> 00:01:51,000 Toen liepen we hello.php op de commandoregel via php hello.php 28 00:01:51,000 --> 00:01:54,000 de output is afgedrukt op de terminal. 29 00:01:54,000 --> 00:01:58,000 Nu, als we toegang tot dit bestand via een URL in de webbrowser 30 00:01:58,000 --> 00:02:01,000 de productie zal worden verzonden naar de webbrowser, 31 00:02:01,000 --> 00:02:09,000 dus op weg naar de URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 kunnen we de output zien in onze web browser. 33 00:02:12,000 --> 00:02:17,000 >> Laten we proberen het toevoegen van een printf om onze programma Hello World. 34 00:02:17,000 --> 00:02:23,000 Oke, laten we terug naar de webbrowser en zien wat we hebben. 35 00:02:23,000 --> 00:02:25,000 Interessant. 36 00:02:25,000 --> 00:02:28,000 In plaats van het afdrukken van een andere lijn op zijn eigen lijn, zoals je zou hebben gezien 37 00:02:28,000 --> 00:02:32,000 in de terminal, het lijkt alsof het werd smushed op dezelfde lijn 38 00:02:32,000 --> 00:02:36,000 als de andere printf, hoeft dus misschien nieuwe lijnen werken niet in PHP. 39 00:02:36,000 --> 00:02:38,000 Niet helemaal. 40 00:02:38,000 --> 00:02:41,000 Vergeet niet dat HTML doorgaans wordt gebruikt om webpagina's te creëren 41 00:02:41,000 --> 00:02:44,000 dat kan worden weergegeven door webbrowsers. 42 00:02:44,000 --> 00:02:49,000 Niet alleen is de string hello from php niet geldig HTML, 43 00:02:49,000 --> 00:02:53,000 maar herinneren dat we de \ n teken in HTML niet kunt gebruiken 44 00:02:53,000 --> 00:02:55,000 om een ​​regeleinde te maken. 45 00:02:55,000 --> 00:03:01,000 In plaats van simpelweg het uitvoeren van een reeks laten we naar correcte HTML. 46 00:03:01,000 --> 00:03:04,000 Door het gebruik van paragraaf-tags elk van onze printf oproepen 47 00:03:04,000 --> 00:03:07,000 zal op zijn eigen regel worden weergegeven, 48 00:03:07,000 --> 00:03:11,000 dus nu wanneer we een bezoek aan de URL die wijst naar valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 zien we de output die we zoeken. 51 00:03:19,000 --> 00:03:22,000 >> Nu, als we de bron van deze pagina te bekijken 52 00:03:22,000 --> 00:03:25,000 kunnen we zien dat we nu op zoek naar geldige HTML, 53 00:03:25,000 --> 00:03:28,000 die we gemaakt op basis van PHP. 54 00:03:28,000 --> 00:03:31,000 Zet al onze HTML binnen printf oproepen 55 00:03:31,000 --> 00:03:34,000 is uiteraard gaat echt vervelend. 56 00:03:34,000 --> 00:03:38,000 Gelukkig kunnen we gemakkelijk HTML en PHP mengen 57 00:03:38,000 --> 00:03:41,000 in het gelijk. php-bestand. 58 00:03:41,000 --> 00:03:47,000 Vergeet niet dat al onze PHP-code moet worden ingesloten in 00:03:49,000 en>. 60 00:03:49,000 --> 00:03:52,000 Alles wat niet binnen deze scheidingstekens wordt omsloten 61 00:03:52,000 --> 00:03:55,000 gewoon als output naar de browser gestuurd 62 00:03:55,000 --> 00:03:57,000 plaats wordt uitgevoerd. 63 00:03:57,000 --> 00:04:01,000 Dat betekent dat we zoiets doen. 64 00:04:01,000 --> 00:04:05,000 We kunnen gewoon schrijven HTML binnenkant van onze php-bestand. 65 00:04:05,000 --> 00:04:11,000 en steek vervolgens PHP blokken waar we graag wat php code die wordt uitgevoerd. 66 00:04:11,000 --> 00:04:15,000 Hier definiëren we een aantal variabelen aan de bovenkant van het bestand, 67 00:04:15,000 --> 00:04:19,000 en later te printen we ze uit de binnenkant van onze HTML. 68 00:04:19,000 --> 00:04:27,000 Nu als we bezoeken deze URL, http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 kunnen we onze geëvalueerd PHP zie binnenkant van onze HTML. 70 00:04:33,000 --> 00:04:36,000 >> Laten we nu eens kijken hoe we de gegevens kunnen doorgeven 71 00:04:36,000 --> 00:04:39,000 tussen onze verschillende PHP-pagina's. 72 00:04:39,000 --> 00:04:51,000 Plaats van te zeggen 73 00:04:51,000 --> 00:04:58,000 kunnen we gewoon zeggen 00:05:01,000 en>. 75 00:05:01,000 --> 00:05:03,000 Laten we nu eens kijken naar hoe we de gegevens kunnen doorgeven 76 00:05:03,000 --> 00:05:06,000 tussen onze verschillende PHP-pagina's. 77 00:05:06,000 --> 00:05:11,000 Een manier kunnen we dat doen is om informatie te coderen in de URL van een pagina. 78 00:05:11,000 --> 00:05:14,000 Tijdens het surfen op het web, kan je zijn opgevallen dat bepaalde URL's 79 00:05:14,000 --> 00:05:20,000 bevatten? gevolgd door een string met ampersand en gelijke borden. 80 00:05:20,000 --> 00:05:23,000 Dit deel van de URL is bekend als de query string, 81 00:05:23,000 --> 00:05:29,000 en hiermee kun je effectief argumenten door te geven aan uw PHP-script. 82 00:05:29,000 --> 00:05:34,000 De query string bestaat uit de belangrijkste waarde paren, net als een hash table. 83 00:05:34,000 --> 00:05:38,000 Een gelijk-teken scheidt een sleutel en de bijbehorende waarde 84 00:05:38,000 --> 00:05:41,000 terwijl ampersand scheiden paren. 85 00:05:41,000 --> 00:06:05,000 Een URL die lijkt op http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 heeft 2 belangrijke waarde-paren in de query string. 87 00:06:09,000 --> 00:06:12,000 De sleutel foo toegewezen aan de waarde bar, 88 00:06:12,000 --> 00:06:16,000 en de sleutel baz kaarten om de waarde qux. 89 00:06:16,000 --> 00:06:23,000 We kunnen eenvoudig toegang tot deze belangrijke waarde paren met behulp van een speciale variabele in PHP, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET Is een associatieve array 92 00:06:32,000 --> 00:06:36,000 dat wordt automatisch gevuld met query string data. 93 00:06:36,000 --> 00:06:46,000 Dat betekent dat bij deze URL $ _GET ["foo"] 94 00:06:46,000 --> 00:06:49,000 gelijk aan de string balk zijn. 95 00:06:49,000 --> 00:06:56,000 >> Laten we eens een kijkje nemen op get.php te zien $ _GET in actie. 96 00:06:56,000 --> 00:07:00,000 Hier gebruiken we een functie genaamd var_dump, 97 00:07:00,000 --> 00:07:03,000 die wanneer gegeven een matrix of andere variabele 98 00:07:03,000 --> 00:07:05,000 zal het uit te drukken voor ons. 99 00:07:05,000 --> 00:07:12,000 Als we nu gewoon toegang http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 dan zullen we een lege array zien want we hebben nog geen query string. 101 00:07:17,000 --> 00:07:29,000 Als we bieden wel een query string via http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 dan kunnen we zien dat de $ _GET variabele zal bevatten 103 00:07:34,000 --> 00:07:37,000 belangrijke waarde paren de query string. 104 00:07:37,000 --> 00:07:42,000 Maar wat als we niet willen dat onze gegevens in de URL van een pagina te zetten? 105 00:07:42,000 --> 00:07:46,000 Voor grote hoeveelheden gegevens, kan dit resulteren in een aantal mooie lelijke URL's 106 00:07:46,000 --> 00:07:49,000 die gaan onze glanzende website kijken kreupel maken. 107 00:07:49,000 --> 00:07:52,000 We kunnen in plaats daarvan de query string in het lichaam 108 00:07:52,000 --> 00:07:57,000 van de HTTP-verzoeken in plaats van de URL van het verzoek. 109 00:07:57,000 --> 00:08:02,000 Dan kunnen we PHP $ _POST variabele 110 00:08:02,000 --> 00:08:05,000 om de sleutelwaarde paren. 111 00:08:05,000 --> 00:08:10,000 Een manier om dit te doen is via een HTML-formulier. 112 00:08:10,000 --> 00:08:13,000 Hier hebben we een eenvoudige HTML-formulier. 113 00:08:13,000 --> 00:08:17,000 Let hier op dat de methode attribuut van dit formulier is bericht. 114 00:08:17,000 --> 00:08:21,000 Dit vertelt de browser om de belangrijkste waarde-paren van het formulier gezet 115 00:08:21,000 --> 00:08:25,000 in het lichaam van het verzoek plaats van de URL. 116 00:08:25,000 --> 00:08:28,000 >> Als we gebruik maken van de waarde te krijgen voor dit kenmerk 117 00:08:28,000 --> 00:08:32,000 Toets vervolgens waarde paren van het formulier zou in plaats daarvan gaan in de query string, 118 00:08:32,000 --> 00:08:36,000 zodat we ze bereiken via $ _GET weer. 119 00:08:36,000 --> 00:08:42,000 De actie attribuut van het formulier vertelt de browser waar de gegevens te verzenden. 120 00:08:42,000 --> 00:08:46,000 Hier onze 2 ingang elementen naam attributen. 121 00:08:46,000 --> 00:08:51,000 De waarde van de naam attributen dienen als sleutels in de gegevens, 122 00:08:51,000 --> 00:08:56,000 en de waarden van de tekst ingangen waarden van die sleutels worden. 123 00:08:56,000 --> 00:08:59,000 Laten we nu eens een kijkje nemen op post.php, 124 00:08:59,000 --> 00:09:03,000 het bestand dat deze vorm is het indienen van aan. 125 00:09:03,000 --> 00:09:10,000 Net zoals we eerder deden we gewoon het weergeven van de inhoud van de $ _POST variabele. 126 00:09:10,000 --> 00:09:18,000 >> Laten we navigeren naar het formulier met http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Nu als we het formulier kunnen we zien dat de gegevens van form.php 128 00:09:23,000 --> 00:09:30,000 wordt doorgegeven aan post.php zonder het toevoegen van een query string naar de URL. 129 00:09:30,000 --> 00:09:35,000 Nu hebben we gezien 2 verschillende manieren van het doorgeven van gegevens tussen PHP-pagina's, 130 00:09:35,000 --> 00:09:37,000 GET en POST. 131 00:09:37,000 --> 00:09:41,000 In ons voorbeeld, gebruikten we 2 verschillende soorten van HTTP-verzoeken. 132 00:09:41,000 --> 00:09:45,000 Zoals je zou verwachten, is een GET-verzoek gebruikt wanneer we bevolkt 133 00:09:45,000 --> 00:09:51,000 $ _GET Uit de URL, en een post verzoek werd gebruikt 134 00:09:51,000 --> 00:09:55,000 toen we bevolkt $ _POST. 135 00:09:55,000 --> 00:09:59,000 Bij het ontwerpen van uw web-apps is het een goede vuistregel om get verzoeken te gebruiken 136 00:09:59,000 --> 00:10:03,000 wanneer uw app alleen gegevens zullen lezen, en post aanvragen 137 00:10:03,000 --> 00:10:05,000 wanneer uw app data zal schrijven. 138 00:10:05,000 --> 00:10:09,000 Zo zal een zoekopdracht gegevens van uw app te lezen, 139 00:10:09,000 --> 00:10:12,000 dus een GET-verzoek zinvol. 140 00:10:12,000 --> 00:10:17,000 Aan de andere kant, zal je app gegevens te schrijven via iets als een inschrijfformulier, 141 00:10:17,000 --> 00:10:22,000 dus een post verzoek zou meer zin te maken, en dat is een overzicht van enkele van de technieken 142 00:10:22,000 --> 00:10:26,000 we zullen gebruiken in CS50 om websites te maken met behulp van PHP. 143 00:10:26,000 --> 00:10:30,000 >> Mijn naam is Tommy, en dit is CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]