1 00:00:00,000 --> 00:00:11,470 2 00:00:11,470 --> 00:00:12,764 >> SPEAKER 1: Tutti, proprio bentornato. 3 00:00:12,764 --> 00:00:14,140 Questo è CS50. 4 00:00:14,140 --> 00:00:16,800 E questo è l'inizio di settimana nove. 5 00:00:16,800 --> 00:00:19,960 E questo è l'inizio del resto il vostro tempo a CS50, in cui abbiamo 6 00:00:19,960 --> 00:00:23,170 transizione ora, finalmente, al web aspetto del corso, dove si 7 00:00:23,170 --> 00:00:26,200 scoprire che un sacco di fondamenti che stiamo esportando per settimane 8 00:00:26,200 --> 00:00:29,270 ancora tornare a visitare, o perseguitare, noi. 9 00:00:29,270 --> 00:00:33,440 Ma ora, ci si accorge che si tratta di un ordine di grandezza più facile 10 00:00:33,440 --> 00:00:36,540 svolgere determinati compiti e risolvere alcuni problemi - 11 00:00:36,540 --> 00:00:41,050 tanto è vero che anche se si pensava certi insiemi di problemi erano divertenti nella loro 12 00:00:41,050 --> 00:00:44,200 proprio modo, penso che troverete che p set 7, pag impostato 8, e poi, 13 00:00:44,200 --> 00:00:47,990 in ultima analisi, il progetto finale sarà tanto più gratificante perché sarete 14 00:00:47,990 --> 00:00:51,830 scopriamo che cominciamo a dare per scontato ora le cose come la gestione della memoria, e 15 00:00:51,830 --> 00:00:54,190 puntatori, e quello che sta succedendo sul sotto la cappa. 16 00:00:54,190 --> 00:00:57,310 E ancora, tematici, durante tutto il semestre è stata questa stratificazione 17 00:00:57,310 --> 00:00:58,030 e stratificazione. 18 00:00:58,030 --> 00:01:00,530 E ora siamo sorta di up qui, in piedi sul 19 00:01:00,530 --> 00:01:01,930 spalle di settimane passate. 20 00:01:01,930 --> 00:01:05,360 >> Ora, da ricordare l'ultima volta che abbiamo parlato di come la connessione internet funzionava. 21 00:01:05,360 --> 00:01:08,120 E questo era forse un semplificazione eccessiva, ma ricordate che 22 00:01:08,120 --> 00:01:12,960 ogni computer del mondo ha un IP affrontare, anche se questo è un po 'un 23 00:01:12,960 --> 00:01:14,570 semplificazione ancora. 24 00:01:14,570 --> 00:01:18,180 E tali indirizzi vengono utilizzati per univocamente identificare le macchine in modo che 25 00:01:18,180 --> 00:01:22,010 quando si inviano informazioni o pacchetti, così dire, possono avere una origine 26 00:01:22,010 --> 00:01:24,000 indirizzo e di un indirizzo di destinazione. 27 00:01:24,000 --> 00:01:27,830 E quegli stessi indirizzi IP possono essere utilizzati sia per il bene e anche per il male, 28 00:01:27,830 --> 00:01:29,270 per tenere traccia di te, per esempio. 29 00:01:29,270 --> 00:01:32,200 In realtà, ognuno di voi con un computer portatile aprire ora, o un telefono in 30 00:01:32,200 --> 00:01:35,070 tasca, ha un indirizzo IP sulla rete di Harvard. 31 00:01:35,070 --> 00:01:39,120 E non è così difficile correlare che a chi e dove si 32 00:01:39,120 --> 00:01:40,180 sono in questi giorni. 33 00:01:40,180 --> 00:01:42,090 Ma più su che forse in futuro. 34 00:01:42,090 --> 00:01:46,510 >> Ora ho pensato di riportare un po 'di ricordi di [? migliorare?] e darà 35 00:01:46,510 --> 00:01:49,360 un altro clip da uno spettacolo potrebbe trovare familiare. 36 00:01:49,360 --> 00:01:52,710 Se potessimo abbassare le luci per pochi secondi. 37 00:01:52,710 --> 00:01:53,960 Lo spettacolo Numb3rs. 38 00:01:53,960 --> 00:01:57,510 39 00:01:57,510 --> 00:02:00,540 >> SPEAKER 2: E 'un indirizzo IPP4 32 bit. 40 00:02:00,540 --> 00:02:01,610 >> SPEAKER 3: IPP, come in internet? 41 00:02:01,610 --> 00:02:02,968 >> SPEAKER 2: rete privata. 42 00:02:02,968 --> 00:02:04,960 Alla rete privata di Amita. 43 00:02:04,960 --> 00:02:16,930 44 00:02:16,930 --> 00:02:19,602 Lei è così sorprendente. 45 00:02:19,602 --> 00:02:21,030 >> SPEAKER 3: Vieni, Charlie. 46 00:02:21,030 --> 00:02:21,490 >> SPEAKER 2: E '. 47 00:02:21,490 --> 00:02:22,470 Un indirizzo IP specchio. 48 00:02:22,470 --> 00:02:27,680 Sta facendoci guardare ciò che lei sta facendo in tempo reale. 49 00:02:27,680 --> 00:02:30,930 >> Speaker 1: OK, quindi un po 'di cose sbagliato in questo quadro. 50 00:02:30,930 --> 00:02:32,920 Così uno, e questo è accettabile, questo è in realtà 51 00:02:32,920 --> 00:02:34,400 Non è un indirizzo IP valido. 52 00:02:34,400 --> 00:02:38,190 Un indirizzo IP valido deve essere numeri della forma w.x.y.z, dove ognuno di 53 00:02:38,190 --> 00:02:40,000 quelle lettere è da 0 a 255. 54 00:02:40,000 --> 00:02:42,330 Ma va bene così, perché proprio come il film in cui falsi numeri di telefono, 55 00:02:42,330 --> 00:02:43,520 fingono indirizzi IP. 56 00:02:43,520 --> 00:02:45,230 In realtà non ha colpito i server reali. 57 00:02:45,230 --> 00:02:46,760 >> Ma si badi bene, questo è un browser. 58 00:02:46,760 --> 00:02:50,760 E browser non partono output codice del computer come questo. 59 00:02:50,760 --> 00:02:54,230 E se guardiamo un po 'più a fondo, notiamo che la lingua che stanno vedendo 60 00:02:54,230 --> 00:02:57,040 sullo schermo è un linguaggio chiamato Objective C, che è la lingua in 61 00:02:57,040 --> 00:02:59,520 quali applicazioni per iPhone sono scritte, in particolare quelli che coinvolgono 62 00:02:59,520 --> 00:03:03,540 pastelli, come si può vedere da il codice sorgente qui. 63 00:03:03,540 --> 00:03:06,600 64 00:03:06,600 --> 00:03:07,560 >> OK, ho pensato che questo fosse divertente. 65 00:03:07,560 --> 00:03:12,240 Quindi questo frammento di codice non ha assolutamente niente a che fare con tutto ciò che questo 66 00:03:12,240 --> 00:03:13,940 episodio particolare era circa. 67 00:03:13,940 --> 00:03:17,590 Così lo scherzo è una sorta di sulla gente dando per scontato questo. 68 00:03:17,590 --> 00:03:20,220 Ma questo non è tutto così difficile da ottenere questi dettagli tecnici giusti. 69 00:03:20,220 --> 00:03:21,980 E vorrei incoraggiarvi. 70 00:03:21,980 --> 00:03:25,530 E in realtà, il 50 potrebbe benissimo rovinare un sacco di programmi TV e film o si 71 00:03:25,530 --> 00:03:27,320 perché ci si accorge che è solo non è possibile quello che stanno 72 00:03:27,320 --> 00:03:28,630 facendo sullo schermo. 73 00:03:28,630 --> 00:03:31,750 Ma, in effetti, questo è il codice che si potrebbe vederlo in una applicazione per iPhone 74 00:03:31,750 --> 00:03:33,640 o applicazione di Mac OS. 75 00:03:33,640 --> 00:03:35,685 Non ha niente a tutti a che fare con la sicurezza. 76 00:03:35,685 --> 00:03:38,610 Quindi tenete gli occhi aperti per più tali cose divertenti come quella. 77 00:03:38,610 --> 00:03:42,720 >> Ma oggi cominciamo a tuffarsi nella realtà profondamente a tutta una gamma di lingue. 78 00:03:42,720 --> 00:03:45,410 Un infatti, uno dei globale takeaway di questa porzione di 79 00:03:45,410 --> 00:03:51,815 Naturalmente non è quello di imparare a programmare in PHP, non per imparare SQL per sé, non 80 00:03:51,815 --> 00:03:58,100 per imparare JavaScript per sé, ma piuttosto per insegnare a te stesso come insegnare 81 00:03:58,100 --> 00:04:02,030 te nuovi linguaggi, perché, in effetti, cominciamo a prendere ora l' 82 00:04:02,030 --> 00:04:06,020 ruote di formazione off in modo che, dopo fine del corso, non si aspetta un 20 83 00:04:06,020 --> 00:04:08,890 specifica pagina di dirvi come per implementare qualche programma. 84 00:04:08,890 --> 00:04:12,970 Hai ingredienti sufficienti nel tuo mente, e abbastanza strumenti nel vostro strumento 85 00:04:12,970 --> 00:04:15,750 Kit, con cui iniziare a costruire soluzioni ai problemi di interesse per 86 00:04:15,750 --> 00:04:19,130 per qualche gruppo di studenti, per un po ' progetto di ricerca, o davvero qualsiasi cosa 87 00:04:19,130 --> 00:04:20,140 di interesse per voi. 88 00:04:20,140 --> 00:04:24,150 >> Quindi, verso quel fine, ricordare che questo è stato l'immagine che ha attirato l'ultima volta. 89 00:04:24,150 --> 00:04:27,620 E questo è due computer, client e sever, parlano tra loro. 90 00:04:27,620 --> 00:04:31,130 E il protocollo, la lingua, in modo da parlano, che questi due computer succedono 91 00:04:31,130 --> 00:04:33,220 di parlare è chiamato HTTP. 92 00:04:33,220 --> 00:04:37,730 E questo è solo il protocollo utilizzato da computer per trasferire le informazioni più 93 00:04:37,730 --> 00:04:38,710 il world wide web. 94 00:04:38,710 --> 00:04:41,770 Il web, naturalmente, è solo un servizio che corre sulla parte superiore del 95 00:04:41,770 --> 00:04:43,000 cosiddetti internet. 96 00:04:43,000 --> 00:04:48,660 Qual è un altro servizio disponibile sul superiore di internet in questi giorni? 97 00:04:48,660 --> 00:04:51,600 Qualche altro protocollo o - che cos'è? 98 00:04:51,600 --> 00:04:52,300 >> AUDIENCE: FTP. 99 00:04:52,300 --> 00:04:52,790 >> SPEAKER 1: FTP. 100 00:04:52,790 --> 00:04:54,630 Così File Transfer Protocol è un altro. 101 00:04:54,630 --> 00:04:56,050 La maggior parte di voi probabilmente non hanno utilizzato. 102 00:04:56,050 --> 00:04:58,830 Ma la maggior parte di voi probabilmente hanno usato cose come Gchat, o istantanea 103 00:04:58,830 --> 00:05:00,970 messaggistica più in generale, certamente email. 104 00:05:00,970 --> 00:05:04,470 E quelli, anche, sono i servizi che girano su superiore di internet perché, al 105 00:05:04,470 --> 00:05:08,180 fine della giornata, la stessa Internet davvero solo ottenere i dati dal punto A al 106 00:05:08,180 --> 00:05:12,480 punto B. e utilizza un certo numero di particelle di sé, di cui una o due 107 00:05:12,480 --> 00:05:17,340 dei quali più comunemente chiamati TCP / IP, Vale a dire che un computer su 108 00:05:17,340 --> 00:05:19,960 Internet può essere effettivamente facendo cose diverse, e-mail, 109 00:05:19,960 --> 00:05:20,980 e web, e così via. 110 00:05:20,980 --> 00:05:22,220 Google fa un sacco di questo. 111 00:05:22,220 --> 00:05:26,310 Così come sono questi servizi in modo univoco identificate, abbiamo detto, su un computer 112 00:05:26,310 --> 00:05:29,080 che potrebbe in realtà essere facendo più cose? 113 00:05:29,080 --> 00:05:29,860 >> Il numero di porta. 114 00:05:29,860 --> 00:05:34,180 E questi sono solo umana arbitraria convenzioni, come 80 è web, 443 è 115 00:05:34,180 --> 00:05:36,580 cifrato web, 25 è l'email. 116 00:05:36,580 --> 00:05:38,230 E c'è un grappolo di altri. 117 00:05:38,230 --> 00:05:41,860 E questi numeri sono semplicemente inclusi nella quei pacchetti di informazioni, tali 118 00:05:41,860 --> 00:05:46,230 busta virtuale, che in realtà conteneva una richiesta o una risposta. 119 00:05:46,230 --> 00:05:51,300 >> Così quando torni una risposta dal Web, in genere, non si vede alcuna 120 00:05:51,300 --> 00:05:54,780 numeri di sorta in termini di codice di stato della risposta. 121 00:05:54,780 --> 00:05:56,770 In realtà non vede l' funzionamento interno del 122 00:05:56,770 --> 00:05:58,090 pacchetti che tornano. 123 00:05:58,090 --> 00:05:59,860 Ma 200 in effetti significa OK. 124 00:05:59,860 --> 00:06:01,530 E questo significa che tutto va bene. 125 00:06:01,530 --> 00:06:02,870 Potreste aver visto un mucchio di questi. 126 00:06:02,870 --> 00:06:05,710 Che è probabilmente il più comune avete visto sul web? 127 00:06:05,710 --> 00:06:05,980 >> 404. 128 00:06:05,980 --> 00:06:07,330 Significa solo file non trovato. 129 00:06:07,330 --> 00:06:08,270 Significa che qualcuno avvitato. 130 00:06:08,270 --> 00:06:11,450 Hai fatto da errori di digitazione dell'URL, o qualcuno altro ha fatto dando un 131 00:06:11,450 --> 00:06:15,100 URL non valido, o hanno cancellato il di file e l'URL è ancora 132 00:06:15,100 --> 00:06:16,130 utilizzato da persone. 133 00:06:16,130 --> 00:06:19,670 Quindi qualsiasi numero di ragioni può spiegare perché un file non viene trovato. 134 00:06:19,670 --> 00:06:22,990 E vedrai, nelle settimane a venire, questi altri codici di errore, e ti 135 00:06:22,990 --> 00:06:24,195 usufruire di alcuni di loro. 136 00:06:24,195 --> 00:06:25,760 Il peggio è 500. 137 00:06:25,760 --> 00:06:29,820 Se si ottiene un errore 500 nel codice che hai scritto, pensare a questo come una sorta di 138 00:06:29,820 --> 00:06:33,290 analogico di segmentation fault 'in mondo della programmazione web. 139 00:06:33,290 --> 00:06:34,560 Non è proprio così disastrosa. 140 00:06:34,560 --> 00:06:36,660 Ma significa solo che, da qualche parte, ti avvitato. 141 00:06:36,660 --> 00:06:38,260 Così vediamo l'ora di quelli. 142 00:06:38,260 --> 00:06:39,910 >> Ma vediamo se possiamo vedere questi nel contesto. 143 00:06:39,910 --> 00:06:43,460 Lasciami andare a un browser qui ed effettuare le seguenti operazioni. 144 00:06:43,460 --> 00:06:45,710 Quindi questo è Chrome, che risulta essere installata nell'apparecchio. 145 00:06:45,710 --> 00:06:49,410 Ma la maggior parte tutti i browser in questi giorni ha alcune funzionalità equivalenti. 146 00:06:49,410 --> 00:06:52,610 Ho intenzione di andare su menu di Chrome, e andare su Strumenti, e ho intenzione di andare 147 00:06:52,610 --> 00:06:53,990 di strumenti di sviluppo. 148 00:06:53,990 --> 00:06:57,040 E vedrai che questo piccolo pannello apre nella parte inferiore della finestra. 149 00:06:57,040 --> 00:07:00,190 Un'altra scorciatoia, ad essere onesti, che io di solito uso io è fare clic destro 150 00:07:00,190 --> 00:07:04,370 o di controllo cliccare ovunque sul web pagina e basta andare a ispezionare Element. 151 00:07:04,370 --> 00:07:07,440 E che non solo apre questo ha per voi. 152 00:07:07,440 --> 00:07:10,230 Essa aprirà anche, specificamente, la porzione Elements sulla 153 00:07:10,230 --> 00:07:11,430 lato sinistro. 154 00:07:11,430 --> 00:07:12,460 >> Quindi siamo naturalmente vedendo Google. 155 00:07:12,460 --> 00:07:13,930 Hanno cambiato il loro logo oggi. 156 00:07:13,930 --> 00:07:20,200 Ma se ho scorrere verso il basso fino qui, notare Elementi che sotto, si vede 157 00:07:20,200 --> 00:07:23,460 quello che si chiama HTML, HyperText Markup Lingua, e questa è la lingua 158 00:07:23,460 --> 00:07:26,000 che questa e tutte le pagine web, in realtà, sono scritti dentro 159 00:07:26,000 --> 00:07:28,950 Ma in realtà è formattato per noi molto di più essere letti 160 00:07:28,950 --> 00:07:29,970 quanto non sia normalmente. 161 00:07:29,970 --> 00:07:34,810 Infatti, se io lo zoom indietro, e io invece è sufficiente fare clic destro o Ctrl Click 162 00:07:34,810 --> 00:07:39,630 fare clic sulla pagina, e poi andare a Visualizza Sorgente pagina, questo è letteralmente ciò che 163 00:07:39,630 --> 00:07:42,150 Google ha fatto scendere al mio browser. 164 00:07:42,150 --> 00:07:46,480 >> Quindi, una o più persone hanno scritto Google.com utilizzando questo codice sorgente. 165 00:07:46,480 --> 00:07:47,790 La maggior parte di questa non sia HTML. 166 00:07:47,790 --> 00:07:49,340 In realtà è un linguaggio chiamato JavaScript, che 167 00:07:49,340 --> 00:07:50,880 verremo a il Mercoledì. 168 00:07:50,880 --> 00:07:55,580 Ma ciò che Chrome, e ciò che tutti i browser può fare per noi, è una specie di vedere 169 00:07:55,580 --> 00:07:59,610 passato tutte le distrazioni del sintassi folle e reinserire lo spazio bianco 170 00:07:59,610 --> 00:08:02,940 per noi, e anche evidenziare la sintassi, o colorare le cose per noi. 171 00:08:02,940 --> 00:08:06,470 Quindi, ci si accorge che questi cosiddetti strumenti di sviluppo integrati nel browser 172 00:08:06,470 --> 00:08:10,830 renderà la vostra vita è così, molto più facile perché è possibile esplorare, tramite questo menù 173 00:08:10,830 --> 00:08:13,940 interfaccia, esattamente ciò che il sottostante il codice sorgente è per 174 00:08:13,940 --> 00:08:15,750 qualsiasi pagina su Internet. 175 00:08:15,750 --> 00:08:19,070 E in effetti, questa è una delle più modi efficaci per imparare come fare 176 00:08:19,070 --> 00:08:22,860 qualcosa di nuovo, almeno se la pagina non è così complesso come a sopraffare, è 177 00:08:22,860 --> 00:08:26,700 per iniziare rovistando è HTML, guardare al suo cosiddetto CSS, che verremo 178 00:08:26,700 --> 00:08:30,310 per un po 'così, per ottenere un comprensione di come quel programmatore 179 00:08:30,310 --> 00:08:33,480 implementato qualche particolare caratteristica della pagina. 180 00:08:33,480 --> 00:08:36,530 >> Ma tecnicamente più giusta interessante ora che sta per essere presente. 181 00:08:36,530 --> 00:08:39,429 Se vado alla scheda di rete, andiamo ora chiaro questo. 182 00:08:39,429 --> 00:08:43,429 Ho intenzione di fare clic sul piccolo Simbolo della croce qui, e poi 183 00:08:43,429 --> 00:08:45,630 andare in un altro sito web. 184 00:08:45,630 --> 00:08:48,430 E io sto solo andando a digitare in Facebook.com. 185 00:08:48,430 --> 00:08:51,940 No HTTP, HTTPS no, no WWW. 186 00:08:51,940 --> 00:08:53,850 Facciamo in realtà vediamo che succede qui. 187 00:08:53,850 --> 00:08:55,030 >> Invio. 188 00:08:55,030 --> 00:08:58,480 Ora notare un sacco di roba solo apparso in questo pannello inferiore, in 189 00:08:58,480 --> 00:09:00,285 Oltre alla pagina web presenti in classifica. 190 00:09:00,285 --> 00:09:04,890 Io vado a scorrere di nuovo fino in Scheda di rete qui, e ho intenzione di 191 00:09:04,890 --> 00:09:06,080 cliccare sulla prima riga. 192 00:09:06,080 --> 00:09:10,580 Ciò che questo strumento sta per rivelare a noi è ogni una delle richieste HTTP 193 00:09:10,580 --> 00:09:13,550 che rapidamente appena andato avanti e indietro tra il mio browser 194 00:09:13,550 --> 00:09:14,930 e il server di Facebook. 195 00:09:14,930 --> 00:09:17,830 E così ognuno di quei file rappresenta una tale richiesta o 196 00:09:17,830 --> 00:09:20,970 risposta, una o più quelli busta virtuale. 197 00:09:20,970 --> 00:09:24,080 O più casualmente, è come una persona come una persona, un cliente in un 198 00:09:24,080 --> 00:09:26,710 ristorante, chiedere qualcosa ancora, e ancora, e ancora. 199 00:09:26,710 --> 00:09:29,400 E il cameriere continua a portare indietro uno alla volta. 200 00:09:29,400 --> 00:09:33,850 >> Così ora, se io lo zoom su questo, notare e questo sarà il genere di cose 201 00:09:33,850 --> 00:09:36,600 che sei il benvenuto e incoraggiato per giocare con il tuo, perché noi 202 00:09:36,600 --> 00:09:38,150 non passerà attraverso tutto in grande dettaglio. 203 00:09:38,150 --> 00:09:40,070 Ma notate c'è un alcune schede sub qui - 204 00:09:40,070 --> 00:09:43,700 Basette, Anteprima, la risposta, Cookies, e la tempistica. 205 00:09:43,700 --> 00:09:48,280 Sto solo andando a guardare le intestazioni per ora, perché questi sono poco 206 00:09:48,280 --> 00:09:53,600 ingredienti all'interno della busta che aiutano dati raggiungere e da luoghi. 207 00:09:53,600 --> 00:09:57,590 >> Quindi, in primo luogo, mi permetta di fare clic su questo, Vista Fonte accanto a intestazioni di richiesta. 208 00:09:57,590 --> 00:10:01,910 Vi è la richiesta che il mio browser, Cromo, in questo caso, inviata all'interno di 209 00:10:01,910 --> 00:10:02,910 quella busta virtuale. 210 00:10:02,910 --> 00:10:04,800 Vi ricorderete la settimana scorsa ho digitato manualmente mentre 211 00:10:04,800 --> 00:10:06,380 fingendo di essere un browser. 212 00:10:06,380 --> 00:10:09,980 Poi ha ricordato il server che è cerca l'host chiamato 213 00:10:09,980 --> 00:10:10,835 Facebook.com. 214 00:10:10,835 --> 00:10:13,630 E poi c'è un po 'di più arcano informazioni che ci onda 215 00:10:13,630 --> 00:10:14,830 le nostre mani per ora. 216 00:10:14,830 --> 00:10:18,640 >> Ma se comincio a scorrere verso il basso la società in questa finestra, mi permetta di ottenere il 217 00:10:18,640 --> 00:10:19,980 intestazioni di risposta. 218 00:10:19,980 --> 00:10:23,270 Questo è stato ciò che è nel virtuale busta che è tornato da 219 00:10:23,270 --> 00:10:24,095 Facebook.com. 220 00:10:24,095 --> 00:10:27,390 E se si sceglie Visualizza sorgente solo per vedere il testo grezzo di esso, 221 00:10:27,390 --> 00:10:28,400 notare alcune cose. 222 00:10:28,400 --> 00:10:32,130 Uno, Facebook parla anche lo stesso protocollo, la versione 1.1 della stessa. 223 00:10:32,130 --> 00:10:33,390 Ecco, questo è bello. 224 00:10:33,390 --> 00:10:36,820 Ma il codice di stato 301, spostata in modo permanente. 225 00:10:36,820 --> 00:10:38,880 >> Beh, dove il diavolo ha fatto Facebook andata? 226 00:10:38,880 --> 00:10:40,430 Che cosa è questo cercando di trasmettere a noi? 227 00:10:40,430 --> 00:10:44,310 Beh, nota qui c'è un altro intestazione chiamato Posizione. 228 00:10:44,310 --> 00:10:51,050 Perché, dunque, Facebook mi dice che essi permanentemente spostata a quella URL 229 00:10:51,050 --> 00:10:53,580 accanto a Posizione? 230 00:10:53,580 --> 00:10:54,962 Ho dimenticato il www. 231 00:10:54,962 --> 00:10:56,250 >> Così che era la mia scelta. 232 00:10:56,250 --> 00:11:00,450 Infatti, la maggior parte di noi raramente, probabilmente, digitare www.whatever.com questi giorni. 233 00:11:00,450 --> 00:11:03,390 Ma si scopre un amministratore di sistema, come di Facebook, può 234 00:11:03,390 --> 00:11:06,800 configurare i server in modo tale che o Facebook.com funziona, o 235 00:11:06,800 --> 00:11:12,450 www.Facebook.com funziona, o, in realtà, tale prefisso davanti a loro 236 00:11:12,450 --> 00:11:13,210 nome di dominio. 237 00:11:13,210 --> 00:11:14,500 Così hanno fatto questo per noi. 238 00:11:14,500 --> 00:11:16,910 E loro ci stanno riorientando, probabilmente per qualche tecnica, 239 00:11:16,910 --> 00:11:18,100 alcuni motivi di marketing. 240 00:11:18,100 --> 00:11:21,570 Vogliono solo canonicalize su www.Facebook.com. 241 00:11:21,570 --> 00:11:24,040 >> Ma non è abbastanza di esso. 242 00:11:24,040 --> 00:11:28,560 Se ho scorrere verso il basso qui, cerchiamo di vedere cosa succede. 243 00:11:28,560 --> 00:11:30,810 Questo mi sta dicendo che permanentemente spostata a 244 00:11:30,810 --> 00:11:33,450 http://www.Facebook.com. 245 00:11:33,450 --> 00:11:36,620 Quindi diamo un'occhiata a seconda richiesta che il mio browser invia. 246 00:11:36,620 --> 00:11:40,070 Purtroppo, sembra che Facebook è spostato ancora perché la seconda 247 00:11:40,070 --> 00:11:44,420 richiesta, selezionando l'URL, invece, dice che, anche, si trasferì 248 00:11:44,420 --> 00:11:45,010 permanentemente. 249 00:11:45,010 --> 00:11:48,140 E mi permetta di scorrere verso il basso qui per le intestazioni di risposta. 250 00:11:48,140 --> 00:11:51,530 Dove è andato ora Facebook? 251 00:11:51,530 --> 00:11:52,680 >> Così HTTPS. 252 00:11:52,680 --> 00:11:56,130 Così ora Facebook ha iniziato, soprattutto alla luce delle attuali 253 00:11:56,130 --> 00:11:59,750 gli eventi di questi ultimi mesi, in particolare e anche nel corso degli ultimi due anni 254 00:11:59,750 --> 00:12:03,670 di costringere tutti i loro utilizzatori, in un buon modo, per usare HTTPS, che è più 255 00:12:03,670 --> 00:12:06,210 garantire, anche se non del tutto sicura. 256 00:12:06,210 --> 00:12:10,000 E così ora la mia pagina, il mio browser è andando a richiedere questo terzo URL. 257 00:12:10,000 --> 00:12:14,710 E ora, finalmente, si ottiene il altrimenti invisibile 200 OK. 258 00:12:14,710 --> 00:12:18,830 >> Quindi, ciò che nel mondo o tutti queste altre righe qui. 259 00:12:18,830 --> 00:12:22,630 Ho letteralmente digitato una cosa, e la mia del browser sembra aver chiesto come 260 00:12:22,630 --> 00:12:23,840 20 alcune cose strane. 261 00:12:23,840 --> 00:12:24,640 Che cosa è? 262 00:12:24,640 --> 00:12:25,810 >> AUDIENCE: script? 263 00:12:25,810 --> 00:12:28,460 >> SPEAKER 1: script, e altri file scritto in un linguaggio chiamato 264 00:12:28,460 --> 00:12:30,780 JavaScript, il quale, ancora una volta, faremo vedere un po 'il Mercoledì. 265 00:12:30,780 --> 00:12:32,760 Che altro? 266 00:12:32,760 --> 00:12:33,390 I fogli di stile. 267 00:12:33,390 --> 00:12:36,350 Quindi qualcosa in un linguaggio chiamato CSS, che vedremo tra poco. 268 00:12:36,350 --> 00:12:40,690 GIF e JPEG, e PNG e immagini, e file video - qualunque sia una pagina web 269 00:12:40,690 --> 00:12:43,280 è che è più probabile in la forma di un file. 270 00:12:43,280 --> 00:12:46,750 E così quello che stiamo vedendo a sinistra lato c'è tutti i file 271 00:12:46,750 --> 00:12:50,280 che Chrome aveva da scaricare, ricorsivamente, se si vuole, al fine di 272 00:12:50,280 --> 00:12:52,430 comporre l'interezza della pagina. 273 00:12:52,430 --> 00:12:56,210 >> Quindi quello che abbiamo visto poco fa con Google, se clicco su elementi 274 00:12:56,210 --> 00:13:00,470 scheda, questo, certo, è l'HTML, il linguaggio che compone questa pagina. 275 00:13:00,470 --> 00:13:01,890 Ma ci sono mazzi di altre cose. 276 00:13:01,890 --> 00:13:02,640 C'è un logo. 277 00:13:02,640 --> 00:13:04,680 Ci sono quelli blu-ish Icone laggiù. 278 00:13:04,680 --> 00:13:07,610 E ci sono altri elementi ancora la pagina che stessi potrebbero essere 279 00:13:07,610 --> 00:13:08,610 file separati. 280 00:13:08,610 --> 00:13:11,860 >> Così che cosa è bella di un browser è che guarda il linguaggio che stiamo andando 281 00:13:11,860 --> 00:13:14,690 per iniziare a scrivere, o che hai già scrittura iniziato a P set 7, figure 282 00:13:14,690 --> 00:13:17,970 fuori dove vivono questi file, e va e li afferra pure. 283 00:13:17,970 --> 00:13:21,010 E non posso sottolineare abbastanza, anche anche se alcune di queste potrebbe apparire un po ' 284 00:13:21,010 --> 00:13:24,820 arcano o travolgente a prima vista, Imparare a programmare 285 00:13:24,820 --> 00:13:28,500 applicazioni per il web, è prezioso per capire come queste 286 00:13:28,500 --> 00:13:29,410 piccoli strumenti di lavoro. 287 00:13:29,410 --> 00:13:33,830 Questi sono un po 'come GDB come strumenti, ma molto più semplice, in ultima analisi, da utilizzare - 288 00:13:33,830 --> 00:13:37,690 e davvero ti dà occhi in quello che stiamo dando per scontato per 289 00:13:37,690 --> 00:13:39,170 po 'di tempo. 290 00:13:39,170 --> 00:13:42,270 >> Che cosa possiamo fare ora con queste informazioni? 291 00:13:42,270 --> 00:13:44,875 Bene, in realtà dare un'occhiata a i concetti alla base di HTML. 292 00:13:44,875 --> 00:13:49,025 E faremo rinviare, come già abbiamo, per sezioni di questa settimana, al problema 293 00:13:49,025 --> 00:13:53,260 impostare specifica 7, ad alcune delle più particolari di queste lingue. 294 00:13:53,260 --> 00:13:57,020 Ma vediamo se non siamo in grado di dipingere un immagine di ciò che si dovrebbe capire 295 00:13:57,020 --> 00:13:57,940 generale qui. 296 00:13:57,940 --> 00:14:02,280 >> Così HTML, HyperText Markup Language, non è un linguaggio di programmazione. 297 00:14:02,280 --> 00:14:03,520 Che cosa significa in realtà? 298 00:14:03,520 --> 00:14:05,690 Così HTML simile a questa. 299 00:14:05,690 --> 00:14:06,810 E alcuni di voi già sanno questo. 300 00:14:06,810 --> 00:14:08,130 Alcuni di voi hanno fatto finora questo per qualche tempo. 301 00:14:08,130 --> 00:14:10,270 Ma vediamo se non siamo in grado di colmare in alcuni spazi pure. 302 00:14:10,270 --> 00:14:11,760 Quindi notare un paio di cose qui. 303 00:14:11,760 --> 00:14:13,030 Uno, è solo testo. 304 00:14:13,030 --> 00:14:15,960 Quindi è proprio come il codice sorgente in C, o qualche altra lingua. 305 00:14:15,960 --> 00:14:17,750 >> Si noti che ci sembra di essere un modello qui. 306 00:14:17,750 --> 00:14:20,870 C'è indentazione, ma tecnicamente il rientro è solo umano 307 00:14:20,870 --> 00:14:21,205 convenzione. 308 00:14:21,205 --> 00:14:24,980 Un browser non importa se ci sono nuovi le linee e le schede come vediamo lì. 309 00:14:24,980 --> 00:14:27,410 Ma si noti che non c'è simmetrie qui. 310 00:14:27,410 --> 00:14:31,180 C'è quello che io chiamo, in cima questo file, il tag aperto, o l'inizio 311 00:14:31,180 --> 00:14:33,030 tag, chiamato HTML. 312 00:14:33,030 --> 00:14:36,800 E poi, in basso, perfettamente allineato up, proprio come facciamo con parentesi graffe, 313 00:14:36,800 --> 00:14:40,910 vediamo parentesi aperta, in avanti slash, HTML, chiudere la parentesi. 314 00:14:40,910 --> 00:14:44,610 Ecco, questo è il corrispondente vicino tag, o la fine tag, per quella cosa. 315 00:14:44,610 --> 00:14:47,990 >> Insieme, tutto all'interno del cosiddetti tag di apertura e chiusura tag 316 00:14:47,990 --> 00:14:50,440 componiamo quello che chiameremo un elemento. 317 00:14:50,440 --> 00:14:53,910 E vedremo, in un attimo, è davvero come un nodo in un albero. 318 00:14:53,910 --> 00:14:57,470 Perché se si pensa ora il indentazione che è implicito qui, è 319 00:14:57,470 --> 00:15:00,780 genere di avere, come, un nonno nodo chiamato HTML. 320 00:15:00,780 --> 00:15:06,870 Quanti bambini si potrebbe dire, in base su questa immagine, l'elemento HTML è? 321 00:15:06,870 --> 00:15:07,720 >> Quindi probabilmente due. 322 00:15:07,720 --> 00:15:10,240 Uno è l'elemento di testa, a quanto pare. 323 00:15:10,240 --> 00:15:11,710 E uno è l'elemento del corpo. 324 00:15:11,710 --> 00:15:12,555 E perché due figli? 325 00:15:12,555 --> 00:15:15,840 Beh, io sono solo tipo di inferenza che, se Ho un tag testa aperta e poi una 326 00:15:15,840 --> 00:15:17,820 tag di chiusura testa, che è un elemento. 327 00:15:17,820 --> 00:15:21,200 E poi, se c'è un altro corpo aperto tag e il tag body stretto, che è come 328 00:15:21,200 --> 00:15:22,340 un altro elemento. 329 00:15:22,340 --> 00:15:26,000 Così, nel senso che se io tipo di rotazione l'immagine su un lato, è 330 00:15:26,000 --> 00:15:29,910 come avere un tag HTML, e poi un tag head, e poi un tag body, e 331 00:15:29,910 --> 00:15:34,290 poi una parte di testo, ciao mondo, penzoloni fuori del tag corpo stesso. 332 00:15:34,290 --> 00:15:36,620 >> Così possiamo tracciare un quadro che potrebbe apparire come questo. 333 00:15:36,620 --> 00:15:38,020 Le forme sono arbitrari. 334 00:15:38,020 --> 00:15:40,870 Ma si noti che ho usato una specie di ellisse in alto per rappresentare l' 335 00:15:40,870 --> 00:15:41,860 documento stesso. 336 00:15:41,860 --> 00:15:45,980 Si scopre che non ci può essere altra roba all'interno di una pagina web che non ho 337 00:15:45,980 --> 00:15:46,940 disegnato qui. 338 00:15:46,940 --> 00:15:50,800 Quindi stiamo andando anche appendere il codice HTML nodo fuori di un cosiddetto nodo di documento. 339 00:15:50,800 --> 00:15:53,730 E poi abbiamo la testa e corpo e titolo, preavviso, 340 00:15:53,730 --> 00:15:55,360 che è annidato ulteriormente. 341 00:15:55,360 --> 00:15:58,650 Non mi preoccupai di mettere ulteriore linea pause all'interno del tag title. 342 00:15:58,650 --> 00:16:02,710 Mi sembrava come si stava facendo un po 'troppo prolisso. 343 00:16:02,710 --> 00:16:07,000 Così ho lasciato in una linea lì, con titolo aperto, ciao mondo, vicino titolo. 344 00:16:07,000 --> 00:16:09,380 E poi abbiamo un po 'di testo penzoloni fuori di qui. 345 00:16:09,380 --> 00:16:12,200 >> Quindi questa immagine tornerà a noi quando ci immergiamo in JavaScript. 346 00:16:12,200 --> 00:16:15,110 E capire che quando si scrivere HTML come questo, che cosa 347 00:16:15,110 --> 00:16:16,250 sta facendo un browser? 348 00:16:16,250 --> 00:16:19,290 Beh, non ci si deve preoccupare come sta facendo questo, o con quello 349 00:16:19,290 --> 00:16:23,090 algoritmo, ma alla fine della giornata, quando un browser riceve HTML come 350 00:16:23,090 --> 00:16:27,510 che, da Facebook o Google, analizza esso, per così dire, lo legge, 351 00:16:27,510 --> 00:16:31,160 con qualcosa come fread, superiore a basso, da sinistra a destra, e poiché 352 00:16:31,160 --> 00:16:36,300 realizza, oh, tag di apertura, e quindi chiudere tag, inizia a malloc, per così dire, 353 00:16:36,300 --> 00:16:37,800 un nodo in un albero. 354 00:16:37,800 --> 00:16:41,130 E quando incontra, come abbiamo esplicita che implicita o qui con il rientro, un 355 00:16:41,130 --> 00:16:45,400 nodo figlio, esso mallocs un nodo per tale e fissato che per l'albero. 356 00:16:45,400 --> 00:16:49,150 >> Così le strutture ad albero, alberi binari, alberi ternari, e gli alberi più grandi, che 357 00:16:49,150 --> 00:16:53,380 ci lanciò un'occhiata a un paio di settimane fa, avviso che lo stesso principio è 358 00:16:53,380 --> 00:16:54,220 tornando a noi. 359 00:16:54,220 --> 00:16:57,590 E chiunque attuate, Chrome qualunque squadra ha fatto che, presumibilmente, aveva 360 00:16:57,590 --> 00:17:00,800 di attuare un qualche tipo di struttura ad albero sotto la cappa. 361 00:17:00,800 --> 00:17:05,329 E che si è probabilmente in un linguaggio come C o C + +, o un più basso 362 00:17:05,329 --> 00:17:08,540 Livello che faremo ora utilizzare il web in cima. 363 00:17:08,540 --> 00:17:11,200 >> Così ora, forse, questo sarà più senso. 364 00:17:11,200 --> 00:17:15,420 Tatuaggio reale da un ragazzo che potrebbe pentirà alla fine, un po '. 365 00:17:15,420 --> 00:17:17,359 OK, va bene, così un sacco di web humor. 366 00:17:17,359 --> 00:17:18,599 Non sta succedendo veramente più così bene oggi. 367 00:17:18,599 --> 00:17:19,560 Quindi ci sposteremo. 368 00:17:19,560 --> 00:17:20,180 D'accordo. 369 00:17:20,180 --> 00:17:22,760 >> Quindi, diamo uno sguardo ora ad alcuni esempi. 370 00:17:22,760 --> 00:17:24,660 Il più semplice possibile cosa potrebbe essere questo. 371 00:17:24,660 --> 00:17:29,170 Ho intenzione di andare avanti e di aprire in gedit un file chiamato hello.php. 372 00:17:29,170 --> 00:17:31,730 373 00:17:31,730 --> 00:17:36,330 E dentro di qui, ho intenzione di fretta basta fare questo, printf, citare 374 00:17:36,330 --> 00:17:38,590 unquote, "ciao mondo". 375 00:17:38,590 --> 00:17:42,460 >> Così preavviso, e farò del mio backslash n, Io non ho preso la briga di dichiarare principale. 376 00:17:42,460 --> 00:17:45,310 Si scopre, in php, e un sacco di lingue, non hai bisogno di un principale 377 00:17:45,310 --> 00:17:46,090 funzione di per sé. 378 00:17:46,090 --> 00:17:47,720 Si può solo iniziare a scrivere il vostro programma. 379 00:17:47,720 --> 00:17:51,210 Ora, quando salvo il file, mi accorgo andando a fare quanto segue. 380 00:17:51,210 --> 00:17:55,360 Io non ho intenzione di usare make, e io non sono intenzione di utilizzare clang perché PHP, a differenza di 381 00:17:55,360 --> 00:17:57,400 C, non è un linguaggio compilato. 382 00:17:57,400 --> 00:18:01,400 E 'quello che si chiama un interpretato lingua, il che significa che lo si esegue 383 00:18:01,400 --> 00:18:04,650 come ingresso attraverso un altro programma chiamato un interprete. 384 00:18:04,650 --> 00:18:08,150 E che programma lo legge, superiore a in basso, da sinistra a destra, e lo fa 385 00:18:08,150 --> 00:18:09,290 qualunque cosa gli si dice di fare. 386 00:18:09,290 --> 00:18:12,920 >> Quindi in questo caso qui ho una linea che dice printf. 387 00:18:12,920 --> 00:18:17,990 Così, quando ho eseguito questo codice sorgente, hello.php, se un programma che 388 00:18:17,990 --> 00:18:22,830 accade, convenientemente, di essere chiamato PHP, che programma PHP sta per leggere 389 00:18:22,830 --> 00:18:26,120 questo file, dall'alto in basso, da sinistra a destra, e sta andando a fare quello che 390 00:18:26,120 --> 00:18:30,110 dirgli di fare - l'esecuzione di codice, e se non riconosce qualcosa, 391 00:18:30,110 --> 00:18:31,320 sputare fuori. 392 00:18:31,320 --> 00:18:34,940 Quindi ho intenzione di andare avanti e eseguire PHP di hello.php. 393 00:18:34,940 --> 00:18:37,110 Invio. 394 00:18:37,110 --> 00:18:39,690 >> E questo non è proprio quello che intendevo. 395 00:18:39,690 --> 00:18:40,530 Beh, perché? 396 00:18:40,530 --> 00:18:43,910 Beh, PHP è un linguaggio che è in realtà progettato per essere abbastanza 397 00:18:43,910 --> 00:18:46,150 intrecciate con il web. 398 00:18:46,150 --> 00:18:50,460 Quando si effettuano le pagine web con questo linguaggio PHP, come vedremo tra poco, faremo 399 00:18:50,460 --> 00:18:54,560 voglia di fare qualcosa di simile stampa le linee come questa. 400 00:18:54,560 --> 00:18:55,940 >> Quindi ho intenzione di farlo. 401 00:18:55,940 --> 00:19:00,810 Aperto staffa, punto interrogativo, PHP, e ora sto solo andando trattino solo per tenere 402 00:19:00,810 --> 00:19:01,960 cose belle. 403 00:19:01,960 --> 00:19:04,910 E ora ho intenzione di fare una domanda marcare stretto staffa. 404 00:19:04,910 --> 00:19:06,270 Quindi c'è un po 'di asimmetria qui. 405 00:19:06,270 --> 00:19:07,490 Non si fa questo. 406 00:19:07,490 --> 00:19:10,530 E non fate una barra, in modo PHP è un po 'diverso. 407 00:19:10,530 --> 00:19:14,610 >> Ma ora, se eseguire nuovamente questo programma, PHP hello.php, ora mi 408 00:19:14,610 --> 00:19:16,090 effettivamente ottenere Ciao Mondo. 409 00:19:16,090 --> 00:19:17,750 E vedremo perché questo è prezioso. 410 00:19:17,750 --> 00:19:20,960 Uno, mi permette di specificare, Super esplicitamente, questo è 411 00:19:20,960 --> 00:19:22,480 codice, eseguire questo. 412 00:19:22,480 --> 00:19:25,480 E questo è proprio ciò che questi tag speciali implicano qui. 413 00:19:25,480 --> 00:19:30,330 >> Ma significa anche che se io faccio solo qualcosa di simile mi propongo qui, che 414 00:19:30,330 --> 00:19:34,000 significa che, letteralmente, che sarà solo essere stampati senza necessità di 415 00:19:34,000 --> 00:19:36,850 effettivamente chiamare printf, o di stampa, o qualsiasi funzione analoga. 416 00:19:36,850 --> 00:19:39,445 Quindi torniamo a quella in un attimo. 417 00:19:39,445 --> 00:19:40,470 >> In primo luogo, cerchiamo di fare questo. 418 00:19:40,470 --> 00:19:43,950 All'interno della macchina, abbiamo un directory chiamata Vhosts, per virtuale 419 00:19:43,950 --> 00:19:47,000 padroni di casa, slash host locale, tagliare pubblico. 420 00:19:47,000 --> 00:19:50,240 Quindi è un po 'prolisso, ma lunga storia Insomma, l'apparecchio è progettato per non 421 00:19:50,240 --> 00:19:53,770 solo per supportare C. E 'anche progettato per supportare PHP. 422 00:19:53,770 --> 00:19:57,440 Ma è anche progettato per essere un web server e un server di database. 423 00:19:57,440 --> 00:20:00,230 Ed è progettato, e veramente configurato, di essere ricorda qualsiasi 424 00:20:00,230 --> 00:20:04,230 web commerciale società di hosting che si potrebbe pagare 5 $ al mese per, 425 00:20:04,230 --> 00:20:05,040 100 dollari al mese per. 426 00:20:05,040 --> 00:20:08,200 Qualunque sia il servizio è, che sia configurato di essere molto simile ad un 427 00:20:08,200 --> 00:20:10,170 real server di produzione mondiale. 428 00:20:10,170 --> 00:20:13,485 >> E che cosa questo significa è che in esecuzione su l'apparecchio è un software web server. 429 00:20:13,485 --> 00:20:15,060 Capita di essere chiamato Apache. 430 00:20:15,060 --> 00:20:17,790 E 'solo gratuito e open source, e molto popolare. 431 00:20:17,790 --> 00:20:23,260 E abbiamo configurato Apache per sapere che se visito un certo URL, con 432 00:20:23,260 --> 00:20:28,060 Chrome o qualsiasi browser interno del apparecchio, a guardare in questa directory 433 00:20:28,060 --> 00:20:31,030 per i file che l' utente richiede. 434 00:20:31,030 --> 00:20:32,790 >> In altre parole, mi permetta andare avanti e farlo. 435 00:20:32,790 --> 00:20:36,890 All'interno del mio elenco pubblico, io vado di andare avanti e creare un file 436 00:20:36,890 --> 00:20:39,580 chiamato index.html. 437 00:20:39,580 --> 00:20:41,000 Questo mi dà la scheda qui. 438 00:20:41,000 --> 00:20:44,210 E ho intenzione di andare molto in fretta e di andare avanti e sbattere fuori 439 00:20:44,210 --> 00:20:45,010 questo programma. 440 00:20:45,010 --> 00:20:48,410 DOCTYPE HTML, che per ora, solo assumere devi digitare. 441 00:20:48,410 --> 00:20:53,490 E 'solo un tag arcano, che non è veramente un tag HTML, che specifica che 442 00:20:53,490 --> 00:20:55,050 ecco che arriva un po 'di HTML. 443 00:20:55,050 --> 00:20:57,400 >> Ho intenzione di andare avanti e di ricreare quello che abbiamo visto poco fa. 444 00:20:57,400 --> 00:20:58,650 Ecco la testa alla pagina. 445 00:20:58,650 --> 00:21:01,170 All'interno della testa è stata la - 446 00:21:01,170 --> 00:21:01,890 così titolo. 447 00:21:01,890 --> 00:21:04,340 Così diremo ciao, mondo. 448 00:21:04,340 --> 00:21:06,570 E poi qui è stato il tag body. 449 00:21:06,570 --> 00:21:08,580 Lasciatemi chiudere il tag body. 450 00:21:08,580 --> 00:21:12,280 E poi qui dentro io anche dire, solo per chiarezza, ciao mondo. 451 00:21:12,280 --> 00:21:14,770 >> Quindi questo è, probabilmente, il più semplice possibile pagina Web 452 00:21:14,770 --> 00:21:15,770 può fare questo è valido. 453 00:21:15,770 --> 00:21:17,030 E 'sintatticamente valido. 454 00:21:17,030 --> 00:21:18,620 Tutto quello che è aperto sia chiuso. 455 00:21:18,620 --> 00:21:20,910 Tutto è bene in stile e frastagliata. 456 00:21:20,910 --> 00:21:23,600 Vediamo quindi ora come mi Puoi accedere al file. 457 00:21:23,600 --> 00:21:25,540 >> Beh, lasciatemi andare a Chrome qui. 458 00:21:25,540 --> 00:21:35,050 E mi permetta di andare a http://localhost/index.html. 459 00:21:35,050 --> 00:21:36,200 Allora, qual è host locale? 460 00:21:36,200 --> 00:21:39,400 Beh, la maggior parte qualsiasi computer nel mondo, Linux, Mac OS, Windows, ha un soprannome 461 00:21:39,400 --> 00:21:40,680 chiamato host locale. 462 00:21:40,680 --> 00:21:42,900 Quindi, se mai voglia di parlare per il proprio computer - 463 00:21:42,900 --> 00:21:45,140 anche se, stranamente riflessivamente - 464 00:21:45,140 --> 00:21:47,080 ti chiami host locale. 465 00:21:47,080 --> 00:21:50,390 Non importa quale sia il computer reale è chiamata, sia che si tratti di David MacBook 466 00:21:50,390 --> 00:21:52,490 Aria, o qualcosa di più verbose così. 467 00:21:52,490 --> 00:21:57,760 >> Quindi questo URL è apparentemente andando a utilizzare l'HTTP per comunicare con l'host locale, 468 00:21:57,760 --> 00:22:00,800 lo stesso computer, l'apparecchio, e sta andando a chiedere, basta prendere un 469 00:22:00,800 --> 00:22:02,570 indovinare, quale file? 470 00:22:02,570 --> 00:22:04,460 Index.html. 471 00:22:04,460 --> 00:22:08,650 Così l'apparecchio è stato configurato in avanzare di sapere che se sto chiedendo 472 00:22:08,650 --> 00:22:13,460 per qualcosa come index.html, cercare in una cartella chiamata Vhosts, in un 473 00:22:13,460 --> 00:22:17,950 cartella chiamata localhost, in una cartella ivi chiamato pubblico. 474 00:22:17,950 --> 00:22:20,400 È lì che tutto il mio pubblico i file stanno per essere. 475 00:22:20,400 --> 00:22:22,610 Così ora sto andando a premere Invio. 476 00:22:22,610 --> 00:22:27,100 >> E dannazione, non c'è che proibito messaggio, altrimenti noto come 403, la 477 00:22:27,100 --> 00:22:28,490 codice numerico per esso. 478 00:22:28,490 --> 00:22:30,130 Allora, cosa c'è di sbagliato qui? 479 00:22:30,130 --> 00:22:33,210 Beh, non è sufficiente a mettere solo il file all'interno della mia cartella. 480 00:22:33,210 --> 00:22:35,790 Ho bisogno di fare effettivamente la seguente. 481 00:22:35,790 --> 00:22:40,210 >> Lasciami andare nella mia directory Vhosts, in localhost, in pubblico, e lasciare 482 00:22:40,210 --> 00:22:41,680 mi faccio ls precipitare l. 483 00:22:41,680 --> 00:22:44,510 E ci sono un paio di altre cose qui per scopi di oggi. 484 00:22:44,510 --> 00:22:50,540 Ma bando sul lato sinistro, accanto a index.html, vediamo solo uno RW. 485 00:22:50,540 --> 00:22:53,560 E in passato, ciò RW è sinonimo di? 486 00:22:53,560 --> 00:22:54,240 >> Basta leggere o scrivere. 487 00:22:54,240 --> 00:22:58,000 Il fatto che si dice rw a sinistra significa che, il proprietario di questo file, può 488 00:22:58,000 --> 00:22:59,020 leggere o scrivere. 489 00:22:59,020 --> 00:23:05,010 Ma ho bisogno di lasciare che tutte le persone nel mondo leggere questo, anche se non scriverlo. 490 00:23:05,010 --> 00:23:09,650 Quindi ho intenzione di cambiare la modalità del di file, chmod, tutti più r per dare 491 00:23:09,650 --> 00:23:13,910 tutti di leggere l'autorizzazione al file chiamato index.html. 492 00:23:13,910 --> 00:23:18,040 >> E se io ora retype ls precipitare l, avviso che, qui, un po 'di più 493 00:23:18,040 --> 00:23:19,160 R hanno spuntato. 494 00:23:19,160 --> 00:23:21,090 E per ora, la spec va in più particolare. 495 00:23:21,090 --> 00:23:24,450 Per P set 7, che significa solo che tutti può ora leggere questo file. 496 00:23:24,450 --> 00:23:27,790 Se torno al mio browser ora e ricaricare, voilà. 497 00:23:27,790 --> 00:23:28,750 Ciao mondo. 498 00:23:28,750 --> 00:23:32,260 >> E posso anche aprire gli strumenti di Chrome e vedere, proprio come con Google e 499 00:23:32,260 --> 00:23:34,590 Facebook che c'è il mio HTML, formattato un po ' 500 00:23:34,590 --> 00:23:35,930 diverso e colorized. 501 00:23:35,930 --> 00:23:40,450 Se vado alla scheda di rete e ricaricare la pagina, si noti che non vi è l'avere 502 00:23:40,450 --> 00:23:42,900 richiedere che Chrome sta inviando all'apparecchio. 503 00:23:42,900 --> 00:23:46,020 C'è il 200 per quella particolare file. 504 00:23:46,020 --> 00:23:49,340 Così, in breve, questo è come tutti questi vari pezzi si uniscono. 505 00:23:49,340 --> 00:23:53,530 Si dà il caso che il web server stiamo usando in questo momento non è remoto, 506 00:23:53,530 --> 00:23:54,210 come Facebook. 507 00:23:54,210 --> 00:23:58,330 E 'letteralmente sullo stesso computer, che è perfettamente OK. 508 00:23:58,330 --> 00:24:00,590 >> Quindi, che altro possiamo fare in una pagina web? 509 00:24:00,590 --> 00:24:03,110 Beh, basta, andiamo brezza attraverso un paio di queste cose. 510 00:24:03,110 --> 00:24:07,860 Ma mi permetta di andare avanti e riapro Gedit con index.html. 511 00:24:07,860 --> 00:24:13,980 E mi permetta di andare avanti e dico ciao CS50, salvare il file, tornare alla 512 00:24:13,980 --> 00:24:16,260 navigatore, cambio davvero deludente. 513 00:24:16,260 --> 00:24:19,130 >> Ma cosa succede se si vuole effettivamente link a qualcosa adesso? 514 00:24:19,130 --> 00:24:23,480 Così si scopre che siamo in grado di avere la link in HTML che sono solo i tag 515 00:24:23,480 --> 00:24:24,140 stessi. 516 00:24:24,140 --> 00:24:27,320 Capita di essere chiamato il tag di ancoraggio. a href uguale 517 00:24:27,320 --> 00:24:33,190 https://www.cs50.net, www.cs50.net stretta citazione, chiudere la parentesi. 518 00:24:33,190 --> 00:24:35,230 E ora vediamo cosa il resto viene dopo. 519 00:24:35,230 --> 00:24:36,500 >> Ho aperto il tag. 520 00:24:36,500 --> 00:24:38,990 Ora ho bisogno di dare una frase come CS50. 521 00:24:38,990 --> 00:24:40,600 Permettetemi di chiudere il tag. 522 00:24:40,600 --> 00:24:42,010 E notare alcune cose. 523 00:24:42,010 --> 00:24:45,270 Anche se c'è questa cosa criptica qui, non l'ho ripetuto quando si 524 00:24:45,270 --> 00:24:46,010 chiudere il tag. 525 00:24:46,010 --> 00:24:48,230 Basta chiudere il tag con solo il suo nome. 526 00:24:48,230 --> 00:24:50,940 E questo è ciò che è noto come un attributo con un valore. 527 00:24:50,940 --> 00:24:56,070 Attributi solo modificano il comportamento di alcuni tag all'interno di una pagina. 528 00:24:56,070 --> 00:24:59,150 >> Quindi questo è specificare che l'iper riferimento, il modo elegante per dire la 529 00:24:59,150 --> 00:25:03,660 URL per questa ancora, per questo collegamento, dovrebbe essere CS50.net. 530 00:25:03,660 --> 00:25:07,440 E il testo che vogliamo mostrare il utente non è che la URL non elaborato, ma piuttosto 531 00:25:07,440 --> 00:25:08,730 la parola CS50. 532 00:25:08,730 --> 00:25:13,710 >> Quindi, se ora mi ricarico, mi zoom in per lasciare chiarezza, mi permetta di ricaricare la pagina, 533 00:25:13,710 --> 00:25:16,460 notare che abbiamo questa vecchia scuola blu sottolineato collegamento. 534 00:25:16,460 --> 00:25:20,000 E se mi passa il mouse su di esso, e sta andando ad essere difficile da vedere, in basso a sinistra 535 00:25:20,000 --> 00:25:23,690 nell'angolo destro dello schermo, si noti che si dice l'URL a cui 536 00:25:23,690 --> 00:25:24,430 Ho intenzione di andare. 537 00:25:24,430 --> 00:25:27,940 E se clicco lì, voilà, ora sto facendo le pagine web. 538 00:25:27,940 --> 00:25:30,140 E abbiamo portato noi stessi alla home page. 539 00:25:30,140 --> 00:25:32,670 >> A meno di notare ciò che i potenziali questo ci offre. 540 00:25:32,670 --> 00:25:34,890 Sicurezza è molto in voga in questi giorni. 541 00:25:34,890 --> 00:25:41,210 E se io invece dico qualcosa come questo, e io invece vado a, diciamo, facciamo 542 00:25:41,210 --> 00:25:42,460 vedere, fakeCS50.net. 543 00:25:42,460 --> 00:25:44,660 544 00:25:44,660 --> 00:25:46,360 Ricarica questa pagina. 545 00:25:46,360 --> 00:25:50,180 >> OK, notare sembra ancora come se fossi andando a CS50, a meno che un occhio astuto 546 00:25:50,180 --> 00:25:51,560 noterà che sto per falso CS50. 547 00:25:51,560 --> 00:25:54,550 Sto indovinando questo dominio non è preso. 548 00:25:54,550 --> 00:25:55,960 OK, quindi non è disponibile. 549 00:25:55,960 --> 00:25:56,600 Quindi questo è un bene. 550 00:25:56,600 --> 00:25:57,900 Nessuno in realtà ha quel dominio. 551 00:25:57,900 --> 00:26:00,380 >> Ma cerchiamo di essere un po 'più dannoso perché questo è un po 'stupido. 552 00:26:00,380 --> 00:26:02,240 Che cosa succede se cambiamo questo a Paypal. 553 00:26:02,240 --> 00:26:09,960 E se chiamiamo questa, come, www.paypal.badguy.com, 554 00:26:09,960 --> 00:26:12,070 qualunque sia il dominio è. 555 00:26:12,070 --> 00:26:13,700 Che probabilmente esiste. 556 00:26:13,700 --> 00:26:16,260 Così ora mi permetta di ricaricare la pagina. 557 00:26:16,260 --> 00:26:22,890 E qui abbiamo una sorta di phishing attacco, P-H-I-S-H-I-N-G, che è la 558 00:26:22,890 --> 00:26:26,760 parola stupida dato per un attacco che cerca di informazioni di pesce, o, meglio 559 00:26:26,760 --> 00:26:30,450 ancora, i soldi, di gente facendo credere loro nel fornire informazioni che 560 00:26:30,450 --> 00:26:31,990 non potrebbero altrimenti fare. 561 00:26:31,990 --> 00:26:33,500 Questo sembra del tutto legittimo, giusto? 562 00:26:33,500 --> 00:26:34,930 Devo avere un link qui per Paypal.com. 563 00:26:34,930 --> 00:26:37,700 564 00:26:37,700 --> 00:26:40,430 In tutta onestà, se mi sessuato in su con un po ' grafica, possiamo farlo sembrare 565 00:26:40,430 --> 00:26:41,310 più come PayPal. 566 00:26:41,310 --> 00:26:41,510 Giusto? 567 00:26:41,510 --> 00:26:43,815 Perché ho potuto, come una digressione, Potrei andare a Paypal.com. 568 00:26:43,815 --> 00:26:47,110 E abbiamo appena visto come posso vedi tutto il loro codice HTML. 569 00:26:47,110 --> 00:26:50,560 Potrei semplicemente copiarlo e ricreare la estetica di Paypal, piuttosto che andare 570 00:26:50,560 --> 00:26:51,490 vecchia scuola qui. 571 00:26:51,490 --> 00:26:55,010 Ma notate, ovviamente, ed è un po ' ancora piccola, solo nel fondo 572 00:26:55,010 --> 00:26:59,190 alto a sinistra, in come un punto 10 tipo di carattere, vedete che cosa URL sei 573 00:26:59,190 --> 00:27:01,310 in realtà sta per essere portato a. 574 00:27:01,310 --> 00:27:06,580 >> E così, se hai mai ottenuto dicendo di spam andare avanti, e tu sei conto 575 00:27:06,580 --> 00:27:07,420 è stata compromessa. 576 00:27:07,420 --> 00:27:10,615 Si prega di fare clic su questo link e fateci sapere la vostra password in modo che possiamo garantire che sei 577 00:27:10,615 --> 00:27:13,010 te, non farlo mai. 578 00:27:13,010 --> 00:27:14,180 Queste cose dovrebbero andare da sé. 579 00:27:14,180 --> 00:27:17,670 Ma è meravigliosamente divertente, e tragico, come ogni anno, questo sembra 580 00:27:17,670 --> 00:27:19,660 accadere ad una certa non zero numero di persone. 581 00:27:19,660 --> 00:27:21,400 >> E questo è il bello di attacchi di phishing. 582 00:27:21,400 --> 00:27:23,160 È possibile inviare un milione di messaggi di posta elettronica. 583 00:27:23,160 --> 00:27:27,720 E se anche lo 0,01% di persone effettivamente Clicca su Paypal e dare il vostro 584 00:27:27,720 --> 00:27:31,040 la password, che è ancora un numero diverso da zero delle persone che hanno solo dare 585 00:27:31,040 --> 00:27:32,200 i loro soldi. 586 00:27:32,200 --> 00:27:36,170 E l'invio di messaggi di posta elettronica, naturalmente, è abbastanza facile e, in sostanza, libero 587 00:27:36,170 --> 00:27:36,970 in questi giorni. 588 00:27:36,970 --> 00:27:40,410 >> Quindi, per farla breve, meravigliosamente bella idea, no? 589 00:27:40,410 --> 00:27:44,620 Anni fa, questo è stato il primo web, consentendo una rete di 590 00:27:44,620 --> 00:27:46,330 collegamenti ipertestuali tra le risorse. 591 00:27:46,330 --> 00:27:49,520 Ma così in fretta potrebbe essere utilizzati per scopi malati. 592 00:27:49,520 --> 00:27:54,100 E-mail, è sufficiente dire, questi giorni, hanno HTML incorporato all'interno. 593 00:27:54,100 --> 00:27:55,410 >> Beh, lasciatemi solo un'altra cosa. 594 00:27:55,410 --> 00:27:58,640 E faremo rimandiamo in gran parte alla sezione in problema impostato sette per consentire di 595 00:27:58,640 --> 00:28:00,000 esplorare i particolari. 596 00:28:00,000 --> 00:28:01,990 Ma mi permetta di andare avanti e di fare un paio di cose qui. 597 00:28:01,990 --> 00:28:04,840 Ho intenzione di andare a dichiarare quello che si chiama un div, o 598 00:28:04,840 --> 00:28:06,080 divisione, della pagina. 599 00:28:06,080 --> 00:28:07,770 Vorrei concludere tale tag div. 600 00:28:07,770 --> 00:28:11,460 >> E ho intenzione di dire fino qui all'inizio della pagina. 601 00:28:11,460 --> 00:28:14,940 E poi al di sotto di questo, ho intenzione di fare qualcosa di simile a un altro div, chiudere questa 602 00:28:14,940 --> 00:28:17,800 tag, e fare parte inferiore della pagina. 603 00:28:17,800 --> 00:28:18,840 E cerchiamo di salvarlo. 604 00:28:18,840 --> 00:28:21,040 >> Così ora torniamo al mio file. 605 00:28:21,040 --> 00:28:22,120 Molto deludente. 606 00:28:22,120 --> 00:28:25,520 Ma ciò divisione viene usata per, sotto il cofano, è in realtà 607 00:28:25,520 --> 00:28:26,920 un elemento strutturale bello. 608 00:28:26,920 --> 00:28:30,300 Essa non ha estetica quanto possiamo vedere, oltre, a quanto pare, 609 00:28:30,300 --> 00:28:31,890 mettere le cose su nuove linee. 610 00:28:31,890 --> 00:28:36,290 >> Ma si noti, per inciso, semplicemente premendo Inserisci non è tagliato in HTML simile 611 00:28:36,290 --> 00:28:39,840 non in C. Si potrebbe pensare che questo è andando a mettere un bel grande divario tra 612 00:28:39,840 --> 00:28:41,300 la parte superiore e inferiore della pagina. 613 00:28:41,300 --> 00:28:43,420 Ma è ignorato. 614 00:28:43,420 --> 00:28:48,040 Lo spazio bianco è sostanzialmente ignorata in pagine web diversi dal primo 615 00:28:48,040 --> 00:28:51,530 spazio bar carattere, o ritorno a capo, che si preme sulla tastiera. 616 00:28:51,530 --> 00:28:55,370 Se volete più interruzioni di riga, è necessario specificare voi stessi. 617 00:28:55,370 --> 00:28:59,080 >> Quindi ho intenzione di fare un paio di cose qui per mostrare cosa sta succedendo. 618 00:28:59,080 --> 00:29:02,700 Ho intenzione di aggiungere un attributo che esiste e ancora una volta, il modo in cui si impara 619 00:29:02,700 --> 00:29:07,110 quali attributi esistono, quali sono le etichette, in realtà, è riferimenti online. 620 00:29:07,110 --> 00:29:09,750 HTML è il tipo di linguaggio - è non è un linguaggio di programmazione. 621 00:29:09,750 --> 00:29:12,460 E 'un linguaggio di markup - che dopo un buona mezz'ora, forse un'ora con 622 00:29:12,460 --> 00:29:15,930 esso, vi sarà certamente cogliere, più probabile, l'idea di base. 623 00:29:15,930 --> 00:29:20,350 E poi una ricerca su Google di distanza è tutto i possibili tag che si può essere 624 00:29:20,350 --> 00:29:21,170 interessati dentro 625 00:29:21,170 --> 00:29:24,290 E per la specifica, che è abbastanza benvenuti e incoraggiati qui. 626 00:29:24,290 --> 00:29:26,120 >> Così ora lasciami andare avanti e fare qualcosa di simile. 627 00:29:26,120 --> 00:29:28,690 Background-color. 628 00:29:28,690 --> 00:29:32,060 E ora, ho intenzione di fare qualcosa come il rosso, punto e virgola. 629 00:29:32,060 --> 00:29:33,970 E si può farlo in alcuni modi diversi. 630 00:29:33,970 --> 00:29:36,770 Sono solo tipo di digitarlo come super esplicitamente possibile. 631 00:29:36,770 --> 00:29:41,960 >> Ma si scopre che questo valore qui è quello che si chiama CSS, Cascading Style 632 00:29:41,960 --> 00:29:43,700 Fogli, che è un altro linguaggio del tutto. 633 00:29:43,700 --> 00:29:46,770 CSS non ha nulla a che fare con aprire tag e tag di chiusura. 634 00:29:46,770 --> 00:29:48,230 Ha a che fare con le proprietà. 635 00:29:48,230 --> 00:29:52,660 >> E le proprietà sono valore chiave semplicemente coppie, il che significa solo una parola, 636 00:29:52,660 --> 00:29:54,680 colon, e poi qualche altra parola. 637 00:29:54,680 --> 00:29:57,940 E se si dispone di quelli multipli, o solo uno qui, si può finire con un 638 00:29:57,940 --> 00:29:59,390 punto e virgola, solo per chiarezza. 639 00:29:59,390 --> 00:30:01,370 Ma anche questo, funzionerà qui. 640 00:30:01,370 --> 00:30:02,500 >> Ora che cosa è questa intenzione di fare? 641 00:30:02,500 --> 00:30:03,610 Probabilmente si può indovinare. 642 00:30:03,610 --> 00:30:05,930 Lasciami andare avanti e di ricaricare questa pagina. 643 00:30:05,930 --> 00:30:07,300 E ora è davvero venendo. 644 00:30:07,300 --> 00:30:09,150 Così parte superiore della mia pagina è rosso. 645 00:30:09,150 --> 00:30:12,380 Ma ciò che è fondamentale è che, ho detto precedente, che div ti dà 646 00:30:12,380 --> 00:30:13,220 una divisione della pagina. 647 00:30:13,220 --> 00:30:14,410 E questo è davvero quello che fa. 648 00:30:14,410 --> 00:30:17,920 Si divide essenzialmente la pagina in un rettangolo che si può quindi 649 00:30:17,920 --> 00:30:18,720 manipolare. 650 00:30:18,720 --> 00:30:22,330 >> E questo concetto di rettangoli è una specie di convincente in quanto, se si pensa di 651 00:30:22,330 --> 00:30:26,410 la maggior parte qualsiasi sito web, probabilmente c'è qualche struttura ad esso. 652 00:30:26,410 --> 00:30:29,620 La maggior parte di voi hanno probabilmente visto raramente L'home page di Facebook, se si è registrato 653 00:30:29,620 --> 00:30:30,440 in tutto il tempo. 654 00:30:30,440 --> 00:30:33,920 >> Ma sulla home page di Facebook, non c'è qualche tipo di div lungo la parte superiore. 655 00:30:33,920 --> 00:30:36,140 E potrebbe non essere così semplice come un div, ma c'è un 656 00:30:36,140 --> 00:30:37,560 regione rettangolare lì. 657 00:30:37,560 --> 00:30:40,290 Il resto della pagina è come un enorme div, come un gran 658 00:30:40,290 --> 00:30:41,910 più grande area rettangolare. 659 00:30:41,910 --> 00:30:44,540 Quindi, per farla breve, soltanto con questi blocchi piccoli, i 660 00:30:44,540 --> 00:30:49,250 capacità di cose modello come rettangoli, sia largo o stretto, è anche possibile 661 00:30:49,250 --> 00:30:53,680 rendere le colonne potenzialmente, permette di layout di pagina, in realtà, ma si 662 00:30:53,680 --> 00:30:54,100 vorrebbe. 663 00:30:54,100 --> 00:30:56,170 Siamo davvero solo graffi la superficie qui. 664 00:30:56,170 --> 00:30:59,820 >> In effetti, se faccio un altro uno, mi permetta di andare avanti e fare lo stile, 665 00:30:59,820 --> 00:31:05,410 background-color, faremo qualcosa di come il blu, chiudere le virgolette. 666 00:31:05,410 --> 00:31:06,620 Facciamo Ricarica questa. 667 00:31:06,620 --> 00:31:08,260 Così ora la cosa si fa ancora più brutto. 668 00:31:08,260 --> 00:31:11,520 Ma ora posso sorta di mostra il mio P impostato cinque abilità, giusto? 669 00:31:11,520 --> 00:31:12,690 Rosso. 670 00:31:12,690 --> 00:31:15,640 Mi ricorda RGB, Red Verde Blu triple. 671 00:31:15,640 --> 00:31:19,330 Bene, si scopre nella programmazione web, o web design, che è questo, abbiamo 672 00:31:19,330 --> 00:31:21,650 non ancora programmato nulla di per sé, è effettivamente possibile 673 00:31:21,650 --> 00:31:22,880 avere il codice esadecimale. 674 00:31:22,880 --> 00:31:26,480 Quindi qualcosa di qualcosa, qualcosa di qualcosa, qualcosa qualcosa. 675 00:31:26,480 --> 00:31:30,650 Così si può avere sei esadecimale caratteri, o tre, in alcuni casi, 676 00:31:30,650 --> 00:31:33,480 e ciascuno di questi punti interrogativi deve essere a cifre esadecimali, 677 00:31:33,480 --> 00:31:34,985 zero a f. 678 00:31:34,985 --> 00:31:41,000 >> Se voglio avere un sacco di rosso, e non verde e non blu, che cosa è la 679 00:31:41,000 --> 00:31:43,740 opposto di zero quando utilizza esadecimale? 680 00:31:43,740 --> 00:31:44,480 E 'f. 681 00:31:44,480 --> 00:31:51,130 Così posso fare ff, zero zero, zero zero, salvare questo, e ora venire qui. 682 00:31:51,130 --> 00:31:52,700 E io in realtà non vedo un cambiamento. 683 00:31:52,700 --> 00:31:56,230 Quindi, tra virgolette "rosso" è apparentemente sinonimo per tutto rosso, 684 00:31:56,230 --> 00:31:57,610 non verde, non blu. 685 00:31:57,610 --> 00:31:59,960 Nel frattempo, cambiamo deliberatamente questo per essere qualcosa 686 00:31:59,960 --> 00:32:01,210 casuale, come ABCDF. 687 00:32:01,210 --> 00:32:03,790 688 00:32:03,790 --> 00:32:05,860 >> Vediamo di cosa si tratta. 689 00:32:05,860 --> 00:32:08,530 E 'davvero un bel blu, in realtà, il bambino blu. 690 00:32:08,530 --> 00:32:11,820 Va bene, quindi questi sono solo ora combinazioni alquanto casuali di 691 00:32:11,820 --> 00:32:12,210 personaggi. 692 00:32:12,210 --> 00:32:13,410 In modo da non impantanarsi in qui. 693 00:32:13,410 --> 00:32:15,930 Ma ancora una volta, questo parla alla precisione che si può cominciare a 694 00:32:15,930 --> 00:32:19,090 applicare - anche se si sta molto sopraffatti dall'estetica. 695 00:32:19,090 --> 00:32:21,750 In realtà, se si vuole veramente essere impressionato, mi permetta di andare avanti e di cambiare 696 00:32:21,750 --> 00:32:23,500 la dimensione del carattere, per esempio. 697 00:32:23,500 --> 00:32:25,960 E notare il punto e virgola, che è necessaria lì. 698 00:32:25,960 --> 00:32:29,570 >> Dimensione carattere, possiamo essere solo ridicolo qui, 96 punti. 699 00:32:29,570 --> 00:32:31,280 Salva questo. 700 00:32:31,280 --> 00:32:33,670 Wow, questa è una grande dimensione del carattere. 701 00:32:33,670 --> 00:32:35,490 Va bene, quindi è molto facile. 702 00:32:35,490 --> 00:32:38,260 E in realtà, si sta essenzialmente vedendo la pagina web prima che ho fatto 703 00:32:38,260 --> 00:32:40,060 anni fa, quando ho imparato questa roba. 704 00:32:40,060 --> 00:32:42,190 E 'molto facile da fare molto cose orribili rapidamente. 705 00:32:42,190 --> 00:32:46,115 >> E se si ha familiarità con la Wayback Macchina su archive.org, è 706 00:32:46,115 --> 00:32:48,210 può trovare tutta la mia orrenda pagine web undergrad. 707 00:32:48,210 --> 00:32:50,090 Uno aveva Kermit la rana sul davanti. 708 00:32:50,090 --> 00:32:53,150 Ho attraversato una fase in cui ho pensato è stato bello prendere il fondo di 709 00:32:53,150 --> 00:32:56,320 una tenda rossa, quando ho saputo come si nuovo può immagini piastrelle, e ancora, e 710 00:32:56,320 --> 00:32:59,540 ancora una volta, per riempire una pagina con una grande tenda rossa di cattivo gusto. 711 00:32:59,540 --> 00:33:03,120 E poi, in cima a questa, era un'icona che si doveva fare clic per entrare nella mia casa 712 00:33:03,120 --> 00:33:04,960 pagina perché era molto in voga. 713 00:33:04,960 --> 00:33:08,870 >> E poi il mio primo programma che ho scritto non era in PHP, ma in una lingua 714 00:33:08,870 --> 00:33:12,260 denominato Perla, ha scritto un libro degli ospiti, che è una cosa veramente interessante che un 715 00:33:12,260 --> 00:33:14,250 sacco di gente si aspetta di avere su una home page. 716 00:33:14,250 --> 00:33:17,510 Quando si arriva alla pagina, che ti vogliono ad accedere, e dici chi sei, 717 00:33:17,510 --> 00:33:18,720 e perché sei lì. 718 00:33:18,720 --> 00:33:21,320 Questo è molto anni 1990 web design di stile. 719 00:33:21,320 --> 00:33:24,130 >> Ma in questi giorni, sicuramente, abbiamo venire molto più lontano. 720 00:33:24,130 --> 00:33:27,560 E vedrete, in sezione, e anche nel problema impostato sette, da 721 00:33:27,560 --> 00:33:31,570 sfruttando le librerie in questi giorni, è molto più facile da fare 722 00:33:31,570 --> 00:33:33,400 le cose più carine rapidamente. 723 00:33:33,400 --> 00:33:36,550 Proprio qui, stiamo solo grattando la superficie di ciò che si può fare 724 00:33:36,550 --> 00:33:37,400 stilisticamente. 725 00:33:37,400 --> 00:33:41,660 >> E in effetti, già, vorrei sottolineare che questo sta già diventando brutto, non 726 00:33:41,660 --> 00:33:46,030 solo esteticamente, ma in termini di stile del mio codice, o il 727 00:33:46,030 --> 00:33:47,260 disegno del mio codice. 728 00:33:47,260 --> 00:33:52,350 Ho attualmente comingled HTML, che è il verdognoli tag aperti lì, con 729 00:33:52,350 --> 00:33:55,160 Proprietà CSS, che è del tutto legittimo. 730 00:33:55,160 --> 00:33:57,200 Questo è davvero in cui la lingua ha avuto le sue origini. 731 00:33:57,200 --> 00:34:01,030 >> Ma nell'interesse di design pulito, proprio come abbiamo iniziato roba factoring 732 00:34:01,030 --> 00:34:05,370 fuori dal file C in. file h, lasciate Mi realtà pratica che tipo di 733 00:34:05,370 --> 00:34:07,990 principio e iniziare a fare questo invece. 734 00:34:07,990 --> 00:34:13,280 Mettiamola in un tag di stile qui, che esiste anche in formato HTML, e lasciami 735 00:34:13,280 --> 00:34:15,330 specificare la seguente. 736 00:34:15,330 --> 00:34:16,360 Mi permette di cancellare questo. 737 00:34:16,360 --> 00:34:18,110 Colore di sfondo sarà rosso. 738 00:34:18,110 --> 00:34:19,800 Sto per cancellare questo del tutto. 739 00:34:19,800 --> 00:34:22,580 Ho intenzione di sbarazzarsi dello stile Attribuisco, e ho intenzione di univocamente 740 00:34:22,580 --> 00:34:24,620 identificare questo div con una parola - 741 00:34:24,620 --> 00:34:28,750 arbitrariamente, ma ragionevolmente, citazione unquote "top". E l'ID è una speciale 742 00:34:28,750 --> 00:34:32,530 attributo che definisce in modo univoco un certo elemento HTML 743 00:34:32,530 --> 00:34:33,850 come avente tale id. 744 00:34:33,850 --> 00:34:37,969 >> Se ora voglio stilizzato che, qui in la testa della mia pagina, all'interno del 745 00:34:37,969 --> 00:34:41,730 tag di stile, si noti che Posso fare top hash. 746 00:34:41,730 --> 00:34:45,300 E poi posso mettere un paio di ricci bretelle, che ricordano C, e poi lasciare 747 00:34:45,300 --> 00:34:47,130 mi incollo in quella stilizzazione. 748 00:34:47,130 --> 00:34:49,929 E mi permetta di andare avanti qui e anticipare dove sto andando con questo. 749 00:34:49,929 --> 00:34:53,380 Vorrei anche creare uno per il div in basso. 750 00:34:53,380 --> 00:34:58,010 Lasciatemi Prendi questo codice orrendo da giù qui, metterlo in qui, e sarò 751 00:34:58,010 --> 00:35:00,770 un po 'più anale ora e stilizzato che da solo mettendo le cose per conto proprio 752 00:35:00,770 --> 00:35:02,540 linea, che termina con un punto e virgola. 753 00:35:02,540 --> 00:35:04,430 Permettetemi di sbarazzarsi del tag style. 754 00:35:04,430 --> 00:35:05,320 >> Ma io non ho ancora finito. 755 00:35:05,320 --> 00:35:07,406 Ho bisogno di fare un'altra cosa. 756 00:35:07,406 --> 00:35:10,070 Già, id uguale tra virgolette, "fondo", o qualsiasi altra cosa id voglio 757 00:35:10,070 --> 00:35:11,740 dare quel elemento. 758 00:35:11,740 --> 00:35:13,420 Ora, lasciatemi tornare qui. 759 00:35:13,420 --> 00:35:14,360 E questo è atroce. 760 00:35:14,360 --> 00:35:15,805 Non riesco a fare con 96 punti. 761 00:35:15,805 --> 00:35:16,960 Facciamo 24 punti. 762 00:35:16,960 --> 00:35:18,320 Oppure si potrebbe essere più precisi. 763 00:35:18,320 --> 00:35:21,800 Si può effettivamente utilizzare pixel, px, così che realmente ottiene una grana più fine 764 00:35:21,800 --> 00:35:23,220 controllo sulla tua pagina. 765 00:35:23,220 --> 00:35:26,860 >> Per inciso, questo non è necessariamente la cosa migliore se gli utenti, per 766 00:35:26,860 --> 00:35:29,650 ragioni di accessibilità, vogliono essere in grado di aumentare le dimensioni. 767 00:35:29,650 --> 00:35:32,650 Così si rendono conto che ci sono modi di fare cose che non necessariamente 768 00:35:32,650 --> 00:35:34,230 codificare tutto. 769 00:35:34,230 --> 00:35:37,220 >> Va bene, quindi è più grande, 24 punti, che qualunque sia il valore di default è. 770 00:35:37,220 --> 00:35:38,630 Ma ora è un po 'più pulito. 771 00:35:38,630 --> 00:35:40,230 E mi permetta di fare un passo ulteriore. 772 00:35:40,230 --> 00:35:47,220 Proprio come l'idea del file di intestazione, accorgiamo che siamo un passo più vicini a quello. 773 00:35:47,220 --> 00:35:52,000 Ho preso in considerazione, ma ancora di partire, all'interno della mia pagina, queste regole CSS. 774 00:35:52,000 --> 00:35:56,200 Perchè potrei voler fare un passo ulteriore, rimuovere questo del tutto, e 775 00:35:56,200 --> 00:35:59,860 metterla in un file separato? 776 00:35:59,860 --> 00:36:01,070 >> Così posso riutilizzarlo, giusto? 777 00:36:01,070 --> 00:36:03,155 Questo è il solo tipo di intuizione al momento. 778 00:36:03,155 --> 00:36:06,340 Prima, ho affermato che era solo sempre brutto avere lo stile 779 00:36:06,340 --> 00:36:08,480 attributi all'interno del Divs stessi. 780 00:36:08,480 --> 00:36:09,750 Ma solo tipo di pensare che attraverso. 781 00:36:09,750 --> 00:36:13,560 Come la pagina si allunga sempre più, se avete deciso di mettere qui, e qui, e 782 00:36:13,560 --> 00:36:18,350 qui, e qui, tutti questi diversi i colori e le dimensioni dei caratteri, e altre 783 00:36:18,350 --> 00:36:22,550 attributi, la pagina è molto velocemente andando a diventare ingestibile per voi. 784 00:36:22,550 --> 00:36:24,570 >> Se qualcuno viene a voi e dice, oh, sai una cosa? 785 00:36:24,570 --> 00:36:28,070 Mi piacerebbe davvero cambiare la dimensione del carattere da due punti aggiuntivi, è 786 00:36:28,070 --> 00:36:31,275 potrebbe avere per andare a trovare e sostituire un enorme numero di linee di codice. 787 00:36:31,275 --> 00:36:35,170 E 'molto più interessante di centralizzare tutti tali estetica qui. 788 00:36:35,170 --> 00:36:38,850 Ma se vuoi riutilizzare quelli estetica in più pagine Web, tutte le 789 00:36:38,850 --> 00:36:41,100 la più convincente, ad esempio, creare un file 790 00:36:41,100 --> 00:36:45,290 chiamata con quei contenuti. 791 00:36:45,290 --> 00:36:46,680 >> E mi permetta di fare questo. 792 00:36:46,680 --> 00:36:51,150 793 00:36:51,150 --> 00:36:51,920 Salvare il file. 794 00:36:51,920 --> 00:36:55,580 Dico styles.css, arbitraria, ma convenzionale. 795 00:36:55,580 --> 00:36:58,770 Lo metto in casa di John Harvard directory ora per semplicità. 796 00:36:58,770 --> 00:37:03,880 E che cosa posso fare nella mia pagina web è ottenere eliminare il tag di stile del tutto, 797 00:37:03,880 --> 00:37:08,270 e un po 'unintuitively, utilizzare un collegamento tag, che non ti dà un link in 798 00:37:08,270 --> 00:37:13,140 il collegamento ipertestuale, senso cliccabile, ma dove dico collegamento, è uguale a href 799 00:37:13,140 --> 00:37:15,120 styles.css. 800 00:37:15,120 --> 00:37:20,050 E il rapporto che questo elemento ha con la pagina web è di servire come 801 00:37:20,050 --> 00:37:21,280 il suo foglio di stile. 802 00:37:21,280 --> 00:37:22,670 >> Così come facevo a sapere questo? 803 00:37:22,670 --> 00:37:25,950 Uno, basta leggere il manuale, oppure è Google in giro, e si 804 00:37:25,950 --> 00:37:27,000 guardare le varie risorse. 805 00:37:27,000 --> 00:37:30,520 Voglio dire, che veramente è come si prende in mano tecniche come questa, e, coerentemente 806 00:37:30,520 --> 00:37:34,720 con questa idea di insegnare sé nuovo lingue, ancora una volta, vi accorgerete che la 807 00:37:34,720 --> 00:37:38,830 c'è solo un numero finito di cose a qualsiasi linguaggio che, una volta che si ottiene 808 00:37:38,830 --> 00:37:41,310 loro, vi accorgerete che si ottiene più veloce e più veloce da scrivere. 809 00:37:41,310 --> 00:37:44,180 In effetti, l'apprendimento di una nuova programmazione linguaggio è molto più veloce di un nuovo 810 00:37:44,180 --> 00:37:47,380 lingua parlata, perché queste cose sono molto più piccole e molto più 811 00:37:47,380 --> 00:37:48,820 precisamente definita. 812 00:37:48,820 --> 00:37:51,590 >> Ma ho evidenziato un po ' di un'anomalia qui. 813 00:37:51,590 --> 00:37:57,750 Perché ho evidenziato questo slash qui? 814 00:37:57,750 --> 00:37:59,420 Perché devo chiudere il tag. 815 00:37:59,420 --> 00:38:00,530 Dovrei chiudere il tag. 816 00:38:00,530 --> 00:38:02,750 E troverete innumerevoli risorse online che non 817 00:38:02,750 --> 00:38:04,080 necessariamente tag di chiusura. 818 00:38:04,080 --> 00:38:08,770 E realisticamente, non è strettamente necessarie per tecnica e non sono 819 00:38:08,770 --> 00:38:11,950 ragioni della realtà, i browser sono solo abbastanza tollerante di errori nel web 820 00:38:11,950 --> 00:38:14,360 pagine, nel bene e nel male, ma soprattutto peggio. 821 00:38:14,360 --> 00:38:18,830 >> Quindi questo qui è solo un modo più pulito di dicendo qualcosa di stupido come questo, 822 00:38:18,830 --> 00:38:22,330 dove se si desidera aprire il tag link ma chiuderlo, non c'è davvero alcuna nozione 823 00:38:22,330 --> 00:38:23,720 di contenuti per un tag link. 824 00:38:23,720 --> 00:38:26,000 Significa solo caricare questo file e metterlo qui. 825 00:38:26,000 --> 00:38:30,610 E 'come acuto comprendono in C. Si può aprire e chiudere un tag tutto in una volta 826 00:38:30,610 --> 00:38:31,660 all'interno dello stesso tag. 827 00:38:31,660 --> 00:38:33,520 E ci sono altri esempi di questo. 828 00:38:33,520 --> 00:38:37,280 Questo non è il modo per fare questo, ma il tag BR, per le interruzioni di linea, se io 829 00:38:37,280 --> 00:38:41,780 veramente voluto realizzare quello che ero cercando di prima premendo Invio, se 830 00:38:41,780 --> 00:38:45,380 Io dico esplicitamente interruzione di linea, interruzione di riga, interruzione di riga, interruzione di riga, e 831 00:38:45,380 --> 00:38:49,100 quindi ricarica questa pagina, ora si noterà che la parte inferiore della pagina è, 832 00:38:49,100 --> 00:38:51,940 anzi, molto più in basso nella fondo alla pagina. 833 00:38:51,940 --> 00:38:55,840 Ma anche questo può essere fatto molto più pulito con i CSS, e con margini, 834 00:38:55,840 --> 00:38:58,120 e con altri tale estetica tecniche. 835 00:38:58,120 --> 00:38:59,940 >> Quindi, per ora, le rosticcerie sono questo. 836 00:38:59,940 --> 00:39:02,320 In HTML, abbiamo questi cose chiamate tag. 837 00:39:02,320 --> 00:39:04,830 Nei CSS, abbiamo queste cose denominata proprietà. 838 00:39:04,830 --> 00:39:08,700 Possiamo comingle queste due lingue, sia utilizzando l'attributo style, 839 00:39:08,700 --> 00:39:14,240 o il tag di stile, o meglio ancora, il factoring fuori del tutto, come facciamo noi 840 00:39:14,240 --> 00:39:17,270 nel problema di impostare 7. 841 00:39:17,270 --> 00:39:23,820 Domande, quindi, circa il basi concettuali qui? 842 00:39:23,820 --> 00:39:24,740 >> PUBBLICO: Ho una domanda. 843 00:39:24,740 --> 00:39:25,630 >> SPEAKER 1: Oh, mi dispiace. 844 00:39:25,630 --> 00:39:28,880 >> AUDIENCE: Perché non era colorato - 845 00:39:28,880 --> 00:39:31,410 >> SPEAKER 1: Oh, l'altra scheda? 846 00:39:31,410 --> 00:39:32,232 Questo qui? 847 00:39:32,232 --> 00:39:33,482 >> PUBBLICO: No, è come la - 848 00:39:33,482 --> 00:39:35,330 849 00:39:35,330 --> 00:39:39,480 >> SPEAKER 1: Oh, questo è perché Ero essere sciatta. 850 00:39:39,480 --> 00:39:41,350 Ho messo il file nel posto sbagliato. 851 00:39:41,350 --> 00:39:47,840 Quindi, se ho effettivamente messo qui, e io chmod, tutto + r per styles.css, e 852 00:39:47,840 --> 00:39:52,050 ora ricarichiamo la pagina, ora siamo ottenere la stilizzazione indietro. 853 00:39:52,050 --> 00:39:54,530 E poiché le dimensioni dei caratteri sono diverso, non vediamo abbastanza tanto 854 00:39:54,530 --> 00:39:55,010 lo spazio bianco. 855 00:39:55,010 --> 00:39:58,240 Noi invece vediamo che cosa è il default è invece. 856 00:39:58,240 --> 00:40:00,050 Buona domanda. 857 00:40:00,050 --> 00:40:00,846 Sì? 858 00:40:00,846 --> 00:40:02,630 >> AUDIENCE: Perché è il link tag all'interno dell'intestazione? 859 00:40:02,630 --> 00:40:06,270 >> SPEAKER 1: Perché i link tag all'interno della testata - 860 00:40:06,270 --> 00:40:07,650 risposta breve, solo perché. 861 00:40:07,650 --> 00:40:08,930 Questo è ciò che è stato deciso. 862 00:40:08,930 --> 00:40:10,720 Ecco dove il link tag vanno quando si dispone di ciò che è chiamato un 863 00:40:10,720 --> 00:40:13,650 foglio di stile esterno. 864 00:40:13,650 --> 00:40:16,430 Altre domande? 865 00:40:16,430 --> 00:40:17,770 >> Va bene, così cerchiamo di fare questo. 866 00:40:17,770 --> 00:40:20,500 Abbiamo così tanto divertimento davanti a noi oggi. 867 00:40:20,500 --> 00:40:22,480 Questo è solo grattando la superficie di CSS. 868 00:40:22,480 --> 00:40:23,010 Cerchiamo di fare questo. 869 00:40:23,010 --> 00:40:25,980 Prendiamo una pausa di cinque minuti qui perché, per la mia email, andiamo appendere in 870 00:40:25,980 --> 00:40:27,200 lì fino alle 2:30-ish oggi. 871 00:40:27,200 --> 00:40:28,540 Ma se si ha a lasciare, va bene. 872 00:40:28,540 --> 00:40:30,380 Ma faremo andare avanti dopo una pausa di cinque minuti. 873 00:40:30,380 --> 00:40:35,930 E impareremo qualcosa su PHP, MySQL, e altro ancora. 874 00:40:35,930 --> 00:40:44,520 >> Va bene, allora proviamo, ora, di legare un Alcune di queste idee insieme e fare, 875 00:40:44,520 --> 00:40:46,180 dire, il nostro motore di ricerca propri. 876 00:40:46,180 --> 00:40:48,570 Ho notato, piuttosto curiosamente, il seguente. 877 00:40:48,570 --> 00:40:52,610 Quando sei a Google.com, sei tipicamente a un URL come questo qui 878 00:40:52,610 --> 00:40:54,870 con niente dopo la dot com. 879 00:40:54,870 --> 00:40:59,760 Ma se cerco qualcosa di stupido come gatti, e premi invio, avremo - non 880 00:40:59,760 --> 00:41:01,300 stupido, ma lo sai. 881 00:41:01,300 --> 00:41:05,410 >> OK, così notare, nella parte superiore della pagina, Ora, l'URL è, naturalmente, cambiato. 882 00:41:05,410 --> 00:41:07,190 E questo non è niente nuovo per nessuno di noi. 883 00:41:07,190 --> 00:41:09,290 Si fa clic su collegamenti e roba accade sul web. 884 00:41:09,290 --> 00:41:11,420 Ma ciò che è interessante qui è il seguente. 885 00:41:11,420 --> 00:41:14,500 C'è un sacco di confusione, ma cerchiamo mi butto via cose che non mi 886 00:41:14,500 --> 00:41:16,600 piuttosto capire o non davvero guardare rilevante. 887 00:41:16,600 --> 00:41:18,490 >> Mi permetta di ottenere liberarsi di questo. 888 00:41:18,490 --> 00:41:20,030 Mi permetta di ottenere liberarsi di questo. 889 00:41:20,030 --> 00:41:22,630 E lasciatemi solo sbarazzarsi di tutto questo. 890 00:41:22,630 --> 00:41:28,840 E ora si accorgono che i gatti sono nella URL, seguito con un q, quindi un pari 891 00:41:28,840 --> 00:41:29,710 firmare di fronte ad essa. 892 00:41:29,710 --> 00:41:32,110 Così si scopre in questo modo il così che funziona quando si tratta 893 00:41:32,110 --> 00:41:33,360 di ingresso e uscita. 894 00:41:33,360 --> 00:41:37,510 >> Abbiamo a lungo parlato di scatole nere, giusto? 895 00:41:37,510 --> 00:41:41,650 Quindi se questo è una funzione implementata qui come una scatola nera, ci vuole di ingresso 896 00:41:41,650 --> 00:41:45,290 e produce output, così, i mezzi con la quale si fornisce input per un 897 00:41:45,290 --> 00:41:49,270 sito web è da modo, spesso, del suo URL. 898 00:41:49,270 --> 00:41:52,850 È sufficiente inserire un punto interrogativo e quindi un tasto uguale valore. 899 00:41:52,850 --> 00:41:56,740 E poi magari una e commerciale, e quindi un altro tasto è uguale valore, allora forse 900 00:41:56,740 --> 00:41:58,810 un altro commerciale, chiave uguale valore. 901 00:41:58,810 --> 00:42:03,030 Ecco come si passa le chiavi e i valori, le coppie di ingressi. 902 00:42:03,030 --> 00:42:07,050 >> Quindi, se ho colpito Inserisci adesso, che cosa è interessante di Google è che tutti 903 00:42:07,050 --> 00:42:10,420 che confusione ho cancellato non appare strettamente necessario. 904 00:42:10,420 --> 00:42:15,120 Tutto quello che serve per inviare a Google è questione mark q equivale gatti di ottenere 905 00:42:15,120 --> 00:42:16,160 eseguire alcuni gatti. 906 00:42:16,160 --> 00:42:20,160 Beh, l'implicazione di questo, allora, è che se mi tiro su gedit, ho iniziato 907 00:42:20,160 --> 00:42:24,360 fare il mio motore di ricerca qui in un file chiamato seach0.html. 908 00:42:24,360 --> 00:42:26,750 >> E mi permetta di andare avanti e cancellare ancora una linea che si 909 00:42:26,750 --> 00:42:27,910 non dovevano vedere. 910 00:42:27,910 --> 00:42:31,070 E ora, lasciami andare nel mio navigatore, quindi non a Google, e andare a 911 00:42:31,070 --> 00:42:34,900 http://localhost. 912 00:42:34,900 --> 00:42:36,220 E che sta per mettersi in cammino. 913 00:42:36,220 --> 00:42:43,240 Quindi stiamo andando ad avere per dire addio a che per ora, spostare questo qui, 914 00:42:43,240 --> 00:42:46,270 oh, ora stiamo andando ad avere per dire addio a quel file. 915 00:42:46,270 --> 00:42:51,700 >> Ogni volta che avete un file chiamato index.html o index.php in un 916 00:42:51,700 --> 00:42:54,980 directory, se il server Web è configurato in questo modo, ciò che si 917 00:42:54,980 --> 00:42:59,600 vedere, per impostazione predefinita, è il contenuto di tale file piuttosto che un elenco dei 918 00:42:59,600 --> 00:43:02,330 directory, come ho voluto qui. 919 00:43:02,330 --> 00:43:03,750 Maggiori informazioni su questo nella spec. 920 00:43:03,750 --> 00:43:04,610 Non hai visto che. 921 00:43:04,610 --> 00:43:06,360 >> Quindi questo è quello che volevo realmente. 922 00:43:06,360 --> 00:43:08,810 Ma un momento fa, ci fu un file in questa cartella chiamata 923 00:43:08,810 --> 00:43:11,290 index.html e index.php. 924 00:43:11,290 --> 00:43:13,380 E così il web server è stato mostrandomi quei file. 925 00:43:13,380 --> 00:43:15,900 Invece, voglio che questa directory elencare qui. 926 00:43:15,900 --> 00:43:18,340 >> Quindi ho intenzione di andare in CSS e andare a search0. 927 00:43:18,340 --> 00:43:21,770 E io sostengo che questo sta andando essere l'inizio della mia competitivo 928 00:43:21,770 --> 00:43:22,490 motore di ricerca. 929 00:43:22,490 --> 00:43:27,630 E per fare questo, ho intenzione di andare in qui, in CSS, e di aprire con 930 00:43:27,630 --> 00:43:30,190 gedit, ricerca 0. 931 00:43:30,190 --> 00:43:32,280 Ma, purtroppo, non c'è Non c'è molto da vedere qui. 932 00:43:32,280 --> 00:43:35,690 Tutto quello che ho fatto è stato utilizzare un tag di intestazione, che capita di essere chiamato h1, che 933 00:43:35,690 --> 00:43:38,180 significa essenzialmente grande e grassetto, e il gioco è fatto. 934 00:43:38,180 --> 00:43:40,810 Ma il mezzo attraverso il quale possiamo fornire input sono tramite questi 935 00:43:40,810 --> 00:43:42,180 cose chiamate forme. 936 00:43:42,180 --> 00:43:46,040 >> Quindi, mi permetta di andare avanti e di aprire e chiudere, preventivamente, un tag form lì. 937 00:43:46,040 --> 00:43:48,060 E mi permetta di andare avanti e farlo qualcosa di simile a questo. 938 00:43:48,060 --> 00:43:51,430 Ingresso, tipo di testo è uguale. 939 00:43:51,430 --> 00:43:56,320 E poi cerchiamo di chiudere il tag all'interno le staffe stesse. 940 00:43:56,320 --> 00:43:58,800 Non ho bisogno di avviare un campo di testo e fermare un campo di testo. 941 00:43:58,800 --> 00:44:01,080 E 'solo andando essere lì o no. 942 00:44:01,080 --> 00:44:06,210 >> E poi di seguito che, facciamolo tipo di ingresso è uguale a presentare. 943 00:44:06,210 --> 00:44:06,870 Salva questo. 944 00:44:06,870 --> 00:44:08,630 E ora facciamo solo fare un Quick Check sanità mentale. 945 00:44:08,630 --> 00:44:09,820 Facciamo ricaricare. 946 00:44:09,820 --> 00:44:10,890 >> OK, quindi non è male. 947 00:44:10,890 --> 00:44:13,260 Non è lo stile di Google, ma è abbastanza stretta. 948 00:44:13,260 --> 00:44:13,920 C'è un campo di testo. 949 00:44:13,920 --> 00:44:17,190 Posso scrivere alcune cose in, premere Invio, ma non succede nulla ancora. 950 00:44:17,190 --> 00:44:21,090 E questo perché non ho specificato un'azione per questa forma, per così dire. 951 00:44:21,090 --> 00:44:23,860 Quindi, se torno a l'elemento del modulo, si scopre, e so che questo solo 952 00:44:23,860 --> 00:44:27,460 dal dover leggere la documentazione, che il tag form prende un attributo 953 00:44:27,460 --> 00:44:31,880 chiamato azione che è l'URL del sito web a cui si 954 00:44:31,880 --> 00:44:34,790 desidera inviare il modulo. 955 00:44:34,790 --> 00:44:37,610 >> Io in realtà non credo che abbiamo il tempo di attuare l'intero back-end per un 956 00:44:37,610 --> 00:44:38,570 motore di ricerca oggi. 957 00:44:38,570 --> 00:44:41,900 Quindi, stiamo solo andando a dire, eh, andare su google.com / search. 958 00:44:41,900 --> 00:44:43,450 E ora lasciatemi chiudo virgolette. 959 00:44:43,450 --> 00:44:46,070 E mi permetta di specificare ulteriormente che il metodo da usare sta 960 00:44:46,070 --> 00:44:47,120 di essere chiamato ottenere. 961 00:44:47,120 --> 00:44:50,650 >> Per farla breve, ci sono due modi, a Almeno, questo è possibile inviare le informazioni 962 00:44:50,650 --> 00:44:51,880 dal browser al server. 963 00:44:51,880 --> 00:44:55,340 Uno è ottenere, e, a fini di oggi, questo significa solo nell'URL. 964 00:44:55,340 --> 00:44:58,730 Si vede esattamente i punti interrogativi, le segni uguale e E commerciali che 965 00:44:58,730 --> 00:44:59,780 abbiamo visto in precedenza. 966 00:44:59,780 --> 00:45:02,890 Oppure c'è una chiamata posta alternativo. 967 00:45:02,890 --> 00:45:06,490 Per ora, so che il post è spesso usato quando si desidera caricare i file, come 968 00:45:06,490 --> 00:45:09,820 immagini e così via, o quando si desidera presentare informazioni sulla carta di credito, o 969 00:45:09,820 --> 00:45:13,810 password, qualsiasi cosa che non lo fa davvero senso, concettualmente, o 970 00:45:13,810 --> 00:45:18,020 sicurezza saggia, per finire l'URL del il browser, qualora i genitori snooping, 971 00:45:18,020 --> 00:45:21,520 o compagni di stanza, o chiunque con accesso al computer potrebbero vedere. 972 00:45:21,520 --> 00:45:23,110 >> Così salviamo che qui. 973 00:45:23,110 --> 00:45:24,480 E ho bisogno di fare un'altra cosa. 974 00:45:24,480 --> 00:45:27,250 Non basta solo per dire dammi un campo di testo. 975 00:45:27,250 --> 00:45:29,850 Devo dare quel campo di valore di un nome. 976 00:45:29,850 --> 00:45:34,500 Quindi, mi permetta di prendere in prestito la scelta di Google di nomi, q, e specificare che secondo 977 00:45:34,500 --> 00:45:38,150 Attribuisco Non mi preoccupo il nome del pulsante Invia. 978 00:45:38,150 --> 00:45:40,890 Tutto quello che interessa è la presentazione che cosa l'utente digita poll 979 00:45:40,890 --> 00:45:41,940 >> E ora questo è una specie di brutto. 980 00:45:41,940 --> 00:45:42,820 Dice solo presentare. 981 00:45:42,820 --> 00:45:46,350 Si scopre, e so che questo dal documentazione, che può effettivamente dire 982 00:45:46,350 --> 00:45:51,710 valore è uguale tra virgolette "CS50 seach, "vicino preventivo. 983 00:45:51,710 --> 00:45:53,030 Allora cerchiamo di ricaricare nuovamente. 984 00:45:53,030 --> 00:45:57,020 Quindi continuo a colpire Comando-R, o Control-R sulla tastiera per ricaricare. 985 00:45:57,020 --> 00:45:58,605 >> Ora abbiamo un altro interessante motore di ricerca. 986 00:45:58,605 --> 00:46:00,340 Non riesco però a guardare come Ancora Google, però. 987 00:46:00,340 --> 00:46:04,100 Quindi andiamo avanti nel qui e fare un po 'di interruzione di riga. 988 00:46:04,100 --> 00:46:06,066 >> OK, così ora abbiamo Google. 989 00:46:06,066 --> 00:46:08,260 Noi in realtà quasi ne abbiamo Google. 990 00:46:08,260 --> 00:46:10,460 Così ora che cosa succederà? 991 00:46:10,460 --> 00:46:12,220 Io vado a digitare qualcosa come i gatti. 992 00:46:12,220 --> 00:46:16,570 E il browser sta per analizzare quella forma che ho definito. 993 00:46:16,570 --> 00:46:19,470 E sta andando per inviare l'utente a tale URL. 994 00:46:19,470 --> 00:46:23,420 Così questa volta, per qualche strano motivo, Ho avuto più informazioni su scorte 995 00:46:23,420 --> 00:46:24,410 che sui gatti attuali. 996 00:46:24,410 --> 00:46:30,580 Ma va bene così, perché dobbiamo ancora notare finito qui, q è uguale a gatti. 997 00:46:30,580 --> 00:46:35,200 >> Quindi, per farla breve, sembra abbastanza banale per ottenere input da parte dell'utente. 998 00:46:35,200 --> 00:46:38,190 E ad essere onesti, non c'è grappoli di altri tipi di campi modulo. 999 00:46:38,190 --> 00:46:41,510 Ci sono caselle di controllo, e poco reciprocamente pulsanti di opzione esclusiva e 1000 00:46:41,510 --> 00:46:42,960 menu a discesa, e altro ancora. 1001 00:46:42,960 --> 00:46:46,160 Ma tutti questi sono come relativamente facilmente implementato come 1002 00:46:46,160 --> 00:46:48,040 questo campo di testo è stato. 1003 00:46:48,040 --> 00:46:52,050 E alla fine, non ci resta che fare sicuro che qualcuno è in ascolto dall'altra 1004 00:46:52,050 --> 00:46:56,490 fine della linea, al fine di ottenere che informazioni elaborate, in qualche modo, e 1005 00:46:56,490 --> 00:46:58,440 darci indietro i nostri gatti. 1006 00:46:58,440 --> 00:47:00,840 >> Diamo un'occhiata a un po ' più coinvolti esempio. 1007 00:47:00,840 --> 00:47:06,020 Lasciami andare nella directory del mio Vhost, in host locale, pubblico, e dove ho 1008 00:47:06,020 --> 00:47:06,980 mettere il codice sorgente di oggi. 1009 00:47:06,980 --> 00:47:09,800 Tutto questo sarà sul corso del sito web per voi di armeggiare con. 1010 00:47:09,800 --> 00:47:15,420 E se vado in froshims, lasciatemi aprire su questo file ORA, froshim0.php. 1011 00:47:15,420 --> 00:47:18,460 Questo è un po 'più dettagliato, in modo Non scriveremo questo da zero. 1012 00:47:18,460 --> 00:47:21,970 Ma proprio ora notare alcuni alquanto caratteristiche familiari. 1013 00:47:21,970 --> 00:47:24,550 >> Uno, tag form, un'azione diversa. 1014 00:47:24,550 --> 00:47:25,670 Non è un URL completo. 1015 00:47:25,670 --> 00:47:29,930 Ora, è a quanto pare per file chiamato register0.php perché, in un momento, 1016 00:47:29,930 --> 00:47:32,660 Ho intenzione di insegnare a me stesso un po ' qualcosa su PHP, un linguaggio di programmazione 1017 00:47:32,660 --> 00:47:37,360 linguaggio, perché PHP può essere usato per attuare quello che Google implementato come 1018 00:47:37,360 --> 00:47:39,650 l'estremità posteriore della loro motori di ricerca. 1019 00:47:39,650 --> 00:47:42,890 >> Google, in realtà, utilizza probabilmente po 'di Python, alcuni C + +, e 1020 00:47:42,890 --> 00:47:44,230 mazzi di altre lingue. 1021 00:47:44,230 --> 00:47:48,230 Ma potremmo certamente implementare la ricerca risultati utilizzando PHP, se volevamo. 1022 00:47:48,230 --> 00:47:49,610 Ma per ora, noi terremo le cose semplici. 1023 00:47:49,610 --> 00:47:53,320 E questo è in realtà richiama uno degli altri siti I primi 1024 00:47:53,320 --> 00:47:54,490 fatto anni fa. 1025 00:47:54,490 --> 00:47:58,160 >> Ai miei tempi, ti sei registrato per sport da palestra come una matricola di 1026 00:47:58,160 --> 00:48:00,880 la compilazione di un foglio di carta, a piedi attraverso il cortile, e rilasciandolo in 1027 00:48:00,880 --> 00:48:04,890 la cassetta postale di un Proctor in Wigglesworth, e fu così che si 1028 00:48:04,890 --> 00:48:05,460 registrato. 1029 00:48:05,460 --> 00:48:09,650 E così il mio progetto poco dopo CS50, era di mettere quella, che rende perfetti 1030 00:48:09,650 --> 00:48:13,460 senso, sopra il web, che non era come in voga allora come lo è ora. 1031 00:48:13,460 --> 00:48:17,510 Ma tutto quello che dovevamo fare era creare, essenzialmente, un modulo HTML. 1032 00:48:17,510 --> 00:48:19,640 >> E che forma sembrava meno così. 1033 00:48:19,640 --> 00:48:22,480 Ho avuto un ingresso per il nome di matricola. 1034 00:48:22,480 --> 00:48:27,780 Ho avuto un'altra casella di controllo per se o o non volevano essere capitano, che cosa 1035 00:48:27,780 --> 00:48:30,400 il loro genere è stato, e quale sia il loro dormitorio era. 1036 00:48:30,400 --> 00:48:33,370 E poi mi rigido codificato nelle cose come Apley Corte, e Canaday, 1037 00:48:33,370 --> 00:48:34,880 Grays, e così via. 1038 00:48:34,880 --> 00:48:36,300 >> Quindi, di nuovo, nuovi tag. 1039 00:48:36,300 --> 00:48:39,820 Non hanno visto questi prima, nuova attributi, ma abbastanza accessibile. 1040 00:48:39,820 --> 00:48:42,360 Una volta che vedete un esempio, è possibile tipo di prendere in prestito l'idea e fare una goccia 1041 00:48:42,360 --> 00:48:43,820 menù per la maggior parte giù niente. 1042 00:48:43,820 --> 00:48:46,350 Ma ciò che è fondamentale è che ciascuno di queste cose hanno un nome. 1043 00:48:46,350 --> 00:48:49,720 E in fondo a questa forma, non c'è un pulsante submit cui etichetta, 1044 00:48:49,720 --> 00:48:51,510 o valore, è il registro. 1045 00:48:51,510 --> 00:48:52,670 >> Quindi andiamo a questa pagina. 1046 00:48:52,670 --> 00:48:55,050 Lasciami andare indietro nel elenco di directory. 1047 00:48:55,050 --> 00:48:59,410 Lasciami andare in froshims, e andare a froshim0.php. 1048 00:48:59,410 --> 00:49:01,150 Quindi è orribile, ad essere onesti. 1049 00:49:01,150 --> 00:49:03,950 Così ho potuto sicuramente stilizzare questo con un po 'di CSS, ho potuto fare un po' di 1050 00:49:03,950 --> 00:49:06,890 grafica, magari aggiungere alcuni colori, e di rendere questo più bella. 1051 00:49:06,890 --> 00:49:10,530 Ma funzionalmente, direi che questo in realtà è abbastanza completa. 1052 00:49:10,530 --> 00:49:15,190 >> Purtroppo, quando riempio questo fuori, David, il capitano, Maschio, scegliamo, 1053 00:49:15,190 --> 00:49:20,510 diciamo Matthews, Register, tutto ciò che accade è questo. 1054 00:49:20,510 --> 00:49:21,910 A meno di notare un paio di take away. 1055 00:49:21,910 --> 00:49:27,130 Uno, quello file restituito quelli risultati, a quanto pare? 1056 00:49:27,130 --> 00:49:29,470 Così è, in effetti, register0.php. 1057 00:49:29,470 --> 00:49:34,570 Quindi il fatto che abbiamo visto che l'azione valore di un momento fa per register0, questo 1058 00:49:34,570 --> 00:49:37,500 corrobora che abbiamo davvero finito fino a quel particolare file. 1059 00:49:37,500 --> 00:49:39,040 >> Ora questo è solo brutto testo. 1060 00:49:39,040 --> 00:49:42,810 Meno di notare che questo testo è provenienti da host locale, 1061 00:49:42,810 --> 00:49:44,170 che è dall'apparecchio. 1062 00:49:44,170 --> 00:49:46,350 Pensate l'apparecchio ora come appena un server web, che potrebbe essere in 1063 00:49:46,350 --> 00:49:46,910 Science Center. 1064 00:49:46,910 --> 00:49:48,060 Potrebbe essere sul web attuale. 1065 00:49:48,060 --> 00:49:49,850 Quindi è accessibile al pubblico. 1066 00:49:49,850 --> 00:49:55,480 >> Quindi, chiaramente, c'è qualche modo di passare formare ingressi del campo a un server 1067 00:49:55,480 --> 00:49:56,840 in modo che possa fare qualcosa con loro. 1068 00:49:56,840 --> 00:49:59,020 Purtroppo, register0 è piuttosto stupido. 1069 00:49:59,020 --> 00:50:01,870 Tutto ciò che fa è stampare un array che assomiglia a questo. 1070 00:50:01,870 --> 00:50:04,790 E non è un array nella senso che noi conosciamo. 1071 00:50:04,790 --> 00:50:08,760 Risulta che PHP, e un sacco di lingue, hanno non solo numericamente 1072 00:50:08,760 --> 00:50:12,350 array indicizzati cui primo indice è zero, uno, poi due, poi punto, 1073 00:50:12,350 --> 00:50:13,780 dot, dot, n meno 1. 1074 00:50:13,780 --> 00:50:16,400 >> Questo è ciò che si chiama un array associativo. 1075 00:50:16,400 --> 00:50:21,150 Un array associativo è quello in cui è possibile memorizzare le coppie di valori chiave in cui 1076 00:50:21,150 --> 00:50:23,160 la chiave non è necessariamente un numero. 1077 00:50:23,160 --> 00:50:25,580 Potrebbe in effetti essere una stringa, una parola. 1078 00:50:25,580 --> 00:50:28,230 E quindi questo può essere implementato, sotto il cofano, si scopre, 1079 00:50:28,230 --> 00:50:31,896 utilizzando una struttura di dati nota come? 1080 00:50:31,896 --> 00:50:33,600 Pensiero qualcosa di drammatico stava per accadere - 1081 00:50:33,600 --> 00:50:34,840 tabella di hash. 1082 00:50:34,840 --> 00:50:38,955 >> Quindi una tabella hash, richiamo, quelli di voi chi l'ha fatto per P set 6, o anche ricordare 1083 00:50:38,955 --> 00:50:44,110 esso, almeno, anche se hai fatto una prova, un tabella hash, nel nostro uso, è stato utilizzato per 1084 00:50:44,110 --> 00:50:45,090 basta memorizzare parole. 1085 00:50:45,090 --> 00:50:47,980 Ma in realtà, si stava archiviando chiavi e valori. 1086 00:50:47,980 --> 00:50:51,940 Se è stato implementato una tabella hash per P set 6 dizionario, le chiavi erano il 1087 00:50:51,940 --> 00:50:56,890 parole stesse, ei valori erano effettivamente vero o falso. 1088 00:50:56,890 --> 00:51:00,190 Sì, qui, o implicitamente, no, non qui. 1089 00:51:00,190 --> 00:51:02,140 >> Beh, possiamo generalizzare questa idea. 1090 00:51:02,140 --> 00:51:06,230 E potremmo usare un dato molto simili struttura per memorizzare la stringa non 1091 00:51:06,230 --> 00:51:10,180 soli nella vostra tabella hash in sé, ma supporre che in ogni uno dei vostri hash 1092 00:51:10,180 --> 00:51:11,130 nodi della tabella. 1093 00:51:11,130 --> 00:51:14,210 E si potrebbe anche fare questo in una prova piuttosto che avere un bool. 1094 00:51:14,210 --> 00:51:15,350 Si potrebbe avere qualcos'altro. 1095 00:51:15,350 --> 00:51:19,590 E se la chiave non era maxwell, per esempio, ma "nome", tra virgolette o 1096 00:51:19,590 --> 00:51:22,900 tra virgolette "capitano". E all'interno la struttura dei dati C, si mette un 1097 00:51:22,900 --> 00:51:26,170 valore, non solo un booleano, ma di valore come tra virgolette "David", o 1098 00:51:26,170 --> 00:51:28,690 "M" o "Matthews," e così via. 1099 00:51:28,690 --> 00:51:33,170 >> Così quelle stesse strutture dati che abbiamo usato esistono a quanto pare in altre lingue. 1100 00:51:33,170 --> 00:51:37,650 E direi che sono in realtà molto, molto più semplice per accedere qui. 1101 00:51:37,650 --> 00:51:40,300 Diamo infatti un'occhiata ora a un certo tale sintassi. 1102 00:51:40,300 --> 00:51:43,120 >> Ho intenzione di andare in una directory di PHP. 1103 00:51:43,120 --> 00:51:48,390 E ho intenzione di aprire un migliore versione di ciao-0 da prima. 1104 00:51:48,390 --> 00:51:50,270 Si noti che tutto quello che ho fatto è stato aggiungere alcuni commenti. 1105 00:51:50,270 --> 00:51:52,530 Così siamo in grado di sbarazzarsi di quella distrazione. 1106 00:51:52,530 --> 00:51:57,610 >> E questo programma fa davvero stampa ciao perché ho specificato tra 1107 00:51:57,610 --> 00:52:01,420 tag che voglio eseguire quel codice. 1108 00:52:01,420 --> 00:52:03,380 Ora, vedremo in un momento perché questo è utile. 1109 00:52:03,380 --> 00:52:05,630 Ma apriamo un altro esempio. 1110 00:52:05,630 --> 00:52:10,430 Lasciami andare avanti e di aprire dire, gedit condizioni di uno. 1111 00:52:10,430 --> 00:52:12,970 >> Questo è molto indietro nel tempo adesso. 1112 00:52:12,970 --> 00:52:16,320 Ma settimane fa, credo, in una settimana o due settimane, abbiamo avuto un esempio chiamato 1113 00:52:16,320 --> 00:52:18,470 conditions1.c. 1114 00:52:18,470 --> 00:52:22,050 E ho deciso di implementare di nuovo in PHP, solo per tipo di sottolineare che 1115 00:52:22,050 --> 00:52:26,500 PHP, sintatticamente, è quasi identico a C. Questo non è un salto enorme 1116 00:52:26,500 --> 00:52:27,840 dalla settimana scorsa a questo. 1117 00:52:27,840 --> 00:52:31,230 >> Si noti in alto di questo programma, che inizia, come prima, con qualche 1118 00:52:31,230 --> 00:52:34,260 commenti, che io mi libererò di come una distrazione. 1119 00:52:34,260 --> 00:52:37,410 Si noti che io sono in PHP modalità in questo file. 1120 00:52:37,410 --> 00:52:40,160 Quindi questo codice, vedremo, sara 'eseguito. 1121 00:52:40,160 --> 00:52:42,670 Si noti che non c'è readline, che è probabilmente il 1122 00:52:42,670 --> 00:52:46,230 analogica a PHP di GetString. 1123 00:52:46,230 --> 00:52:47,390 Si noti che è un po 'diverso. 1124 00:52:47,390 --> 00:52:51,410 In realtà si specifica un prompt per la funzione di chiamata linea di lettura, e questo è 1125 00:52:51,410 --> 00:52:52,180 ciò che l'utente vede. 1126 00:52:52,180 --> 00:52:53,520 Quindi non c'è bisogno di printf manualmente. 1127 00:52:53,520 --> 00:52:54,860 Ma questo non è un grosso problema. 1128 00:52:54,860 --> 00:52:59,150 Io vado a memorizzare, all'interno di $ n, il valore di questo ritorno, in modo qualunque sia il 1129 00:52:59,150 --> 00:53:00,490 utente digita è il loro int. 1130 00:53:00,490 --> 00:53:01,660 Ed ecco un altro curiosità. 1131 00:53:01,660 --> 00:53:05,810 Si scopre, in PHP, qualsiasi variabile deve solo essere preceduto 1132 00:53:05,810 --> 00:53:06,970 con un segno di dollaro. 1133 00:53:06,970 --> 00:53:08,110 E 'un po' fastidioso. 1134 00:53:08,110 --> 00:53:10,870 Ma notate che cosa non ho fatto in PHP. 1135 00:53:10,870 --> 00:53:13,980 Ciò che manca dalla mano sinistra lato del segno di uguale? 1136 00:53:13,980 --> 00:53:15,430 >> Nessuna menzione di tipo. 1137 00:53:15,430 --> 00:53:19,400 Quindi questo è diverso da C. Per una migliore o per il peggio, PHP è un vagamente 1138 00:53:19,400 --> 00:53:20,550 linguaggio tipizzato. 1139 00:53:20,550 --> 00:53:22,010 Essa ha ancora i numeri. 1140 00:53:22,010 --> 00:53:23,240 Essa ha ancora corde. 1141 00:53:23,240 --> 00:53:24,015 Essa ha ancora booleani. 1142 00:53:24,015 --> 00:53:26,220 E se ha qualche altri tipi di dati. 1143 00:53:26,220 --> 00:53:30,570 Ma voi, il programmatore, di solito non c'è bisogno di preoccuparsi di loro. 1144 00:53:30,570 --> 00:53:34,010 Il vantaggio di questo è che rende è un po 'più facile da programmare. 1145 00:53:34,010 --> 00:53:35,380 Si può pensare a un po 'meno. 1146 00:53:35,380 --> 00:53:39,840 Il lato negativo è che si apre anche a potenziali bug se accidentalmente 1147 00:53:39,840 --> 00:53:43,080 il trattamento di un numero come una stringa, una stringa come un numero, potenzialmente, ma anche 1148 00:53:43,080 --> 00:53:46,150 poi, PHP, e un sacco di lingue, sono piuttosto tolleranti. 1149 00:53:46,150 --> 00:53:49,050 Useranno quello che si chiama cast implicito. 1150 00:53:49,050 --> 00:53:55,220 E se si tenta di utilizzare n nel contesto di una situazione numerico, sarà 1151 00:53:55,220 --> 00:53:58,040 convertire ciò che qui sta per essere un stringa, perché se l'utente digita 1152 00:53:58,040 --> 00:54:01,570 qualcosa dentro, e si ottiene il risultato, come con readline, o ottenere stringa, 1153 00:54:01,570 --> 00:54:02,910 che sta per restituire una stringa. 1154 00:54:02,910 --> 00:54:07,360 >> Ma notate, un paio di righe dopo, ho verificare se n è maggiore di zero. 1155 00:54:07,360 --> 00:54:13,370 Così PHP sta per lanciare implicitamente mia 123 "stringa", o qualsiasi altra cosa che l'utente 1156 00:54:13,370 --> 00:54:14,860 tipi di, in un int. 1157 00:54:14,860 --> 00:54:18,730 Così, in breve, roba funziona molto più intuitivo. 1158 00:54:18,730 --> 00:54:23,410 Quindi noi ora cominciamo a rilassare alcuni dei le cose che abbiamo fatto in passato. 1159 00:54:23,410 --> 00:54:24,780 >> Un sacco di questa roba è stesso, però. 1160 00:54:24,780 --> 00:54:26,340 Eppure hanno eguali eguali. 1161 00:54:26,340 --> 00:54:30,350 Per inciso anche PHP è uguale uguale uguale, ma più su quello, forse, in 1162 00:54:30,350 --> 00:54:30,850 il futuro. 1163 00:54:30,850 --> 00:54:31,150 Quello era un. 1164 00:54:31,150 --> 00:54:35,660 Errore di battitura, ma due segni uguale significa la stessa cosa di prima, per il confronto. 1165 00:54:35,660 --> 00:54:37,060 printf significa la stessa cosa di prima. 1166 00:54:37,060 --> 00:54:39,160 Backslash n significa la stessa cosa di prima. 1167 00:54:39,160 --> 00:54:40,390 >> Allora, come faccio a eseguire questo programma? 1168 00:54:40,390 --> 00:54:44,400 Beh, come prima, se lo faccio PHP, conditions1.php, e digitare 1169 00:54:44,400 --> 00:54:46,560 un numero come 123. 1170 00:54:46,560 --> 00:54:47,720 Questo è un numero positivo. 1171 00:54:47,720 --> 00:54:49,510 Se digito 0, prendo 0. 1172 00:54:49,510 --> 00:54:53,700 E se digito 123 negativo, ottengo eseguire un numero negativo, che è solo 1173 00:54:53,700 --> 00:54:59,050 per dire, sintatticamente, PHP è super, super simile. 1174 00:54:59,050 --> 00:55:03,250 >> Allora, perché è questo ora utile in un contesto web? 1175 00:55:03,250 --> 00:55:06,710 Bene, torniamo a questo froshims esempio, che sembrava, 1176 00:55:06,710 --> 00:55:08,600 ancora una volta, come questo qui. 1177 00:55:08,600 --> 00:55:11,580 E diciamo effettivamente tirare su la pagina web ancora una volta, che si presentava così. 1178 00:55:11,580 --> 00:55:14,930 Cosa possiamo fare con il dati che sono presentati? 1179 00:55:14,930 --> 00:55:18,770 >> Beh, mi permetta di aprire una nuova versione di questo. 1180 00:55:18,770 --> 00:55:20,920 E vedrai che il problema specificazione set si cammina 1181 00:55:20,920 --> 00:55:22,850 attraverso alcuni di questi. 1182 00:55:22,850 --> 00:55:29,610 Piuttosto che iniziare da zero, diamo un'occhiata a froshims3, 1183 00:55:29,610 --> 00:55:31,410 che fa un po 'di più. 1184 00:55:31,410 --> 00:55:34,780 >> Si noti in primo luogo, in realtà, apriamo su ciò che era 0, in modo da vedere 1185 00:55:34,780 --> 00:55:37,170 quello che registro è 0. 1186 00:55:37,170 --> 00:55:40,040 Notate cosa registro 0 ha fatto. 1187 00:55:40,040 --> 00:55:41,730 Uno, ho commenti all'inizio. 1188 00:55:41,730 --> 00:55:43,900 Eliminare quelle e concentrarsi solo su questo. 1189 00:55:43,900 --> 00:55:48,730 La maggior parte del contenuto di register0.php sono, ovviamente, che lingua? 1190 00:55:48,730 --> 00:55:49,980 Proprio PHP crudo. 1191 00:55:49,980 --> 00:55:53,430 >> Quindi avviso, questo file non inizia con, al momento, parentesi aperta, 1192 00:55:53,430 --> 00:55:54,970 punto interrogativo, PHP. 1193 00:55:54,970 --> 00:55:59,800 PHP non consentono di mescolarsi Codice PHP con tag HTML. 1194 00:55:59,800 --> 00:56:04,130 Ma l'ho fatto qui dentro della pagina qui. 1195 00:56:04,130 --> 00:56:08,180 >> Ora, ancora una volta, devi sapere questo solo dal dopo aver guardato il manuale. print_r, 1196 00:56:08,180 --> 00:56:13,410 si scopre, è print_recursive. _recursive E questo è solo un pratico 1197 00:56:13,410 --> 00:56:16,780 funzione di utilità che stampa appena fuori, ricorsivamente, qualunque cosa si passi. 1198 00:56:16,780 --> 00:56:18,760 Se si passi un array, sara stampare un array. 1199 00:56:18,760 --> 00:56:20,180 Se si passi un numero, che sarà stampato un numero. 1200 00:56:20,180 --> 00:56:21,570 Ad essa una stringa, sarà stampare una stringa. 1201 00:56:21,570 --> 00:56:24,500 Se ad essa una tabella di hash, è stamperà una tabella hash. 1202 00:56:24,500 --> 00:56:26,730 Non è necessario scrivere tutto di tale codice. 1203 00:56:26,730 --> 00:56:29,490 >> Ora accorgo che sto entrando Modalità PHP qui. 1204 00:56:29,490 --> 00:56:32,070 Sono uscita dalla modalità PHP qui. 1205 00:56:32,070 --> 00:56:35,950 Così, quando il server web legge questo file verso il basso, da sinistra a destra, perché 1206 00:56:35,950 --> 00:56:40,750 finisce in un nome di file chiamato. php, tutto ciò non è all'interno dei tag PHP è 1207 00:56:40,750 --> 00:56:42,820 solo andando a essere spiedo fuori, come HTML. 1208 00:56:42,820 --> 00:56:43,630 Non un grosso problema. 1209 00:56:43,630 --> 00:56:49,280 Ma appena il server web accorge questo, sta andando a dire, che non dovrei 1210 00:56:49,280 --> 00:56:51,850 sputare fuori, letteralmente, print_r di posta. 1211 00:56:51,850 --> 00:56:54,910 Dovrei eseguire il seguente linea di codice. 1212 00:56:54,910 --> 00:56:59,850 >> Quindi l'ultima domanda, allora, di questo file si, beh, cosa diavolo è questo? 1213 00:56:59,850 --> 00:57:00,530 Prova a indovinare. 1214 00:57:00,530 --> 00:57:04,230 Che cosa è $ _POST, probabilmente? 1215 00:57:04,230 --> 00:57:07,070 >> AUDIENCE: [incomprensibile] 1216 00:57:07,070 --> 00:57:08,830 >> SPEAKER 1: Sì, i dati inviati. 1217 00:57:08,830 --> 00:57:11,350 Ricordiamo, facciamo scorrere indietro nel tempo solo per un momento. 1218 00:57:11,350 --> 00:57:13,165 froshim0, ancora una volta, sembrava tale. 1219 00:57:13,165 --> 00:57:15,640 Un super maggioranza di questa è solo HTML. 1220 00:57:15,640 --> 00:57:18,410 Anche in questo caso, alcuni tag che non hai ancora visto, o con cui 1221 00:57:18,410 --> 00:57:19,360 si ha già familiarità. 1222 00:57:19,360 --> 00:57:21,990 Ma la cosa interessante è stato questo. 1223 00:57:21,990 --> 00:57:27,270 Questa linea è ciò che veramente unisce al nostro file register0.php. 1224 00:57:27,270 --> 00:57:29,200 Sto presentando tramite metodo post. 1225 00:57:29,200 --> 00:57:33,130 E questo significa che i parametri l'utente a non sono 1226 00:57:33,130 --> 00:57:35,150 andando a finire dove. 1227 00:57:35,150 --> 00:57:36,175 >> Non andremo a presentarsi nella URL. 1228 00:57:36,175 --> 00:57:39,020 Essi sono ancora in corso per essere inviato dal client, dal browser, la 1229 00:57:39,020 --> 00:57:42,080 server, ma solo attraverso qualche altra meccanismo che ci rinunciamo nostre mani 1230 00:57:42,080 --> 00:57:44,330 a per oggi, ma non è nella URL. 1231 00:57:44,330 --> 00:57:47,630 Ma bando il rapporto con la società post, che, per convenzione, è 1232 00:57:47,630 --> 00:57:49,160 minuscolo qui. 1233 00:57:49,160 --> 00:57:54,090 >> Ma se apro register0.php, Mi pare di stampare questa. 1234 00:57:54,090 --> 00:57:56,450 Quindi questo è una specie di strano convenzione di denominazione. 1235 00:57:56,450 --> 00:58:01,430 Ma cosa c'è di bello in PHP è che quando utilizzando PHP in un contesto web, non a un 1236 00:58:01,430 --> 00:58:04,480 linea di comando come ho fatto poco fa, quando si sta usando in un web 1237 00:58:04,480 --> 00:58:10,580 pagina, in una directory Vhost come siamo, automaticamente verrà PHP riempire questo 1238 00:58:10,580 --> 00:58:15,560 cosa, che è un array associativo, così dire, una tabella hash, con 1239 00:58:15,560 --> 00:58:17,290 tutto ciò che l'utente ha digitato dentro 1240 00:58:17,290 --> 00:58:22,000 >> In breve, $ _POST in tutte le protezioni è una variabile globale che PHP solo 1241 00:58:22,000 --> 00:58:25,050 crea magicamente per voi quando utilizzando PHP in un contesto web. 1242 00:58:25,050 --> 00:58:29,160 E mette dentro di esso tutte le nomi dei parametri nella forma che 1243 00:58:29,160 --> 00:58:33,200 è stato sottoposto a questo file e tutti i valori che l'utente ha digitato dentro 1244 00:58:33,200 --> 00:58:37,790 Quindi passa a voi ciò che l'utente digitato a quella forma. 1245 00:58:37,790 --> 00:58:42,210 >> Quindi, prima, abbiamo ottenuto uscita veramente stupido di vedere solo questo, perché tutto quello che ho fatto 1246 00:58:42,210 --> 00:58:44,400 è stato ricorsivamente stampare questo array. 1247 00:58:44,400 --> 00:58:46,060 La chiave è il nome, il valore è David. 1248 00:58:46,060 --> 00:58:46,980 La chiave è il capitano. 1249 00:58:46,980 --> 00:58:47,970 Il valore è acceso. 1250 00:58:47,970 --> 00:58:52,300 E la doppia freccia e l'angolo Staffa lì, questo è solo arbitrario. 1251 00:58:52,300 --> 00:58:53,270 Questo non è il codice. 1252 00:58:53,270 --> 00:58:57,690 Questo è solo il modo di PHP di mostrare quale sia il valore di qualche chiave è. 1253 00:58:57,690 --> 00:59:03,000 >> Ma ora lasciatemi propongo in froshIMs3, è quasi identico 1254 00:59:03,000 --> 00:59:04,950 tranne sottopone a questo file. 1255 00:59:04,950 --> 00:59:08,570 E ancora una volta, abbiamo intenzione di specie di appena sguardo a questo, solo per vedere un po 'di 1256 00:59:08,570 --> 00:59:12,040 sintassi, ma notate che cosa fa questo file. 1257 00:59:12,040 --> 00:59:14,930 Prova a indovinare solo sulla base delle linee di codice, che probabilmente non sembrare 1258 00:59:14,930 --> 00:59:17,410 Greca, in qualche misura, è apparentemente facendo. 1259 00:59:17,410 --> 00:59:20,580 1260 00:59:20,580 --> 00:59:23,110 >> Questo file è in qualche modo legata per posta, e-mail. 1261 00:59:23,110 --> 00:59:24,770 Così che cosa sta facendo questo programma? 1262 00:59:24,770 --> 00:59:28,740 In questa versione, se dovessi realmente compilare questo modulo - e lasciami andare a 1263 00:59:28,740 --> 00:59:30,760 froshIMs3, non froshIMs0 - 1264 00:59:30,760 --> 00:59:33,280 1265 00:59:33,280 --> 00:59:34,540 la forma sembra la stessa. 1266 00:59:34,540 --> 00:59:37,980 David, capitano, di sesso maschile, dormitorio, Matthews. 1267 00:59:37,980 --> 00:59:42,980 Ma se io presento questo, questo file è intenzione di andare a register3.php. 1268 00:59:42,980 --> 00:59:46,330 >> E io sostengo, cercando in esso è codice sorgente, che sta per 1269 00:59:46,330 --> 00:59:47,650 in qualche modo coinvolgere email. 1270 00:59:47,650 --> 00:59:49,620 Lasciami andare avanti e aprire questa in una finestra più grande, così abbiamo 1271 00:59:49,620 --> 00:59:51,030 può vedere in modo più pulito. 1272 00:59:51,030 --> 00:59:57,220 Siamo in Vhosts, host locale, pubblico, froshims. 1273 00:59:57,220 --> 00:59:58,680 Ho intenzione di aprire un diverso programma, solo così possiamo 1274 00:59:58,680 --> 01:00:00,160 può vedere di più in una sola volta. 1275 01:00:00,160 --> 01:00:03,100 >> Così ora qui, notare alcune cose. 1276 01:00:03,100 --> 01:00:06,530 Nella parte superiore del file è aperto staffa, punto interrogativo, PHP. 1277 01:00:06,530 --> 01:00:08,920 Poi c'è un sacco di commenti, che possiamo ignorare, è 1278 01:00:08,920 --> 01:00:10,450 poco interessante per ora. 1279 01:00:10,450 --> 01:00:11,300 >> Ora c'è questo. 1280 01:00:11,300 --> 01:00:14,200 Si scopre PHP ha molto di codice chiamato richiedere. 1281 01:00:14,200 --> 01:00:19,110 E 'molto simile nello spirito alla C di includere, hash include, che 1282 01:00:19,110 --> 01:00:21,980 afferra sostanzialmente il contenuto di alcune altro file e appena li plops qui, 1283 01:00:21,980 --> 01:00:22,930 in modo da poterli utilizzare. 1284 01:00:22,930 --> 01:00:27,060 In questo caso, l'apparecchio è dotato, pre-installato, una biblioteca libera e 1285 01:00:27,060 --> 01:00:29,900 libreria open source chiamato PHP mailer che chiunque può 1286 01:00:29,900 --> 01:00:30,770 scaricare da internet. 1287 01:00:30,770 --> 01:00:32,000 Abbiamo appena fatto per voi. 1288 01:00:32,000 --> 01:00:36,130 E questo significa che ora ho e-mail funzionalità a mia disposizione. 1289 01:00:36,130 --> 01:00:38,170 >> Ora, notare alcune cose. 1290 01:00:38,170 --> 01:00:41,120 Ho intenzione di convalidare il invio del form. 1291 01:00:41,120 --> 01:00:45,980 Si scopre che PHP, uno, ha esclamativo punti per l'operatore NOT, proprio come 1292 01:00:45,980 --> 01:00:49,810 C. Ma PHP ha anche una funzione di chiamato vuoto. 1293 01:00:49,810 --> 01:00:53,920 >> Vuoto solo restituisce true se il valore della cosa si passi in 1294 01:00:53,920 --> 01:00:57,190 tra parentesi è vuoto, come l' utente non digitare nulla dentro 1295 01:00:57,190 --> 01:01:02,680 Quindi questo sta dicendo, e notare la sintassi, ricorda molto C, se la 1296 01:01:02,680 --> 01:01:07,730 chiave con nome, in modo che il campo del nome nella forma, che è stata presentata tramite posta, 1297 01:01:07,730 --> 01:01:13,010 l'utente, non è quello di svuotare, e la loro genere non è vuoto in forma come 1298 01:01:13,010 --> 01:01:15,980 bene, e il loro dormitorio non è vuoto - 1299 01:01:15,980 --> 01:01:19,980 ma noto che non mi importa di capitano, allora che cosa abbiamo intenzione di fare? 1300 01:01:19,980 --> 01:01:21,990 >> Ho intenzione di eseguire questa riga di codice. 1301 01:01:21,990 --> 01:01:24,100 E si può pensare a questo tipo di come malloc, ma è un po ' 1302 01:01:24,100 --> 01:01:24,800 più elaborato di quello. 1303 01:01:24,800 --> 01:01:29,200 Ma per ora questo mi dà una speciale struct di tipo PHP mailer. 1304 01:01:29,200 --> 01:01:31,410 Ma ignorare la parola chiave nuova per oggi. 1305 01:01:31,410 --> 01:01:35,670 >> Ora ho intenzione di chiamare una funzione chiamata IsSMTP, che dice, utilizza il protocollo SMTP. 1306 01:01:35,670 --> 01:01:39,380 Questa è la porta 25, proprio come il video la scorsa settimana, quando la cosa stava gettando 1307 01:01:39,380 --> 01:01:40,710 messaggi di posta elettronica nel firewall. 1308 01:01:40,710 --> 01:01:42,440 Porta 25 è SMTP. 1309 01:01:42,440 --> 01:01:44,410 SMTP indica di utilizzare il server di posta. 1310 01:01:44,410 --> 01:01:46,215 Quale, possiamo usare Harvard SMTP.fas.harvard.edu. 1311 01:01:46,215 --> 01:01:48,850 1312 01:01:48,850 --> 01:01:51,590 >> Siamo in grado di impostare l'indirizzo del mittente di essere John Harvard. 1313 01:01:51,590 --> 01:01:55,090 Se ho scorrere giù ulteriormente, è possibile impostare l'indirizzo del destinatario, solo 1314 01:01:55,090 --> 01:01:56,840 arbitrariamente, di essere John Harvard è così. 1315 01:01:56,840 --> 01:01:59,210 Quindi sta andando essere emailing se stesso. 1316 01:01:59,210 --> 01:02:01,600 >> Ora posso impostare il soggetto per essere registrazione. 1317 01:02:01,600 --> 01:02:03,700 E posso impostare il corpo della posta elettronica come segue. 1318 01:02:03,700 --> 01:02:06,500 Questa linea sembra un po 'più criptico, ma questo è solo perché c'è un sacco 1319 01:02:06,500 --> 01:02:07,450 delle informazioni in esso. 1320 01:02:07,450 --> 01:02:10,670 Uno, c'è un operatore punto. 1321 01:02:10,670 --> 01:02:14,510 Qualcuno deve sapere già che cosa l'operatore punto fa. 1322 01:02:14,510 --> 01:02:15,436 È concatenazione. 1323 01:02:15,436 --> 01:02:19,240 Quindi, se volete prendere una stringa in PHP, e aggiungerlo, o anteporre esso, a 1324 01:02:19,240 --> 01:02:23,500 un'altra stringa in PHP, grazie a Dio si non c'è bisogno di usare StrCopy e malloc, 1325 01:02:23,500 --> 01:02:25,490 e tutto questo più. 1326 01:02:25,490 --> 01:02:28,765 >> Se si desidera concatenare due stringhe, che ha a cuore la memoria. 1327 01:02:28,765 --> 01:02:30,850 Lasciate figura PHP che per voi. 1328 01:02:30,850 --> 01:02:35,200 Cosa PHP farà con l'operatore punto Qui non è solo fare una grande frase fuori 1329 01:02:35,200 --> 01:02:37,900 di questa linea, questa linea, questa linea, questa linea. 1330 01:02:37,900 --> 01:02:40,460 E ora preavviso, sta andando da collegare valori. 1331 01:02:40,460 --> 01:02:43,680 Così l'e-mail che John Harvard sta andando per ricevere sta letteralmente andando a dire 1332 01:02:43,680 --> 01:02:49,450 nome, colon, qualcosa, anzi, poi abbiamo chiudere la stringa e concatenare su 1333 01:02:49,450 --> 01:02:52,220 qualunque sia l'utente ha digitato in, poi una nuova linea. 1334 01:02:52,220 --> 01:02:54,570 >> Poi, nella riga successiva di John Harvard di e-mail, sta andando a dire 1335 01:02:54,570 --> 01:02:55,910 Capitano, On o niente. 1336 01:02:55,910 --> 01:02:57,810 E 'intenzione di dire sesso, maschio o femmina. 1337 01:02:57,810 --> 01:02:59,680 Dormitorio sarà Matthews nel mio caso. 1338 01:02:59,680 --> 01:03:03,400 E poi notare virgola familiare proprio alla fine. 1339 01:03:03,400 --> 01:03:07,830 E poi, qui, avviso, un po ' criptico ancora, ma ancora una volta, a seguito di una 1340 01:03:07,830 --> 01:03:12,730 modello che diventerà più familiare dopo aver impostato P 7, se l'invio della posta elettronica 1341 01:03:12,730 --> 01:03:16,610 restituisce false, poi andare avanti e morire. 1342 01:03:16,610 --> 01:03:19,610 >> Così PHP ha una funzione chiamata die, che, letteralmente, uccide solo il 1343 01:03:19,610 --> 01:03:22,830 sito internet e si limita a stampare qualunque si dice - la sua sta morendo 1344 01:03:22,830 --> 01:03:24,280 parole, per così dire. 1345 01:03:24,280 --> 01:03:28,310 E che, nel caso, stamperà che cosa le informazioni di errore è per 1346 01:03:28,310 --> 01:03:29,860 qualunque cosa è successo ad andare male. 1347 01:03:29,860 --> 01:03:34,490 Quindi, per farla breve qui, quello che abbiamo è un esempio in cui quando l'utente 1348 01:03:34,490 --> 01:03:39,150 invia il modulo, froshim0, froshims3.php, va a 1349 01:03:39,150 --> 01:03:40,760 register3.php. 1350 01:03:40,760 --> 01:03:45,290 Ma register3.php procede poi per eseguire tutte queste linee. 1351 01:03:45,290 --> 01:03:46,620 >> Quindi c'è qualche rosticcerie qui. 1352 01:03:46,620 --> 01:03:50,380 Uno, è apparentemente abbastanza facile, programmaticamente, per inviare messaggi di posta elettronica, 1353 01:03:50,380 --> 01:03:50,830 che è buono. 1354 01:03:50,830 --> 01:03:53,500 Quando gli utenti registrati per il vostro sito, in questo caso, quando si registrano per la vostra 1355 01:03:53,500 --> 01:03:56,220 lo sport, è possibile inviare la matricola Proctor, o John 1356 01:03:56,220 --> 01:03:57,650 Harvard, in questo caso. 1357 01:03:57,650 --> 01:04:01,630 >> Ma significa anche che si può fare che cosa? 1358 01:04:01,630 --> 01:04:03,970 Inviare email da chiunque a chiunque. 1359 01:04:03,970 --> 01:04:05,430 E questo è molto vero. 1360 01:04:05,430 --> 01:04:08,580 Questo non è così presto fatto se si è abituati a utilizzare Gmail. 1361 01:04:08,580 --> 01:04:11,310 Ma se non hai mai usato Eudora o Outlook, si può tranquillamente dire ad un 1362 01:04:11,310 --> 01:04:13,720 server di posta che si è chiunque tu voglia. 1363 01:04:13,720 --> 01:04:16,450 Ed è qui che ho bisogno di mettere su quel cappello e dire, non farlo. 1364 01:04:16,450 --> 01:04:21,140 Ma questa è la testimonianza di quanto sia facile è di eseguire attacchi di phishing, e 1365 01:04:21,140 --> 01:04:24,310 inviare e-mail anonime, e spam, più in generale. 1366 01:04:24,310 --> 01:04:27,330 E davvero si riduce al fatto che tutto ciò che serve è un po 'di 1367 01:04:27,330 --> 01:04:28,500 accesso programmatico. 1368 01:04:28,500 --> 01:04:31,940 >> Per inciso, il mio incontro più vicino con la scheda annuncio, il mio anno da matricola, 1369 01:04:31,940 --> 01:04:34,320 è stato quando ho scoperto questo freddo trucco che, wow, è possibile 1370 01:04:34,320 --> 01:04:36,850 inviare e-mail da parte di chiunque. 1371 01:04:36,850 --> 01:04:39,770 E così ci hanno visto qualche stupido argomento, letteralmente, a Matthews, 1372 01:04:39,770 --> 01:04:40,790 tra il mio gruppo Proctor. 1373 01:04:40,790 --> 01:04:42,470 Io non mi ricordo nemmeno ciò che il problema è stato. 1374 01:04:42,470 --> 01:04:44,970 Ma ho voluto provare a mettere un fine a questa stupida discussione. 1375 01:04:44,970 --> 01:04:48,580 >> Così ho deciso io basta inviare una e-mail al mio gruppo Proctor, fingendo di essere 1376 01:04:48,580 --> 01:04:52,000 l'altro ragazzo, con cui parere mi non sono d'accordo, e lo hanno acconsentire a 1377 01:04:52,000 --> 01:04:54,680 qualunque sia la mia opinione era in questo dibattito. 1378 01:04:54,680 --> 01:04:59,320 E così ho forgiato questa e-mail utilizzando un tecnica simile in spirito a questo. 1379 01:04:59,320 --> 01:05:01,256 Ma in realtà era più facile al tempo. 1380 01:05:01,256 --> 01:05:02,435 Premere invia. 1381 01:05:02,435 --> 01:05:06,660 Lui non era contento, né sarebbe sono stati la scheda annuncio. 1382 01:05:06,660 --> 01:05:10,280 >> Ed ero molto rapidamente catturati nella secondi perché, come sapete, firmo 1383 01:05:10,280 --> 01:05:11,420 i miei messaggi di posta elettronica in un certo modo. 1384 01:05:11,420 --> 01:05:14,200 E anche se lo faccio manualmente, in gran parte, 15 anni dopo, perché ero 1385 01:05:14,200 --> 01:05:15,080 traumatizzati da questo. 1386 01:05:15,080 --> 01:05:16,960 Non ho una firma sulla mia e-mail ora. 1387 01:05:16,960 --> 01:05:20,440 Ma, nel 1995, ho appena avuto un segnale, una firma nella mia email. 1388 01:05:20,440 --> 01:05:24,630 Quindi c'era questa nota dicendo: Caro Gruppo Proctor, ho acconsentire mio parere 1389 01:05:24,630 --> 01:05:31,240 e sono d'accordo con Davide, firmato e così così, nuova linea, nuova linea, DJM. 1390 01:05:31,240 --> 01:05:36,220 >> Quindi non farlo o, in generale, prendere vantaggio di questa tecnica. 1391 01:05:36,220 --> 01:05:39,950 Ma quando si effettua un sito web, come per il progetto finale, quando si effettua una 1392 01:05:39,950 --> 01:05:43,460 sito internet per qualcosa imprenditoriale, questo è il modo, pragmaticamente, è possibile 1393 01:05:43,460 --> 01:05:47,000 sfruttare altri servizi su Internet come la posta e poi effettivamente 1394 01:05:47,000 --> 01:05:49,440 inviare le cose utilizzando il codice. 1395 01:05:49,440 --> 01:05:51,240 >> Quindi, come possiamo migliorare su questo? 1396 01:05:51,240 --> 01:05:54,370 Beh, prima facciamo un rapido giro di alcune delle cose che vedrete, 1397 01:05:54,370 --> 01:05:56,170 e poi dare un'occhiata a un paio di esempi. 1398 01:05:56,170 --> 01:05:59,500 Quindi uno, per rassicurare, perché stiamo volando attraverso PHP. 1399 01:05:59,500 --> 01:06:02,470 E so che, ad un certo punto, si dovrà per iniziare effettivamente scrivere questo se si 1400 01:06:02,470 --> 01:06:03,460 avere già non. 1401 01:06:03,460 --> 01:06:06,220 Rendetevi conto che, uno, principale è sorta di fuori della finestra con PHP. 1402 01:06:06,220 --> 01:06:09,420 Se si desidera scrivere codice che ottiene eseguito, basta iniziare a scrivere nel 1403 01:06:09,420 --> 01:06:13,970 un file chiamato. php finché avete la parentesi aperta 1404 01:06:13,970 --> 01:06:15,620 interrogativo tag PHP. 1405 01:06:15,620 --> 01:06:19,730 >> Ma bando questi sono condizioni in PHP. 1406 01:06:19,730 --> 01:06:22,610 Si noti, questa è esattamente la stessa diapositiva abbiamo avuto in una settimana in cui abbiamo avuto 1407 01:06:22,610 --> 01:06:25,670 condizioni in C. Condizioni di PHP sono strutturalmente e 1408 01:06:25,670 --> 01:06:27,140 sintatticamente stesso. 1409 01:06:27,140 --> 01:06:30,290 Unica vera differenza è se hai variabili in gioco, ci sono quelli 1410 01:06:30,290 --> 01:06:31,600 segni di dollaro. 1411 01:06:31,600 --> 01:06:33,970 >> Nel frattempo, le espressioni booleane apparire solo come questo per 1412 01:06:33,970 --> 01:06:35,725 o-ing o e-ing insieme. 1413 01:06:35,725 --> 01:06:37,780 Interruttori esattamente lo stesso aspetto. 1414 01:06:37,780 --> 01:06:42,180 Cosa c'è di bello in PHP, mentre in C, interruttori devono essere casi sul 1415 01:06:42,180 --> 01:06:46,380 primitivi come int o char, in PHP le istruzioni case possono effettivamente essere 1416 01:06:46,380 --> 01:06:48,430 su un insieme di stringhe, che è in realtà tipo di bello. 1417 01:06:48,430 --> 01:06:49,480 Consente di risparmiare molto tempo. 1418 01:06:49,480 --> 01:06:50,820 Non poteva farlo in C. 1419 01:06:50,820 --> 01:06:52,880 >> Ecco un ciclo di in PHP. 1420 01:06:52,880 --> 01:06:53,740 È identica. 1421 01:06:53,740 --> 01:06:55,400 Potrebbe avere qualche segno del dollaro per le variabili. 1422 01:06:55,400 --> 01:06:57,530 Non dovete dimenticare che qualcosa è un int. 1423 01:06:57,530 --> 01:07:00,580 Devi solo dichiareremo con un segno di dollaro e il nome della variabile. 1424 01:07:00,580 --> 01:07:01,430 Ma un ciclo for è la stessa. 1425 01:07:01,430 --> 01:07:02,760 Un ciclo while è lo stesso. 1426 01:07:02,760 --> 01:07:04,870 Un do while è la stessa. 1427 01:07:04,870 --> 01:07:06,170 >> Questo è un po 'diverso. 1428 01:07:06,170 --> 01:07:12,410 Quindi, con PHP, con un array, è possibile staticamente dichiarare un array, come in C, 1429 01:07:12,410 --> 01:07:14,420 ma si utilizzano le parentesi quadre. 1430 01:07:14,420 --> 01:07:17,060 In C, si utilizza parentesi graffe, se anche sapessi. 1431 01:07:17,060 --> 01:07:20,910 Ma questo è in realtà molto comune in PHP per dichiarare un array, in questo caso, 1432 01:07:20,910 --> 01:07:23,640 di numeri, e chiamare il numero variabile. 1433 01:07:23,640 --> 01:07:25,300 >> Variabili stessi appaiono così. 1434 01:07:25,300 --> 01:07:28,710 Qui è una stringa, tra virgolette "ciao mondo ". Si potrebbe avere un backslash n. 1435 01:07:28,710 --> 01:07:30,950 Io semplicemente non in questo caso. 1436 01:07:30,950 --> 01:07:32,640 >> Ora, questo è un costrutto interessante. 1437 01:07:32,640 --> 01:07:33,700 C non ha questo. 1438 01:07:33,700 --> 01:07:34,700 Ma questo è super disponibile. 1439 01:07:34,700 --> 01:07:38,160 E vedrete questo in P set 7 spec - una per ogni costrutto. 1440 01:07:38,160 --> 01:07:41,800 Se si vuole ribadire su tutto il elementi di un array, non hanno 1441 01:07:41,800 --> 01:07:45,500 trattare con $ i e $ n, e + +, e tutto il resto. 1442 01:07:45,500 --> 01:07:47,640 Si può letteralmente dire, in PHP, questo - 1443 01:07:47,640 --> 01:07:51,890 per ogni numeri come numero, in modo Sto assumendo che $ numeri 1444 01:07:51,890 --> 01:07:53,380 è una serie di numeri. 1445 01:07:53,380 --> 01:07:56,460 E quando dico che per ogni numero come numero, questo sta per 1446 01:07:56,460 --> 01:08:00,505 automaticamente, come il mio ciclo viene eseguito, aggiornare, ad ogni iterazione, il valore 1447 01:08:00,505 --> 01:08:03,260 all'interno del dollaro segno di numero - 1448 01:08:03,260 --> 01:08:07,730 ancora, e ancora, e ancora camminare per me su quella matrice. 1449 01:08:07,730 --> 01:08:08,735 Quindi ci salva solo il codice. 1450 01:08:08,735 --> 01:08:12,250 Nessun punto e virgola, senza + + 's, non io', no n di, è solo bello. 1451 01:08:12,250 --> 01:08:13,700 >> Ma PHP ha anche questo. 1452 01:08:13,700 --> 01:08:14,830 E questo è super potente. 1453 01:08:14,830 --> 01:08:17,410 E potrai usarlo, mani on, in P set 7. 1454 01:08:17,410 --> 01:08:21,990 E array associativo è anche dichiarata con le parentesi quadre. 1455 01:08:21,990 --> 01:08:23,569 Ma bando alle sintassi ora. 1456 01:08:23,569 --> 01:08:26,880 E 'che ricorda quello che abbiamo visto con print_r un momento fa. 1457 01:08:26,880 --> 01:08:31,810 Quanti tasti, come un po 'di controllo di integrità, fa questo array sembrano avere. 1458 01:08:31,810 --> 01:08:32,689 >> Così ha due. 1459 01:08:32,689 --> 01:08:33,830 E io chiamo questo un array. 1460 01:08:33,830 --> 01:08:36,760 Ma se ti aiuta, si può pensare di questa tabella hash, o come 1461 01:08:36,760 --> 01:08:37,930 un array associativo. 1462 01:08:37,930 --> 01:08:39,580 Ma è solo un diverso tipo di array. 1463 01:08:39,580 --> 01:08:41,080 E ancora, lingue diverse avere questi. 1464 01:08:41,080 --> 01:08:43,810 Vedremo qualcosa di simile in JavaScript pure. 1465 01:08:43,810 --> 01:08:44,609 Ci sono due chiavi. 1466 01:08:44,609 --> 01:08:48,390 Uno è tra virgolette, "simbolo", uno è tra virgolette "prezzo". E quelle chiavi 1467 01:08:48,390 --> 01:08:49,250 hanno ciascuno un valore. 1468 01:08:49,250 --> 01:08:54,420 In questo caso il valore del simbolo è FB, per Valore di Facebook, e il prezzo è 49, 26, 1469 01:08:54,420 --> 01:08:56,899 che era magazzino di Facebook prezzo a partire da questa mattina. 1470 01:08:56,899 --> 01:09:00,170 >> Quindi, ciò che è utile per un array associativo. 1471 01:09:00,170 --> 01:09:02,620 Avrei potuto avere una numericamente array indicizzato con appena 1472 01:09:02,620 --> 01:09:04,120 semplici parentesi quadre. 1473 01:09:04,120 --> 01:09:09,380 E ho potuto avere segno del dollaro citazione è uguale solo questo. 1474 01:09:09,380 --> 01:09:10,529 Lasciatemi in realtà lo faccio. 1475 01:09:10,529 --> 01:09:14,796 Supponiamo che io invece appena dichiarato questa matrice come quella. 1476 01:09:14,796 --> 01:09:17,590 Che è perfettamente valido, sintatticamente. 1477 01:09:17,590 --> 01:09:20,569 Non perde alcuna informazione, per se. 1478 01:09:20,569 --> 01:09:24,760 Io continuo a vedere che il simbolo è fb, e che il prezzo è di 49, 26. 1479 01:09:24,760 --> 01:09:28,939 Allora, perché sono associativo array convincente? 1480 01:09:28,939 --> 01:09:30,189 >> AUDIENCE: Non dovete ricordare dove si mettono roba. 1481 01:09:30,189 --> 01:09:32,050 1482 01:09:32,050 --> 01:09:34,130 >> SPEAKER 1: Esatto, non è di ricordare dove hai messo roba. 1483 01:09:34,130 --> 01:09:37,670 Non è necessario ricordare arbitrariamente quel simbolo azionario è in staffa a zero, 1484 01:09:37,670 --> 01:09:41,479 e prezzi delle azioni è in una staffa, che è particolarmente pericoloso se si 1485 01:09:41,479 --> 01:09:43,220 cambiare le cose, alla fine. 1486 01:09:43,220 --> 01:09:46,399 E 'molto più bello di associare quello che noi chiameremo i metadati 1487 01:09:46,399 --> 01:09:48,340 con i dati effettivi. 1488 01:09:48,340 --> 01:09:52,399 Direi che ciò che abbiamo veramente a cuore di qui è FB e 49, 26. 1489 01:09:52,399 --> 01:09:57,020 Il simbolo e il prezzo è di metadati che descrive i dati che 1490 01:09:57,020 --> 01:09:58,180 effettivamente a cuore. 1491 01:09:58,180 --> 01:10:01,910 Ma questo è solo così tanto più facile accesso. 1492 01:10:01,910 --> 01:10:04,090 >> Ora, come un a parte ciò che è il prezzo da pagare? 1493 01:10:04,090 --> 01:10:06,600 Abbiamo fatto questa in CS50 per settimane. 1494 01:10:06,600 --> 01:10:10,740 Questa funzione deve venire ad un certo costo. 1495 01:10:10,740 --> 01:10:11,350 Memoria. 1496 01:10:11,350 --> 01:10:13,830 Quindi non sei solo la memorizzazione di un 32 bit numero intero, per esempio. 1497 01:10:13,830 --> 01:10:17,980 Stai memorizzazione simbolo / 0, probabilmente. 1498 01:10:17,980 --> 01:10:19,160 Quindi stai usando più memoria. 1499 01:10:19,160 --> 01:10:22,540 >> E qual è la performance del guardando qualcosa su in un 1500 01:10:22,540 --> 01:10:24,822 array associativo, probabilmente? 1501 01:10:24,822 --> 01:10:26,590 E 'probabilmente più lento. 1502 01:10:26,590 --> 01:10:29,670 Accesso casuale è bello, soprattutto quando si può fare ricerca binaria. 1503 01:10:29,670 --> 01:10:33,380 Ma se si sta in realtà ora non guardare per i numeri, ma per le stringhe, questa 1504 01:10:33,380 --> 01:10:37,630 veramente è implementato sotto il cappa, probabilmente come tabella hash, dove 1505 01:10:37,630 --> 01:10:42,950 di utilizzare una tabella hash con concatenazioni separate. 1506 01:10:42,950 --> 01:10:46,040 O si utilizza una prova di realtà memorizzare i valori. 1507 01:10:46,040 --> 01:10:50,550 Così forse si può fare un tempo costante, ma avete ancora a guardare S-Y-M-B-O-L, 1508 01:10:50,550 --> 01:10:54,510 potenzialmente, invece di 32 bit per cercare qualcosa. 1509 01:10:54,510 --> 01:10:58,430 Quindi, di nuovo, quelle stesse idee provenienti tornare a ripetersi in questo contesto. 1510 01:10:58,430 --> 01:11:02,120 >> Ma ancora una volta, PHP ha ora alcuni super globali che, si scopre, sono 1511 01:11:02,120 --> 01:11:02,900 array associativi. 1512 01:11:02,900 --> 01:11:05,590 Abbiamo visto uno poco fa, $ _POST. 1513 01:11:05,590 --> 01:11:08,400 E questo super-globale dispone di chiavi e valori. 1514 01:11:08,400 --> 01:11:10,550 In particolare, le chiavi allinearsi con che cosa? 1515 01:11:10,550 --> 01:11:14,520 Da dove vengono le chiavi in ​​$ _POST vengono? 1516 01:11:14,520 --> 01:11:15,380 Giusto per ricapitolare? 1517 01:11:15,380 --> 01:11:16,480 >> AUDIENCE: Nome. 1518 01:11:16,480 --> 01:11:17,900 >> SPEAKER 1: Nome, dove? 1519 01:11:17,900 --> 01:11:19,860 >> AUDIENCE: [incomprensibile] 1520 01:11:19,860 --> 01:11:20,750 >> SPEAKER 1: Nome è l'attributo. 1521 01:11:20,750 --> 01:11:23,480 Beh, dove, da dove sono originariamente provengono da? 1522 01:11:23,480 --> 01:11:24,120 Il modulo. 1523 01:11:24,120 --> 01:11:30,140 Quindi, se una pagina HTML ha un tag di modulo, all'interno del quale sono alcuni input, come 1524 01:11:30,140 --> 01:11:34,760 caselle di controllo, caselle di testo, discesa menu, ognuno dei quali ha un nome, quelle 1525 01:11:34,760 --> 01:11:40,260 nomi finiscono come chiavi in ​​$ _POST, e, francamente, se è per questo, $ _GET. 1526 01:11:40,260 --> 01:11:42,130 Se il metodo è GET, stessa idea. 1527 01:11:42,130 --> 01:11:43,830 E 'solo in un diverso eccellente globale. 1528 01:11:43,830 --> 01:11:47,620 Ei valori, naturalmente, vengono da qualunque sia l'utente digitato al suo o 1529 01:11:47,620 --> 01:11:48,890 il suo browser. 1530 01:11:48,890 --> 01:11:49,830 >> Ma ci sono un paio di altri. 1531 01:11:49,830 --> 01:11:52,140 C'è biscotto, che faremo tornare alla fine. 1532 01:11:52,140 --> 01:11:56,050 Ma quelle sono le cose che sapete il web utilizza per qualche bene o il male. 1533 01:11:56,050 --> 01:11:57,420 Ma torniamo a questo. 1534 01:11:57,420 --> 01:12:01,720 Server e la sessione, e quei due avere qualche utilità speciale. 1535 01:12:01,720 --> 01:12:03,940 >> Ma diamo uno sguardo a questo. 1536 01:12:03,940 --> 01:12:13,330 Lasciami andare avanti e di aprire un esempio chiamato mvc0.php Quindi MVC 1537 01:12:13,330 --> 01:12:14,900 sta per il seguente. 1538 01:12:14,900 --> 01:12:19,390 E introduciamo questo prima di quanto è tipico, in realtà, per farti progettazione 1539 01:12:19,390 --> 01:12:22,180 Insieme Problema 7, e anche i progetti definitivi, in una specie di industria 1540 01:12:22,180 --> 01:12:23,670 modo standard, e modo pulito. 1541 01:12:23,670 --> 01:12:24,820 E 'un buon design. 1542 01:12:24,820 --> 01:12:29,090 >> Quindi che state per vedere, e ti esperienza, in P set 7, paradigma, sorta 1543 01:12:29,090 --> 01:12:32,260 di una mentalità di programmazione, che sembra un po 'di qualcosa come questo. 1544 01:12:32,260 --> 01:12:35,570 M per il modello, C per il regolatore, V per View. 1545 01:12:35,570 --> 01:12:39,690 Per farla breve, MVC è solo tipo di una metodologia, un modo di fare 1546 01:12:39,690 --> 01:12:43,360 siti web, in particolare, in base al quale si mettere tutto il vostro, stupida frase - 1547 01:12:43,360 --> 01:12:44,970 logica di business - 1548 01:12:44,970 --> 01:12:49,710 tutta la proprietà intellettuale in ciò che è chiamato un controller, un file 1549 01:12:49,710 --> 01:12:54,840 come index.php, oppure vedremo, quote.php, o buy.php. 1550 01:12:54,840 --> 01:12:59,570 >> Nel contesto del set Problema 7, il vostro modelli di solito contengono i vostri dati, 1551 01:12:59,570 --> 01:13:03,860 tutto ciò che riguarda un database, come vedremo finalmente vedere, e le vostre opinioni 1552 01:13:03,860 --> 01:13:07,510 contenere l'estetica della vostra sito, il codice HTML, il CSS. 1553 01:13:07,510 --> 01:13:10,420 Quindi abbiamo già visto questo in C un po ' bit utilizzando i file. h. 1554 01:13:10,420 --> 01:13:15,010 Abbiamo visto un momento fa con i CSS, dal factoring la stilizzazione CSS 1555 01:13:15,010 --> 01:13:16,520 roba fuori del nostro HTML. 1556 01:13:16,520 --> 01:13:20,730 >> Quindi MVC è in realtà solo di disegnare Linee nella sabbia e dire la 1557 01:13:20,730 --> 01:13:25,400 interessante codice di programmazione per il vostro sito web appartiene a quella che chiameremo la 1558 01:13:25,400 --> 01:13:26,400 controllore. 1559 01:13:26,400 --> 01:13:29,280 Roba relative al database di genere finisce in un modello. 1560 01:13:29,280 --> 01:13:33,070 Ma vedrete, nel set Problema 7, abbiamo unire C e M di mantenerlo semplice. 1561 01:13:33,070 --> 01:13:37,630 Ma la vista è dove tutti i vostri HTML e l'estetica in genere vanno. 1562 01:13:37,630 --> 01:13:39,160 >> Allora, cosa significa questo in termini reali? 1563 01:13:39,160 --> 01:13:45,980 Beh, mi permetta di andare nella nostra MVC directory come segue. 1564 01:13:45,980 --> 01:13:48,880 E vedrai più di questi in tour attraverso la spec. 1565 01:13:48,880 --> 01:13:53,200 Quindi, in mvc0, io sostengo che questo è, come, Versione 0 di siti web di CS50. 1566 01:13:53,200 --> 01:13:56,670 >> Tutto quello che abbiamo è un po 'di HTML, come una grande tag h1, a quanto pare. 1567 01:13:56,670 --> 01:13:57,800 E poi un elenco puntato. 1568 01:13:57,800 --> 01:13:59,860 Non ho mai visto un elenco puntato prima, ma niente di grave. 1569 01:13:59,860 --> 01:14:01,590 Diamo rapidamente un'occhiata al codice sorgente. 1570 01:14:01,590 --> 01:14:06,610 Si scopre che un elenco non ordinato con proiettili è aperta ul staffa con una o 1571 01:14:06,610 --> 01:14:09,065 altre voci di elenco, Li. 1572 01:14:09,065 --> 01:14:10,650 Quindi avviso qui è un tag di ancoraggio. 1573 01:14:10,650 --> 01:14:12,130 Abbiamo visto che un momento fa. 1574 01:14:12,130 --> 01:14:13,810 >> Quindi questo è come ho implementato questa pagina. 1575 01:14:13,810 --> 01:14:18,460 Ho due collegamenti, due voci di elenco, una ul per la lista non ordinata, e la fine 1576 01:14:18,460 --> 01:14:22,700 risultato, esteticamente, è proprio questa abbastanza sito web, la versione 0 qui. 1577 01:14:22,700 --> 01:14:26,840 Ma ciò che è interessante ora è come questa è attuato sotto la cappa. 1578 01:14:26,840 --> 01:14:33,590 >> Lasciami andare in gedit e di aprire questa primo esempio di dipingere un quadro. 1579 01:14:33,590 --> 01:14:37,070 E vedremo che cosa è imperfetto, potenzialmente, qui dentro. 1580 01:14:37,070 --> 01:14:43,260 Ora, se vado in localhost, pubblico, MVC, notare alcuni file. 1581 01:14:43,260 --> 01:14:45,780 Io vado a chiamare questi, per la momento, tutti i controller. 1582 01:14:45,780 --> 01:14:48,640 Ma questo è un po 'un abuso perché vedrete tutto è mescolata 1583 01:14:48,640 --> 01:14:49,620 all'interno di essi. 1584 01:14:49,620 --> 01:14:52,330 >> E mi permetta di andare all'interno di index.php. 1585 01:14:52,330 --> 01:14:54,700 E vediamo, letteralmente, lo stesso HTML. 1586 01:14:54,700 --> 01:14:57,970 Così, anche se questo file termina in . Php, non significa che deve 1587 01:14:57,970 --> 01:14:59,500 avere alcun codice PHP. 1588 01:14:59,500 --> 01:15:02,290 Può essere solo HTML grezzo, anche se che è una specie di sciocco. 1589 01:15:02,290 --> 01:15:07,650 Ma bando non c'è parentesi aperta PHP tag, ad eccezione di questo, che, francamente, 1590 01:15:07,650 --> 01:15:09,160 è solo lì per servire come un commento. 1591 01:15:09,160 --> 01:15:12,080 Ma non è funzionalmente anche questo interessante. 1592 01:15:12,080 --> 01:15:12,960 >> Ma notare questo. 1593 01:15:12,960 --> 01:15:15,400 La cosa interessante adesso è ciò che modifiche su questa pagina. 1594 01:15:15,400 --> 01:15:16,650 Permettetemi di fare clic Lectures. 1595 01:15:16,650 --> 01:15:18,560 E notare la URL è destinato a cambiare. 1596 01:15:18,560 --> 01:15:20,930 Ora sono a lectures.php. 1597 01:15:20,930 --> 01:15:22,630 Permettetemi di fare clic su zero. 1598 01:15:22,630 --> 01:15:27,200 Ora sono a week0.php Ed ora permettetemi me aprire questi file in gedit. 1599 01:15:27,200 --> 01:15:30,120 Non solo indice, ma lasciare Mi apro lezioni. 1600 01:15:30,120 --> 01:15:33,900 E mi permetta di sbarazzarsi dei commenti a concentrarsi su questa parte soltanto. 1601 01:15:33,900 --> 01:15:37,680 >> E ora lasciatemi apro solo un altro, week0.php, buttare via i commenti, 1602 01:15:37,680 --> 01:15:39,910 solo per pulire questo. 1603 01:15:39,910 --> 01:15:41,720 E ora notare quanto segue. 1604 01:15:41,720 --> 01:15:47,340 Pensando veramente sorta di valutare attentamente progettazione, e rendiamolo linea 1605 01:15:47,340 --> 01:15:52,013 la stessa, ciò che potrebbe essere fatto meglio qui, cosa ne pensi? 1606 01:15:52,013 --> 01:15:56,450 1607 01:15:56,450 --> 01:15:57,780 >> Come ho fatto a fare una settimana uno? 1608 01:15:57,780 --> 01:15:58,480 Che ne dici di questo. 1609 01:15:58,480 --> 01:16:00,450 Quindi questo è il modo che ho fatto una settimana. 1610 01:16:00,450 --> 01:16:08,290 Sono andato fino a File, Nuovo, Incolla, Salva, week1.php, e poi sono andato a qui. 1611 01:16:08,290 --> 01:16:09,875 E ho cambiato uno - 1612 01:16:09,875 --> 01:16:11,646 ciò che è stato questo, uno al Venerdì. 1613 01:16:11,646 --> 01:16:14,430 1614 01:16:14,430 --> 01:16:15,810 Ho cambiato gli zero a uno. 1615 01:16:15,810 --> 01:16:17,150 Ho cambiato questo a uno. 1616 01:16:17,150 --> 01:16:20,350 >> OK, ora guardate i miei file. 1617 01:16:20,350 --> 01:16:22,100 Che cosa si poteva fare diversamente? 1618 01:16:22,100 --> 01:16:25,310 Dov'è l'occasione, forse? 1619 01:16:25,310 --> 01:16:28,330 Quindi c'è la possibilità di avviare factoring questa roba. 1620 01:16:28,330 --> 01:16:32,950 Lasciatemi aprire, come uno spoiler, per quello che vedrete in P serie 7. 1621 01:16:32,950 --> 01:16:38,750 Se mi apro, ora, index.php in versione cinque di questo, sembra modo 1622 01:16:38,750 --> 01:16:40,730 più criptico, è vero. 1623 01:16:40,730 --> 01:16:43,710 >> Ma questo, ora, è quello che io chiamo un controllore che controlla il 1624 01:16:43,710 --> 01:16:44,770 logica della mia pagina. 1625 01:16:44,770 --> 01:16:48,510 E si può tipo di ricostruire, intuitivamente, forse, quello che sta succedendo. 1626 01:16:48,510 --> 01:16:50,630 Sulla prima riga, è un po 'criptico. 1627 01:16:50,630 --> 01:16:54,040 Ma mi accorgo che richiede, come con acuto comprendono, un file chiamato 1628 01:16:54,040 --> 01:16:55,930 helpers.php. 1629 01:16:55,930 --> 01:16:59,980 E poi sto chiamando, a quanto pare, un funzione, chiamato rendering, passando 1630 01:16:59,980 --> 01:17:00,850 due argomenti. 1631 01:17:00,850 --> 01:17:02,440 >> Uno è tra virgolette, intestazione. 1632 01:17:02,440 --> 01:17:04,800 E l'altro è, che tipo di tipo di dati è presente, basata 1633 01:17:04,800 --> 01:17:07,180 sulla nostra sintassi prima? 1634 01:17:07,180 --> 01:17:08,160 E 'una matrice associata. 1635 01:17:08,160 --> 01:17:11,730 Specificamente, è passando nel titolo con alcuni metadati che ricorda 1636 01:17:11,730 --> 01:17:13,430 me quello che è e il suo valore. 1637 01:17:13,430 --> 01:17:16,340 Poi vedo un disco codificato ul, così alcuni HTML. 1638 01:17:16,340 --> 01:17:20,020 Ma poi sono tornato in modalità PHP chiamando una funzione di rendering. 1639 01:17:20,020 --> 01:17:24,390 Quindi, anche se non hai mai usato HTML o PHP prima, e anche se questo sembra 1640 01:17:24,390 --> 01:17:27,480 più spaventoso, perché è questo probabilmente migliore progettazione? 1641 01:17:27,480 --> 01:17:31,310 Cosa c'è di meglio a questo proposito, sulla base di inferenza? 1642 01:17:31,310 --> 01:17:32,130 >> AUDIENCE: [incomprensibile] 1643 01:17:32,130 --> 01:17:35,750 >> SPEAKER 1: Meno ridondante in che non c'è più tag HTML, non di più 1644 01:17:35,750 --> 01:17:38,410 teste di tag, non di più tag body in ogni maledetto file. 1645 01:17:38,410 --> 01:17:41,860 Invece, ho fattorizzato il analogie e presumibilmente metterli 1646 01:17:41,860 --> 01:17:45,150 in un file in qualche modo legati a un'intestazione. 1647 01:17:45,150 --> 01:17:48,500 E stessa cosa per il corpo vicino tag, il tag di chiusura HTML. 1648 01:17:48,500 --> 01:17:52,165 Questo è probabilmente qui dentro da qualche parte del piè di pagina. 1649 01:17:52,165 --> 01:17:57,050 E vedrete, nel set Problema 7, un piccolo tour attraverso questa. 1650 01:17:57,050 --> 01:17:58,070 >> Quindi quello che ci aspetta? 1651 01:17:58,070 --> 01:18:03,390 L'unica cosa che non abbiamo la capacità ancora per è quello di archiviare i dati. 1652 01:18:03,390 --> 01:18:06,110 E così quello che inizieremo a vedere Mercoledì, per esempio, è che il vostro 1653 01:18:06,110 --> 01:18:08,450 vecchio amico di Excel, o numeri, consente di memorizzare un sacco di 1654 01:18:08,450 --> 01:18:10,060 dati in righe e colonne. 1655 01:18:10,060 --> 01:18:12,570 Si scopre che si può fare che in ciò che è chiamato un database, di programmazione. 1656 01:18:12,570 --> 01:18:16,620 maniacale e si scopre, dopo che, saremo in grado di memorizzare le cose come 1657 01:18:16,620 --> 01:18:20,550 questo, che si vedrà di nuovo in serie P 7, tutta una serie di nomi utente e 1658 01:18:20,550 --> 01:18:23,690 password, l'ultima delle quali sono effettivamente codificato, proprio come essi 1659 01:18:23,690 --> 01:18:25,550 erano in edizione di P 2 set di hacker. 1660 01:18:25,550 --> 01:18:29,600 E alla fine, si implementa questa, il proprio sito web eTrade-simile 1661 01:18:29,600 --> 01:18:32,220 implementa collettivamente CS50 finanza. 1662 01:18:32,220 --> 01:18:36,000 >> Infine, dal momento che in questo modo tardi Oggi, se si torna a questa parte 1663 01:18:36,000 --> 01:18:41,120 del campus, alle 04:00 di oggi, ci sarà dare non solo consigli, le SCES 1664 01:18:41,120 --> 01:18:44,200 Consulenza Fiera, alle 16:00 in Maxwell-Dworkin, ti daremo qualche 1665 01:18:44,200 --> 01:18:47,470 Americone Sogno, Cherry Garcia, Chocolate Fudge Brownie, Chocolate 1666 01:18:47,470 --> 01:18:50,840 Chip Cookie Dough, e, quando Google Chunky Monkey, si ottiene questo. 1667 01:18:50,840 --> 01:18:53,620 Quindi, tutto questo vi aspetta a 4:00 PM in Maxwell-Dworkin. 1668 01:18:53,620 --> 01:18:56,736 Ci vediamo il Mercoledì pure. 1669 01:18:56,736 --> 01:18:59,960 >> SPEAKER 2: Alla prossima CS50, RJ dorme dentro 1670 01:18:59,960 --> 01:19:03,656 1671 01:19:03,656 --> 01:19:04,906 >> RJ: La mia sezione! 1672 01:19:04,906 --> 01:19:07,727 1673 01:19:07,727 --> 01:19:08,977 Ha! 1674 01:19:08,977 --> 01:19:12,056 1675 01:19:12,056 --> 01:19:13,306 Oh, 1676 01:19:13,306 --> 01:19:16,374