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 [To je CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> U ovom videu, mi ćemo učiti o korištenju PHP za izradu web stranica. 5 00:00:11,000 --> 00:00:14,000 PHP je skriptni jezik koji se mogu koristiti za provedbu 6 00:00:14,000 --> 00:00:17,000 web stranice na web poslužitelju. 7 00:00:17,000 --> 00:00:21,000 Web server je u suštini stroj posvećena pružanju sadržaj 8 00:00:21,000 --> 00:00:24,000 koja se može pristupiti putem interneta. 9 00:00:24,000 --> 00:00:30,000 Prilikom kretanja na web stranici kao Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 kod u datoteci naziva home.php koja živi na Facebooku web poslužitelju negdje 11 00:00:35,000 --> 00:00:38,000 će se izvršiti na tom poslužitelju. 12 00:00:38,000 --> 00:00:41,000 Ovaj broj će vjerojatno generirati neki izlaz 13 00:00:41,000 --> 00:00:43,000 što će biti poslan s poslužitelja 14 00:00:43,000 --> 00:00:45,000 na svoju web pregledniku. 15 00:00:45,000 --> 00:00:49,000 Mi ćemo se pomoću CS50 aparata kao web server. 16 00:00:49,000 --> 00:00:51,000 Vaš uređaj vjerojatno neće biti tako snažno kao na strojeve 17 00:00:51,000 --> 00:00:57,000 u Facebook podatkovnom centru, ali ćete imati problema koristeći ga za izradu web stranica. 18 00:00:57,000 --> 00:01:05,000 >> Kad smo došli do URL-a kao http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 smo konfigurirati uređaj putem aplikacije pod nazivom Apache HTTP poslužitelja 20 00:01:10,000 --> 00:01:19,000 tražiti datoteka pod nazivom hello.php unutar kuće / jharvard / vhosts / localhosts / html po defaultu. 21 00:01:19,000 --> 00:01:23,000 Ako da datoteka postoji onda Apache će koristiti PHP tumača 22 00:01:23,000 --> 00:01:27,000 izvršiti PHP kod u hello.php. 23 00:01:27,000 --> 00:01:31,000 Ako je to slika ne postoji onda Apache će baciti nije pronađena greška 24 00:01:31,000 --> 00:01:36,000 ili 404 pogrešaka, koje ste vjerojatno vidjeli tijekom pregledavanja weba. 25 00:01:36,000 --> 00:01:40,000 >> Idemo pogledati hello.php. 26 00:01:40,000 --> 00:01:45,000 Možemo vidjeti da se ovdje hello.php generira signal liniju izlaza. 27 00:01:45,000 --> 00:01:51,000 Kad smo trčali hello.php na zapovjednoj liniji preko php hello.php 28 00:01:51,000 --> 00:01:54,000 da je izlaz bio tiskan na terminal. 29 00:01:54,000 --> 00:01:58,000 Sada, kada smo pristupili ovoj datoteku preko URL-a u web pregledniku 30 00:01:58,000 --> 00:02:01,000 njegov izlaz će biti poslan na web-preglednik, 31 00:02:01,000 --> 00:02:09,000 pa ide na URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 možemo vidjeti izlaz na našim web pregledniku. 33 00:02:12,000 --> 00:02:17,000 >> Pokušajmo dodao još jedan printf našoj svjetskoj programu Hello. 34 00:02:17,000 --> 00:02:23,000 Ok, neka je glavu natrag u web pregledniku i vidjeti što imamo. 35 00:02:23,000 --> 00:02:25,000 Zanimljivo. 36 00:02:25,000 --> 00:02:28,000 Umjesto ispisa još jednu crtu na vlastitu liniju, kao što bi vidio 37 00:02:28,000 --> 00:02:32,000 u terminal, to izgleda kao da je dobio smushed na istoj liniji 38 00:02:32,000 --> 00:02:36,000 kao drugi printf, pa možda nove linije ne rade u PHP-u. 39 00:02:36,000 --> 00:02:38,000 Nije dosta. 40 00:02:38,000 --> 00:02:41,000 Ne zaboravite da je HTML obično se koristi za izradu web stranice 41 00:02:41,000 --> 00:02:44,000 koja se može prikazati web preglednicima. 42 00:02:44,000 --> 00:02:49,000 Ne samo da je niz bok s php nije važeći HTML, 43 00:02:49,000 --> 00:02:53,000 ali podsjećaju da ne možemo koristiti \ n lik u HTML 44 00:02:53,000 --> 00:02:55,000 stvoriti prijelom retka. 45 00:02:55,000 --> 00:03:01,000 Umjesto da jednostavno izlaza gudački Idemo izlazni valjani HTML. 46 00:03:01,000 --> 00:03:04,000 Korištenjem stavka oznake svaki od naših printf poziva 47 00:03:04,000 --> 00:03:07,000 će biti prikazan u svom retku, 48 00:03:07,000 --> 00:03:11,000 pa sad kad smo posjetite URL koji upućuje na valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 vidimo izlaz koji smo tražili. 51 00:03:19,000 --> 00:03:22,000 >> Sada, ako ćemo vidjeti izvor ove stranice 52 00:03:22,000 --> 00:03:25,000 možemo vidjeti da mi sada gledamo u važećem HTML, 53 00:03:25,000 --> 00:03:28,000 koje smo stvorili s PHP. 54 00:03:28,000 --> 00:03:31,000 Stavljajući sve naše HTML unutar printf pozive 55 00:03:31,000 --> 00:03:34,000 je, naravno, neće dobiti jako neugodno. 56 00:03:34,000 --> 00:03:38,000 Srećom lako možemo miješati HTML i PHP 57 00:03:38,000 --> 00:03:41,000 u isto. PHP datoteke. 58 00:03:41,000 --> 00:03:47,000 Zapamtite, sve naše PHP kod mora biti unutar 00:03:49,000 i?>. 60 00:03:49,000 --> 00:03:52,000 Sve što nije zatvorena unutar tih graničnika 61 00:03:52,000 --> 00:03:55,000 će jednostavno biti poslana kao izlaz na pregledniku 62 00:03:55,000 --> 00:03:57,000 umjesto da su pogubljeni. 63 00:03:57,000 --> 00:04:01,000 To znači da možemo učiniti nešto poput ovoga. 64 00:04:01,000 --> 00:04:05,000 Mi se jednostavno može napisati HTML unutar našeg. Php datoteku 65 00:04:05,000 --> 00:04:11,000 a zatim umetnite PHP blokova gdje god smo htjeli neki php koda treba izvršiti. 66 00:04:11,000 --> 00:04:15,000 Ovdje ćemo odrediti nekoliko varijabli na vrhu datoteke, 67 00:04:15,000 --> 00:04:19,000 a kasnije smo ih ispisati unutar našeg HTML. 68 00:04:19,000 --> 00:04:27,000 Sada, ako ćemo posjetiti ovaj URL, http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 možemo vidjeti našu ocjenjuje PHP unutar našeg HTML. 70 00:04:33,000 --> 00:04:36,000 >> Sada ćemo pogledati kako možemo proći podatke 71 00:04:36,000 --> 00:04:39,000 između naših različitih PHP stranice. 72 00:04:39,000 --> 00:04:51,000 Umjesto da se govori 73 00:04:51,000 --> 00:04:58,000 možemo jednostavno reći: 00:05:01,000 i?>. 75 00:05:01,000 --> 00:05:03,000 Idemo sada pogledati kako možemo proći podatke 76 00:05:03,000 --> 00:05:06,000 između naših različitih PHP stranice. 77 00:05:06,000 --> 00:05:11,000 Jedan način na koji možemo učiniti da se za kodiranje informacija u URL stranice. 78 00:05:11,000 --> 00:05:14,000 Prilikom pregledavanja weba, možda ste primjetili da neki URL-ova 79 00:05:14,000 --> 00:05:20,000 sadrže? nakon čega slijedi niz koji sadrži znakove za i jednake znakove. 80 00:05:20,000 --> 00:05:23,000 Ovaj dio URL-a je poznat kao niz upita, 81 00:05:23,000 --> 00:05:29,000 a to vam omogućuje učinkovito proslijediti argumente PHP skripte. 82 00:05:29,000 --> 00:05:34,000 Niza upita se sastoji od ključnih parova vrijednosti, baš kao i hash tablicu. 83 00:05:34,000 --> 00:05:38,000 Znak jednakosti dijeli ključ i odgovarajuće vrijednosti 84 00:05:38,000 --> 00:05:41,000 a znakove za odvajanje para. 85 00:05:41,000 --> 00:06:05,000 URL koji izgleda kao http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 ima 2 para ključne vrijednosti u nizu upita. 87 00:06:09,000 --> 00:06:12,000 Ključ Foo karata na šanku vrijednosti, 88 00:06:12,000 --> 00:06:16,000 i ključ baz karata na vrijednosti qux. 89 00:06:16,000 --> 00:06:23,000 Mi se lako može pristupiti tim ključnim parova vrijednosti pomoću posebnog varijable u PHP-u, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET Je asocijativni niz 92 00:06:32,000 --> 00:06:36,000 koji se automatski naseljena s upitom podataka. 93 00:06:36,000 --> 00:06:46,000 To znači da je dao ovu URL $ _GET ["foo"] 94 00:06:46,000 --> 00:06:49,000 će biti jednaka niza bara. 95 00:06:49,000 --> 00:06:56,000 >> Idemo pogledati get.php vidjeti $ _GET u akciji. 96 00:06:56,000 --> 00:07:00,000 Ovdje smo koristeći funkciju nazvanu var_dump, 97 00:07:00,000 --> 00:07:03,000 koji kada se daje niz ili drugu varijablu 98 00:07:03,000 --> 00:07:05,000 će se ispisati za nas. 99 00:07:05,000 --> 00:07:12,000 Sada, ako mi jednostavno pristupiti http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 onda ćemo vidjeti prazan niz, jer nismo ponudili upita. 101 00:07:17,000 --> 00:07:29,000 Ako mi daju upita putem http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 onda možemo vidjeti da $ _GET varijabla će sadržavati 103 00:07:34,000 --> 00:07:37,000 Ključni parova vrijednost niza upita je. 104 00:07:37,000 --> 00:07:42,000 No, što ako ne želimo da nas stavi podatke unutar URL stranice? 105 00:07:42,000 --> 00:07:46,000 Za velike količine podataka, to može rezultirati nekim prilično ružna URL-ova 106 00:07:46,000 --> 00:07:49,000 da ćemo napraviti naš sjajni izgled web stranice isprika. 107 00:07:49,000 --> 00:07:52,000 Umjesto toga možemo staviti upita u tijelo 108 00:07:52,000 --> 00:07:57,000 od HTTP zahtjeva, a ne URL Zahtjev je. 109 00:07:57,000 --> 00:08:02,000 Tada možemo koristiti PHP $ _POST varijable 110 00:08:02,000 --> 00:08:05,000 pristupiti ključne parova vrijednosti. 111 00:08:05,000 --> 00:08:10,000 Jedan od načina da to učinite je kroz HTML obliku. 112 00:08:10,000 --> 00:08:13,000 Ovdje imamo jednostavnu HTML obrasca. 113 00:08:13,000 --> 00:08:17,000 Uočite da se ovdje metoda atribut tom obliku poštom. 114 00:08:17,000 --> 00:08:21,000 To govori pregledniku da stavi parove ključeva vrijednosti obrasca 115 00:08:21,000 --> 00:08:25,000 u tijelo zahtjeva nego URL. 116 00:08:25,000 --> 00:08:28,000 >> Ako bismo se koristiti vrijednost dobiti za ovaj atribut 117 00:08:28,000 --> 00:08:32,000 onda ključnih parova vrijednosti obrasca će umjesto toga ići u nizu upita, 118 00:08:32,000 --> 00:08:36,000 pa smo ih mogli ponovno pristupiti putem $ _GET. 119 00:08:36,000 --> 00:08:42,000 Action atribut obliku govori pregledniku gdje poslati podatke. 120 00:08:42,000 --> 00:08:46,000 Evo naša 2 ulazni elementi imaju ime atribute. 121 00:08:46,000 --> 00:08:51,000 Vrijednost imena atributa će poslužiti kao tipke na našim podacima, 122 00:08:51,000 --> 00:08:56,000 i vrijednosti tekst ulaza će postati vrijednosti tih tipki. 123 00:08:56,000 --> 00:08:59,000 Sada ćemo pogledati post.php, 124 00:08:59,000 --> 00:09:03,000 file da se ovaj oblik podnošenje. 125 00:09:03,000 --> 00:09:10,000 Baš kao što smo i prije, mi jednostavno si prikazivanja sadržaja $ _POST varijable. 126 00:09:10,000 --> 00:09:18,000 >> Idemo navigaciju na obrascu s http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Sada kada smo dostaviti obrazac možemo vidjeti da su podaci iz form.php 128 00:09:23,000 --> 00:09:30,000 je prošao post.php bez dodavanjem niza upita na URL. 129 00:09:30,000 --> 00:09:35,000 Sada smo vidjeli dva različita načina donošenja podataka između PHP stranice, 130 00:09:35,000 --> 00:09:37,000 dobiti i objaviti. 131 00:09:37,000 --> 00:09:41,000 U našim primjerima, koristili smo dvije različite vrste HTTP zahtjeva. 132 00:09:41,000 --> 00:09:45,000 Kao što ste mogli očekivati, GET zahtjev je korišten kada smo naseljena 133 00:09:45,000 --> 00:09:51,000 Korišten $ _GET iz URL-a, i post zahtjev 134 00:09:51,000 --> 00:09:55,000 kad smo naseljena $ _POST. 135 00:09:55,000 --> 00:09:59,000 U dizajniranje web aplikacije je dobro pravilo od oka koristiti GET zahtjeva 136 00:09:59,000 --> 00:10:03,000 kada je vaš app će čitati samo podatke, i poslije zahtjeva 137 00:10:03,000 --> 00:10:05,000 kada je vaš app će pisati podatke. 138 00:10:05,000 --> 00:10:09,000 Na primjer, upit za pretraživanje će čitati podatke iz svoje aplikacije, 139 00:10:09,000 --> 00:10:12,000 pa GET zahtjev ima smisla. 140 00:10:12,000 --> 00:10:17,000 S druge strane, vaš app će pisati podatke putem nešto poput prijavnicu, 141 00:10:17,000 --> 00:10:22,000 pa nakon Zahtjev bi više smisla, a to je pregled nekih od tehnika 142 00:10:22,000 --> 00:10:26,000 ćemo koristiti u CS50 za stvaranje web stranice koristeći PHP. 143 00:10:26,000 --> 00:10:30,000 >> Moje ime je Tommy, a to je CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]