1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM Levatich: Welcome to sezione per questa settimana. 3 00:00:08,440 --> 00:00:10,040 Io non sono Andi. 4 00:00:10,040 --> 00:00:14,590 Andi è caduto malato quel giorno, e io sono stati una sorta di chiamata in last minute 5 00:00:14,590 --> 00:00:15,700 farsi carico. 6 00:00:15,700 --> 00:00:20,920 E 'la stagione influenzale, in modo da assicurarsi che si sono rimanendo puliti, lavarsi le mani, 7 00:00:20,920 --> 00:00:24,800 e mangiare sano in modo che anche voi, non siete costretti a letto. 8 00:00:24,800 --> 00:00:26,870 >> Ma senza ulteriori indugi, cominciamo. 9 00:00:26,870 --> 00:00:29,970 Oggi, stiamo andando a parlare su PHP un po 'come bit-- 10 00:00:29,970 --> 00:00:33,900 PHP si riferisce in HTML, come si riguarda CSS, e alcuni dei web 11 00:00:33,900 --> 00:00:36,100 roba che hai fatto l'ultimo incarico. 12 00:00:36,100 --> 00:00:37,930 Stiamo per parlare un po 'di SQL 13 00:00:37,930 --> 00:00:41,360 e come si può lavorare con i database, che è un componente piuttosto chiave di P 14 00:00:41,360 --> 00:00:43,650 set 8-- P impostato 7. 15 00:00:43,650 --> 00:00:44,480 P set 7. 16 00:00:44,480 --> 00:00:48,400 >> E poi andremo a parlare un po ' po 'su come controller di vista funzionano 17 00:00:48,400 --> 00:00:54,640 e perché questa è una filosofia dietro un po 'di pagine web moderne e design diverso. 18 00:00:54,640 --> 00:00:58,760 Praticamente un sacco di tipi di applicazioni e applicazioni che si potrebbero spedire 19 00:00:58,760 --> 00:01:01,120 utilizzano questo modello, quadro controller della vista, 20 00:01:01,120 --> 00:01:02,890 che si prevede di utilizzare in P set 7, quindi mi 21 00:01:02,890 --> 00:01:05,220 parlare un po ' sul perché che è diventato 22 00:01:05,220 --> 00:01:07,970 popolare, perché è importante e piacevole. 23 00:01:07,970 --> 00:01:12,052 E poi io finalmente andare avanti per alcuni consigli su affrontare P imposti 7. 24 00:01:12,052 --> 00:01:13,760 E se abbiamo tempo rimasti alla fine, 25 00:01:13,760 --> 00:01:17,320 possiamo effettivamente fare un po ' lavorare su questo insieme. 26 00:01:17,320 --> 00:01:20,380 >> Quindi, PHP. 27 00:01:20,380 --> 00:01:23,790 In realtà, avrete notato questo-- non c'era bisogno davvero di immergersi in it-- 28 00:01:23,790 --> 00:01:27,880 ma P set 6 avuto qualche PHP codice che stava succedendo. 29 00:01:27,880 --> 00:01:34,710 E perché PHP è un C-like linguaggio, PHP, a differenza di HTML e CSS, 30 00:01:34,710 --> 00:01:39,030 è un linguaggio di programmazione, considerando HTML e CSS sono statici. 31 00:01:39,030 --> 00:01:44,050 Sono linguaggi di markup che si occupano con lo stile e il layout visivo. 32 00:01:44,050 --> 00:01:46,230 PHP è il vero affare. 33 00:01:46,230 --> 00:01:51,590 >> PHP ha loop, ha conditions-- tutta quella roba che è divertente su C. 34 00:01:51,590 --> 00:01:56,190 Ha un paio di cose che sono un po ' po 'meglio di C, che vedremo, 35 00:01:56,190 --> 00:01:59,760 ma penso che il modo più semplice per parlare circa il PHP è solo immersione in. 36 00:01:59,760 --> 00:02:04,087 Quindi ho intenzione di andare a destra nell'IDE a questo punto. 37 00:02:04,087 --> 00:02:06,170 La prima cosa che andremo fare è effettivamente guardare 38 00:02:06,170 --> 00:02:10,169 un po 'ad alcuni dei Codice PHP che era in P 6 set. 39 00:02:10,169 --> 00:02:13,600 Quindi il modo che facciamo che-- prima, il modo in cui noi stavamo correndo 40 00:02:13,600 --> 00:02:18,550 il server per l'appliance era che avremmo dovuto type-- 41 00:02:18,550 --> 00:02:21,750 usare sia l'implementazione o l'implementazione del personale 42 00:02:21,750 --> 00:02:27,059 di server.c andando nella directory e l'esecuzione con entrambi senza server.c 43 00:02:27,059 --> 00:02:30,100 arguments-- così lo chiamano semplicemente il host locale, che è ciò che probabilmente 44 00:02:30,100 --> 00:02:31,849 ha fatto la maggior parte del tempo-- e poi alimentandola 45 00:02:31,849 --> 00:02:35,380 un directory-- con cui utilizzare come radice 46 00:02:35,380 --> 00:02:38,310 in cui il sito sarebbe essere eseguito, in fondo. 47 00:02:38,310 --> 00:02:42,180 >> Questa settimana per P impostato 7, come grande come il nostro codice per server.c 48 00:02:42,180 --> 00:02:47,580 è, ci sono persone che hanno già scritto queste belle cose sopra a CS50 49 00:02:47,580 --> 00:02:49,630 che hanno un po ' più funzionalità, 50 00:02:49,630 --> 00:02:52,920 un programma server che è in grado di trattare con un po 'di più 51 00:02:52,920 --> 00:02:56,350 delle complessità che faremo vedere in entrambi set P 7 e P impostare 8. 52 00:02:56,350 --> 00:03:01,410 E il modo in cui si avvia il server è semplicemente digitando "apache50." 53 00:03:01,410 --> 00:03:03,960 >> E prima di fare qualsiasi cosa, si vuole fare in modo 54 00:03:03,960 --> 00:03:06,070 che Apache 50 non è già in esecuzione com'è 55 00:03:06,070 --> 00:03:08,130 sulla mia macchina, che ho fatto per testarlo. 56 00:03:08,130 --> 00:03:10,320 E lo si fa chiamando apache50. 57 00:03:10,320 --> 00:03:14,070 Fermi, e vedrete che è l'arresto il server web, se si può guardare lì 58 00:03:14,070 --> 00:03:16,340 nella parte inferiore della finestra del terminale. 59 00:03:16,340 --> 00:03:21,090 E poi tanto per cominciare, siamo chiameremo "apache50 iniziare." 60 00:03:21,090 --> 00:03:23,150 E poi stiamo andando per alimentare una directory. 61 00:03:23,150 --> 00:03:26,950 >> Ora, perché vogliamo guardare ad alcuni dei P set 6 codice 62 00:03:26,950 --> 00:03:32,850 che avevamo implementato, in realtà ho copiato un po 'di P 63 00:03:32,850 --> 00:03:37,090 set 6 codice nel mio dispositivo di piegatura, che potete vedere in là a sinistra. 64 00:03:37,090 --> 00:03:40,170 Si chiama "Section8" in tutte le lettere maiuscole 65 00:03:40,170 --> 00:03:44,510 perché io sono così entusiasta essere oggi live-streaming. 66 00:03:44,510 --> 00:03:47,330 >> Quindi, se si esegue questo, dovrebbe tutto il lavoro abbastanza efficace. 67 00:03:47,330 --> 00:03:52,350 Si dice, OK, il nostro sito è ora disponibile all'indirizzo della IDE, 68 00:03:52,350 --> 00:03:57,710 in fondo, che è quello che si stava utilizzando esattamente come è stato nel P impostato 7-- P set 6. 69 00:03:57,710 --> 00:04:00,899 Tutti i miei indici sono un indice di oggi. 70 00:04:00,899 --> 00:04:02,940 Così possiamo andare a quel indirizzo, se vi ricordate, 71 00:04:02,940 --> 00:04:05,710 semplicemente cliccando questo piccolo pulsante in alto a destra. 72 00:04:05,710 --> 00:04:14,200 >> E vi ricordate questo codice, che successo quando sei andato in ciao.php. 73 00:04:14,200 --> 00:04:18,000 E ciò che il codice è stato progettato per fare è quando si digitato un nome 74 00:04:18,000 --> 00:04:20,550 qui-- se dici Sam perché questo è il mio nome-- 75 00:04:20,550 --> 00:04:23,620 e clicco Say Ciao, quando siamo andati alla pagina successiva, 76 00:04:23,620 --> 00:04:25,270 tale nome doveva essere visualizzato. 77 00:04:25,270 --> 00:04:28,550 Sarebbe dire: "Ciao, Sam" o "Ciao", qualsiasi nome 78 00:04:28,550 --> 00:04:32,470 messo in esso, anche se siamo andati ad un nuovo sito web. 79 00:04:32,470 --> 00:04:36,610 >> E questo è il genere di cose che PHP può fare per voi. 80 00:04:36,610 --> 00:04:42,840 PHP è in grado di trasmettere i dati tra due pagine web. 81 00:04:42,840 --> 00:04:44,390 Questa è una pagina completamente diversa. 82 00:04:44,390 --> 00:04:46,990 Vedrete il titolo è "ciao" qui. 83 00:04:46,990 --> 00:04:49,080 In realtà, hanno lo stesso titolo, ma io 84 00:04:49,080 --> 00:04:52,560 promettono sono diversi web pagine Se guardiamo alla fonte. 85 00:04:52,560 --> 00:04:55,890 E si può passare i dati che sono inserito in questo campo di testo, 86 00:04:55,890 --> 00:04:59,830 si presenta al prossimo Pagina che viene richiamato, 87 00:04:59,830 --> 00:05:02,490 e quindi che i dati sono in grado di essere lì nella sua forma attuale. 88 00:05:02,490 --> 00:05:04,810 >> Ora non abbiamo ancora implementato questo noi stessi, che 89 00:05:04,810 --> 00:05:08,710 è quello che andremo a fare in questo momento per sorta ottenere un sapore di come funziona PHP, 90 00:05:08,710 --> 00:05:15,070 ma l'idea chiave è che si può PHP-- sorta di pensare ad esso come una funzione. 91 00:05:15,070 --> 00:05:18,570 Qualcosa che PHP può farvi non è che può prendere parametri 92 00:05:18,570 --> 00:05:24,710 che si inserisce in una pagina HTML attraverso l'uso di PHP e forme, 93 00:05:24,710 --> 00:05:29,960 e può passare come parametri quelli alla pagina successiva che viene caricato su. 94 00:05:29,960 --> 00:05:35,110 >> In questo caso, stiamo caricando questo pagina con il tasto "Dite ciao". 95 00:05:35,110 --> 00:05:38,960 Ma per ora, in realtà ho cancellato alcuni di tale codice 96 00:05:38,960 --> 00:05:44,850 nel hello.php che veniva eseguito che è stato effettivamente che espongono il "ciao, 97 00:05:44,850 --> 00:05:49,680 mondo "o" ciao, Sam "o "ciao", tutto ciò che era appena introdotto. 98 00:05:49,680 --> 00:05:53,620 Quindi, per ora, siamo intenzione di farlo, in fondo. 99 00:05:53,620 --> 00:05:56,570 Stiamo andando a ricreare quella e anche aggiungere un po 'di più funzionalità, 100 00:05:56,570 --> 00:06:00,210 fare un po 'di più con esso, vedere ciò che PHP è veramente capace. 101 00:06:00,210 --> 00:06:04,870 >> Quindi, prima, parliamo di questo file, hello.php. 102 00:06:04,870 --> 00:06:07,440 Quindi, se focalizziamo l'una poco bit-- e ora sono 103 00:06:07,440 --> 00:06:10,520 sorta di cercare di scorrere tutto il modo in cui around-- ci andiamo. 104 00:06:10,520 --> 00:06:14,220 Vedrai si chiama hello.php, ma la sintassi di esso 105 00:06:14,220 --> 00:06:16,880 si presenta come un file HTML. 106 00:06:16,880 --> 00:06:20,380 Questo perché il PHP reale in questo file 107 00:06:20,380 --> 00:06:25,220 è tutto bloccato tra questi domande blocchi mark-cursore. 108 00:06:25,220 --> 00:06:28,610 Tutto qui è considerato codice PHP. 109 00:06:28,610 --> 00:06:32,040 >> E si noterà che quando ho fatto un commento, 110 00:06:32,040 --> 00:06:35,320 vedrete il familiare due barre. 111 00:06:35,320 --> 00:06:38,440 E se vi ricordate, in HTML, se digito un commento, 112 00:06:38,440 --> 00:06:42,540 sembra qualcosa di più vicino a questo, che è un commento in HTML. 113 00:06:42,540 --> 00:06:46,570 Quindi, in realtà tutto tra queste due parentesi angolari 114 00:06:46,570 --> 00:06:50,060 è ora codice PHP, che si riflette nel fatto 115 00:06:50,060 --> 00:06:53,270 che questo piccolo commento simbolo è trasformato in un commento. 116 00:06:53,270 --> 00:06:58,420 >> Così ogni volta che scrivere codice PHP, anche se non c'è il codice HTML al di fuori di esso, 117 00:06:58,420 --> 00:07:02,720 sta andando sempre essere racchiuso tra queste parentesi angolari 118 00:07:02,720 --> 00:07:04,080 con punti interrogativi. 119 00:07:04,080 --> 00:07:08,260 Si può pensare a una sorta di it-- come tutto del codice che correva nei vostri programmi C 120 00:07:08,260 --> 00:07:13,950 è stato racchiuso in un int main, vuoto, parentesi graffa, dichiarazione parentesi graffa fine. 121 00:07:13,950 --> 00:07:17,100 E vedrai parentesi graffe in PHP, anche, ma questo è sorta di 122 00:07:17,100 --> 00:07:20,490 come il metodo principale di PHP. 123 00:07:20,490 --> 00:07:25,630 >> Così ora, come facciamo nulla in PHP? 124 00:07:25,630 --> 00:07:29,190 Ora, PHP è un programmazione lingua che è molto simile al C, 125 00:07:29,190 --> 00:07:30,970 ma opera sul web. 126 00:07:30,970 --> 00:07:33,270 Quindi, una cosa che ti immediately-- uno 127 00:07:33,270 --> 00:07:38,130 delle prime cose che davvero ha fatto con C è stata stampata roba, giusto? 128 00:07:38,130 --> 00:07:42,290 Quindi, in C abbiamo fatto con una funzione printf. 129 00:07:42,290 --> 00:07:46,430 Abbiamo dato una stringa, probabilmente con una nuova linea, 130 00:07:46,430 --> 00:07:49,850 e poi abbiamo risolto con un punto e virgola. 131 00:07:49,850 --> 00:07:53,790 >> Quindi il modo che stiamo andando a farlo in PHP-- perché non è abbastanza printf. 132 00:07:53,790 --> 00:07:55,940 E 'un po' di sintassi diversa. 133 00:07:55,940 --> 00:08:02,580 Il modo in cui il risultato della stampa le cose in PHP è che diciamo, "echo ciao" 134 00:08:02,580 --> 00:08:04,180 o "echo" qualsiasi parola. 135 00:08:04,180 --> 00:08:09,830 E che ha l'effetto di fare printf con una stringa, "ciao". 136 00:08:09,830 --> 00:08:11,990 E aggiunge la nuova linea ad esso. 137 00:08:11,990 --> 00:08:16,000 >> Quindi cerchiamo di fare in questo momento sure-- Io lo zoom di nuovo un po 'bit-- 138 00:08:16,000 --> 00:08:18,250 facciamo in modo che tale codice funziona 139 00:08:18,250 --> 00:08:21,030 perché ci potrebbe molto essere un bug in questo codice 140 00:08:21,030 --> 00:08:22,880 che dovremo affrontare. 141 00:08:22,880 --> 00:08:25,860 Quindi il server è già in esecuzione. 142 00:08:25,860 --> 00:08:30,630 Quindi: se ci spostiamo di nuovo fino in fondo, yup, il server è ancora in esecuzione. 143 00:08:30,630 --> 00:08:34,510 Quindi, se abbiamo appena toccare questo po 'a destra qui-- 144 00:08:34,510 --> 00:08:37,620 welcome-- dovremmo get-- grande. 145 00:08:37,620 --> 00:08:39,930 >> Abbiamo ancora avendo la "Dite ciao" dialogo familiare, 146 00:08:39,930 --> 00:08:45,750 ma quando digito "ciao", vedremo che il testo "ciao" era davvero 147 00:08:45,750 --> 00:08:50,080 stampato, che è esattamente come ci aspettavamo perché l'eco in PHP 148 00:08:50,080 --> 00:08:53,190 è proprio come un printf. 149 00:08:53,190 --> 00:09:01,410 Ma torniamo al codice, come in P set 6 ha fatto il codice di distribuzione si sono forniti 150 00:09:01,410 --> 00:09:05,920 fare in modo che PHP avrebbe uscita la cosa che voi 151 00:09:05,920 --> 00:09:07,920 digitato sulla schermata precedente? 152 00:09:07,920 --> 00:09:10,350 >> E di esaminare sorta di perché ciò che accade, siamo 153 00:09:10,350 --> 00:09:15,510 intenzione di andare in index.html, che è il file originale, il file 154 00:09:15,510 --> 00:09:18,710 si presenta in questa schermata con il tasto "Dite ciao". 155 00:09:18,710 --> 00:09:20,950 Si nota che non c'è tutte le cose classiche 156 00:09:20,950 --> 00:09:26,910 che ci si aspetta da HTML tale come queste cose, questi tag racchiusi 157 00:09:26,910 --> 00:09:31,080 tra parentesi angolari, come PHP ma senza i punti interrogativi, 158 00:09:31,080 --> 00:09:34,650 che indica una cosa speciale in HTML. 159 00:09:34,650 --> 00:09:36,895 Abbiamo titolo, che è "ciao". 160 00:09:36,895 --> 00:09:41,010 E si noterà che, come abbiamo visto, il titolo è "ciao" in entrambi i casi. 161 00:09:41,010 --> 00:09:43,260 Cambiamo questo a "dire" solo così noi 162 00:09:43,260 --> 00:09:48,170 in grado di distinguere noi stessi in cui ci troviamo. 163 00:09:48,170 --> 00:09:49,600 >> Ma abbiamo un corpo. 164 00:09:49,600 --> 00:09:52,690 E poi la cosa interessante, il bit che compare nel codice HTML, 165 00:09:52,690 --> 00:09:54,530 È questo elemento modulo. 166 00:09:54,530 --> 00:09:56,370 E così abbiamo un modulo. 167 00:09:56,370 --> 00:09:58,330 E questa è la chiave. 168 00:09:58,330 --> 00:10:00,530 Questo è il modo in cui stiamo lavorando con PHP. 169 00:10:00,530 --> 00:10:05,790 Il parametro di azione forma dice che ciao.php 170 00:10:05,790 --> 00:10:09,310 è quello che stiamo andando a trasmettere i valori in questa forma a. 171 00:10:09,310 --> 00:10:13,830 Questo è dove stiamo passando i parametri, per così dire. 172 00:10:13,830 --> 00:10:18,680 >> Noterete un'altra cosa qui è che il metodo è "get". 173 00:10:18,680 --> 00:10:24,450 Ci sono due primari metodi con cui sarà 174 00:10:24,450 --> 00:10:28,750 essere utilizzando PHP per passare i dati tra le pagine web websites--, 175 00:10:28,750 --> 00:10:30,500 rather-- in questo incarico. 176 00:10:30,500 --> 00:10:34,070 E quei metodi sono "get" e "post". 177 00:10:34,070 --> 00:10:37,010 Ci sono alcune sottili differenze tra GET e POST 178 00:10:37,010 --> 00:10:40,520 che avremo into-- noi si "get" in, se si vuole. 179 00:10:40,520 --> 00:10:44,030 >> Ma per tutti gli intenti e finalità, ottenere e post 180 00:10:44,030 --> 00:10:47,120 sono entrambi solo modi che si passa parametri 181 00:10:47,120 --> 00:10:49,500 con leggermente diverse esecuzioni. 182 00:10:49,500 --> 00:10:53,500 Per ora, stiamo andando a utilizzare ottenere perché ottenere era quello che è stato utilizzato originariamente 183 00:10:53,500 --> 00:10:57,340 nel file PHP di P set 6. 184 00:10:57,340 --> 00:11:00,850 E in realtà, se andiamo a guardare e prima di aver modificato qualsiasi altra cosa, 185 00:11:00,850 --> 00:11:03,090 Sto per dire ciao a-- come ti chiami? 186 00:11:03,090 --> 00:11:03,812 >> PUBBLICO: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM Levatich: Oh, cribbio. 188 00:11:04,770 --> 00:11:05,600 Io non so come si scrive questo. 189 00:11:05,600 --> 00:11:06,766 Potrebbe significare che per me? 190 00:11:06,766 --> 00:11:08,710 PUBBLICO: E-L-L-I-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM Levatich: I-O-T? 192 00:11:09,720 --> 00:11:10,440 >> PUBBLICO: Sì. 193 00:11:10,440 --> 00:11:10,960 >> SAM Levatich: Perfetto. 194 00:11:10,960 --> 00:11:11,210 OK. 195 00:11:11,210 --> 00:11:12,751 Credo che sapevo come si scrive questo. 196 00:11:12,751 --> 00:11:13,510 Mi dispiace per questo. 197 00:11:13,510 --> 00:11:16,560 Ma se diciamo "Dite ciao," non è non sta andando a mostrare sullo schermo 198 00:11:16,560 --> 00:11:18,476 ma perché abbiamo modificato il codice un po '. 199 00:11:18,476 --> 00:11:21,290 Ma se "dire ciao" - OK, "ciao" è qui. 200 00:11:21,290 --> 00:11:24,137 Ma se prendiamo un più stretto guardare l'URL stesso, 201 00:11:24,137 --> 00:11:26,220 vedremo che finisce con hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Così, questo è un modo di comunicare alla pagina web successiva 204 00:11:37,180 --> 00:11:39,240 i parametri che abbiamo passati. 205 00:11:39,240 --> 00:11:40,870 Abbiamo detto name = Elliot. 206 00:11:40,870 --> 00:11:46,290 E questo è in ultima analisi, come P set 6 accesso alla variabile che abbiamo passato in 207 00:11:46,290 --> 00:11:47,520 attraverso il modulo. 208 00:11:47,520 --> 00:11:51,470 E questo è qualcosa che è peculiare di una richiesta GET. 209 00:11:51,470 --> 00:11:57,480 Una richiesta get rende i parametri noto l'URL del sito web. 210 00:11:57,480 --> 00:12:01,190 >> E vi ricordate, anche, in P 6 set che si 211 00:12:01,190 --> 00:12:04,450 ha dovuto scrivere una funzione quello trattato con il fatto 212 00:12:04,450 --> 00:12:09,700 che questa stringa di query potrebbe esistere dopo che un file. 213 00:12:09,700 --> 00:12:14,684 Ci potrebbe essere un punto interrogativo seguito per praticamente qualsiasi numero di caratteri. 214 00:12:14,684 --> 00:12:16,350 E questo è esattamente quello che sta succedendo qui. 215 00:12:16,350 --> 00:12:21,280 E la ragione si doveva analizzare che nell'implementazione di server.c in P 216 00:12:21,280 --> 00:12:27,570 set 6 è così che si potrebbe dire il codice PHP che name = Elliot. 217 00:12:27,570 --> 00:12:30,460 Avevi bisogno di essere in grado di analizzare che fuori dell'URL 218 00:12:30,460 --> 00:12:35,900 in modo che il file PHP in questione sapeva cosa a che fare. 219 00:12:35,900 --> 00:12:39,350 >> Quindi speriamo che questo dà la motivazione per server.c 220 00:12:39,350 --> 00:12:43,900 ora che ci stiamo muovendo su al di fuori di C in PHP. 221 00:12:43,900 --> 00:12:48,240 Quindi cerchiamo di realmente concentrarsi su come accedere alla cose passare attraverso una richiesta GET ora 222 00:12:48,240 --> 00:12:48,880 a questo punto. 223 00:12:48,880 --> 00:12:50,157 Io vado a salvare questo. 224 00:12:50,157 --> 00:12:51,240 Non abbiamo cambiato nulla. 225 00:12:51,240 --> 00:12:56,080 Sembra che abbiamo un campo di input. 226 00:12:56,080 --> 00:12:58,550 >> Stiamo impostando alcune proprietà, come si può fare un HTML. 227 00:12:58,550 --> 00:12:59,550 Queste sono le cose semplici. 228 00:12:59,550 --> 00:13:00,580 Non abbiamo bisogno di questi. 229 00:13:00,580 --> 00:13:03,750 Ma abbiamo completamento automatico off, che fondamentalmente says-- si sa, 230 00:13:03,750 --> 00:13:05,710 quando si digita le cose nella rete, talvolta 231 00:13:05,710 --> 00:13:07,355 cerca di riempire quel dentro per voi. 232 00:13:07,355 --> 00:13:08,230 Quindi è una cosa bella. 233 00:13:08,230 --> 00:13:11,700 Vogliamo disattivarlo per questo scopo. 234 00:13:11,700 --> 00:13:13,970 E 'stata una decisione CS50. 235 00:13:13,970 --> 00:13:15,640 Così possiamo cancellare che se volevamo. 236 00:13:15,640 --> 00:13:19,510 >> Autofocus attacca solo il cursore nella giusta forma all'inizio. 237 00:13:19,510 --> 00:13:21,060 Ancora una volta, non troppo importante. 238 00:13:21,060 --> 00:13:26,220 >> Ma name = "nome" - è un po ' difficile perché il suo nome e il nome. 239 00:13:26,220 --> 00:13:28,730 Ma avremmo potuto cambiato questo a qualcos'altro. 240 00:13:28,730 --> 00:13:30,563 E infatti, questo è quello che faremo adesso. 241 00:13:30,563 --> 00:13:34,830 Diremo "persona", che è un po 'come nome 242 00:13:34,830 --> 00:13:36,790 se una persona è definita dal loro nome. 243 00:13:36,790 --> 00:13:41,480 >> Quindi cerchiamo di chiudere questo, riaprire il nostro sito web 244 00:13:41,480 --> 00:13:46,110 dal momento che il nostro server è ancora in esecuzione Apache 50, e ci diranno, ciao, ecco 245 00:13:46,110 --> 00:13:47,200 Elliot di nuovo. 246 00:13:47,200 --> 00:13:48,460 Perchè no? 247 00:13:48,460 --> 00:13:49,220 Ciao. 248 00:13:49,220 --> 00:13:52,880 E se andiamo qui, vedremo allora invece di name = Elliot, 249 00:13:52,880 --> 00:13:55,200 dice persona = Elliot. 250 00:13:55,200 --> 00:14:00,060 E questo è un risultato diretto del fatto che abbiamo appena cambiato name = "person". 251 00:14:00,060 --> 00:14:06,840 >> Quindi, in un elemento di ingresso un modulo HTML, il campo del nome 252 00:14:06,840 --> 00:14:10,590 è l'identificatore per il parametro che viene passato. 253 00:14:10,590 --> 00:14:14,250 E 'come se si sta creando una funzione "aggiungere", che ha preso in due interi 254 00:14:14,250 --> 00:14:16,670 e lei ha detto un int e int b. 255 00:14:16,670 --> 00:14:22,680 Sarebbe un nome, e se si voleva un'altra forma, che 256 00:14:22,680 --> 00:14:27,800 possiamo fare semplicemente copiando e incollare, allora avremmo nome b. 257 00:14:27,800 --> 00:14:31,030 >> Così ora avremo due parametri che vengono passati attraverso 258 00:14:31,030 --> 00:14:36,970 arrivare al prossimo website-- la pagina web successiva, ciao.php. 259 00:14:36,970 --> 00:14:39,770 E possiamo realmente vedere che ancora una volta, se vogliamo. 260 00:14:39,770 --> 00:14:44,830 Questo è il modo più semplice per affrontare il codice web nell'IDE, in fondo. 261 00:14:44,830 --> 00:14:47,940 Si avvia il server, farlo in esecuzione, e quindi ogni volta che si 262 00:14:47,940 --> 00:14:50,649 apportare alcune modifiche, proprio vicino il file giusto per essere sicuri. 263 00:14:50,649 --> 00:14:52,440 Premendo il pulsante indietro è un po 'difficile 264 00:14:52,440 --> 00:14:55,800 perché potrebbe caricare un precedente versione, non quella più aggiornata. 265 00:14:55,800 --> 00:14:59,200 >> E poi basta cliccare il tuo nuovamente il pulsante, pop destra up-- oh, 266 00:14:59,200 --> 00:15:00,510 e ora ci sono due forme. 267 00:15:00,510 --> 00:15:10,440 E così se digitiamo una cosa in ogni tra-- "Hirshhorn jason," per instance-- 268 00:15:10,440 --> 00:15:11,590 diciamo ciao. 269 00:15:11,590 --> 00:15:12,840 Noi guardiamo ai nostri parametri. 270 00:15:12,840 --> 00:15:18,910 Sembra che abbiamo, come previsto, un = jason e b = Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 che rappresenta i due parametri che siamo passati a questa funzione. 272 00:15:23,760 --> 00:15:27,900 >> Così ora andiamo in realtà arrivare a attuazione di tale funzionalità che abbiamo 273 00:15:27,900 --> 00:15:30,840 avuto in P set 6. 274 00:15:30,840 --> 00:15:32,490 Così adesso stiamo solo facendo eco ciao. 275 00:15:32,490 --> 00:15:34,310 E questo non è molto utile. 276 00:15:34,310 --> 00:15:38,530 Vogliamo eco un po 'variabile che è stato passato a noi. 277 00:15:38,530 --> 00:15:40,320 E sappiamo il nome di questa variabile. 278 00:15:40,320 --> 00:15:41,770 Abbiamo una e abbiamo b. 279 00:15:41,770 --> 00:15:43,500 Così abbiamo potuto scegliere di eco uno dei due. 280 00:15:43,500 --> 00:15:45,470 >> Ma come possiamo accedervi? 281 00:15:45,470 --> 00:15:48,820 Beh, ci sono certi variabili globali in PHP. 282 00:15:48,820 --> 00:15:51,240 E ho intenzione di scrivere loro commenti qui. 283 00:15:51,240 --> 00:15:59,910 I due più importanti sono get e post per i nostri scopi in questo momento. 284 00:15:59,910 --> 00:16:05,350 Questi sono i matrici o, Tecnicamente, i dizionari 285 00:16:05,350 --> 00:16:10,540 dove le nostre variabili che siamo passando alla successiva pagina web in diretta. 286 00:16:10,540 --> 00:16:14,520 E vedremo presto come usarli. 287 00:16:14,520 --> 00:16:19,720 >> Un'altra breve nota sul codice PHP e alcune specifiche di it-- in C, 288 00:16:19,720 --> 00:16:23,260 di dichiarare una variabile o utilizzare le variabili, 289 00:16:23,260 --> 00:16:24,570 in primo luogo dovuto dichiararli. 290 00:16:24,570 --> 00:16:30,860 E che cosa si doveva fare quando si hanno dichiarato loro c'era dire int a o char b. 291 00:16:30,860 --> 00:16:35,630 Si doveva dichiarare i tipi di questi le variabili prima di voi li ha creati. 292 00:16:35,630 --> 00:16:38,800 PHP-- non c'è bisogno di fare nulla di tutto ciò. 293 00:16:38,800 --> 00:16:42,522 PHP non chiede il tipo di variabile. 294 00:16:42,522 --> 00:16:44,480 E il modo in cui si creare un variable-- piuttosto 295 00:16:44,480 --> 00:16:49,930 che dire int, char, string-- che è davvero char *, come abbiamo know-- 296 00:16:49,930 --> 00:16:52,180 piuttosto che fare tutto che, perché tutto 297 00:16:52,180 --> 00:16:54,620 è dello stesso tipo, senza tipo, possiamo solo 298 00:16:54,620 --> 00:16:59,210 utilizzare un carattere, che è il simbolo del dollaro. 299 00:16:59,210 --> 00:17:03,700 E vedrete che è già popping up, piccole cose completamento automatico. 300 00:17:03,700 --> 00:17:11,380 E si sta dicendo che _CET e _POST sono due opzioni che ho a disposizione 301 00:17:11,380 --> 00:17:11,900 a me. 302 00:17:11,900 --> 00:17:16,430 Alcune di queste altre cose sono altre variabili globali in PHP 303 00:17:16,430 --> 00:17:18,430 che userete su il corso di P impostato 7. 304 00:17:18,430 --> 00:17:20,569 Per ora stiamo andando a concentrarsi su GET e POST. 305 00:17:20,569 --> 00:17:22,910 Ma questo è un utile cosa che l'IDE fa 306 00:17:22,910 --> 00:17:24,980 dove una volta che hai digitato in quel segno di dollaro, 307 00:17:24,980 --> 00:17:28,760 si inizierà compilando variabili globali o variabili che hai già definiti. 308 00:17:28,760 --> 00:17:34,360 >> Quindi, se si voleva definire una variabile chiamata "stringa" 309 00:17:34,360 --> 00:17:38,290 si può solo impostare uguale a "hi". 310 00:17:38,290 --> 00:17:40,100 Ed è in fondo così semplice come sembra. 311 00:17:40,100 --> 00:17:44,720 E allora potremmo fare qualcosa come "echo $ string". 312 00:17:44,720 --> 00:17:48,524 L'IDE deve essere gettando qualche errori se sto facendo qualcosa di sbagliato, 313 00:17:48,524 --> 00:17:50,190 quindi speriamo che sto facendo tutto a destra. 314 00:17:50,190 --> 00:17:52,060 Ma bug sempre sorgono. 315 00:17:52,060 --> 00:17:56,670 >> Un'altra cosa difficile su PHP è che non è compilato. 316 00:17:56,670 --> 00:18:00,640 Quindi, con programmi in C, si dovrebbe fare la routine quotidiana di-- fondamentalmente, 317 00:18:00,640 --> 00:18:02,710 si potrebbe apportare modifiche alla il codice, devi salvarlo, 318 00:18:02,710 --> 00:18:04,460 e poi si sarebbe ne fanno, dove era make 319 00:18:04,460 --> 00:18:08,830 il passo che chiama il compilatore, clang, per rendere il codice, questo testo 320 00:18:08,830 --> 00:18:10,570 presentare, in un file eseguibile. 321 00:18:10,570 --> 00:18:15,550 PHP è C-like, ma è eseguito al volo dal browser web. 322 00:18:15,550 --> 00:18:17,640 Quindi non c'è modo di sapere. 323 00:18:17,640 --> 00:18:19,790 >> Fai getterebbe quelli utile errori, giusto? 324 00:18:19,790 --> 00:18:22,190 Sarebbe come, non dichiarare questa variabile 325 00:18:22,190 --> 00:18:23,320 prima si è tentato di usarla. 326 00:18:23,320 --> 00:18:29,120 Hai fatto tutto questo male segfault stuff--, segmentation fault, tutto quel genere di divertimento volte 327 00:18:29,120 --> 00:18:31,000 che è venuto con make. 328 00:18:31,000 --> 00:18:33,920 PHP è un arma a doppio taglio perché non sarà possibile ottenere tali errori, 329 00:18:33,920 --> 00:18:37,770 ma questo significa anche che non si sa davvero cosa c'è di sbagliato con il vostro programma 330 00:18:37,770 --> 00:18:39,840 se solo esegue e non funziona. 331 00:18:39,840 --> 00:18:45,130 Ma il debugger dovrebbe indicare alcuni si spera utile piccole cose 332 00:18:45,130 --> 00:18:47,950 sintatticamente che si può risolvere. 333 00:18:47,950 --> 00:18:52,850 >> Così ora se andiamo oltre a-- dicono, chiudiamo questo. 334 00:18:52,850 --> 00:18:54,522 Riaprire. 335 00:18:54,522 --> 00:18:55,480 E siamo di nuovo qui a. 336 00:18:55,480 --> 00:18:57,210 Così abbiamo una variabile e una variabile b. 337 00:18:57,210 --> 00:18:58,626 E questi non saranno in definitiva importa. 338 00:18:58,626 --> 00:19:01,850 Li chiameremo h e g per nessun motivo particolare. 339 00:19:01,850 --> 00:19:03,120 >> E diciamo ciao. 340 00:19:03,120 --> 00:19:07,480 Ora sembra che la nostra stringa "hi" è davvero la stampa. 341 00:19:07,480 --> 00:19:10,460 Abbiamo creato una variabile chiamata "stringa", impostarlo uguale a "hi". 342 00:19:10,460 --> 00:19:15,520 Si noti che non abbiamo avuto a che fare malloc o fare un array di caratteri. 343 00:19:15,520 --> 00:19:19,110 >> In PHP, perché le variabili sono senza tipo, una stringa 344 00:19:19,110 --> 00:19:22,230 è la stessa come per char tutti gli effetti. 345 00:19:22,230 --> 00:19:23,570 Questo potrebbe essere "hi". 346 00:19:23,570 --> 00:19:26,340 Questo potrebbe essere solo il carattere k. 347 00:19:26,340 --> 00:19:29,290 Questo può essere un numero 1. 348 00:19:29,290 --> 00:19:30,300 E non importa. 349 00:19:30,300 --> 00:19:33,560 PHP non si preoccupa il tipo di variabile. 350 00:19:33,560 --> 00:19:34,390 O, lo fa la cura. 351 00:19:34,390 --> 00:19:36,240 Si preoccupa quando si tenta e fare le cose con esso, 352 00:19:36,240 --> 00:19:38,790 ma non importa in la fase di dichiarazione. 353 00:19:38,790 --> 00:19:46,960 >> E proprio come è possibile in C, è possibile dichiarare stringhe sullo stack come questo 354 00:19:46,960 --> 00:19:51,130 anche se dicendo "stack" è un po ' po 'un termine improprio potenziale quando 355 00:19:51,130 --> 00:19:52,230 stiamo parlando di PHP. 356 00:19:52,230 --> 00:19:54,020 Ma noi non dobbiamo preoccuparci di questo. 357 00:19:54,020 --> 00:19:55,936 Così abbiamo ottenuto la nostra stringa "ciao", e abbiamo eco corda. 358 00:19:55,936 --> 00:19:58,880 Così ora abbiamo discusso variabili. 359 00:19:58,880 --> 00:20:06,060 Così ora abbiamo bisogno di parlare di ottenere e postare ed eseguire l'ultima cosa che è 360 00:20:06,060 --> 00:20:12,660 necessario per ottenere proprio questo back up alla funzionalità del P set 6. 361 00:20:12,660 --> 00:20:14,990 Così adesso siamo riecheggiando la corda, ma noi 362 00:20:14,990 --> 00:20:17,080 non hanno queste variabili GET e POST. 363 00:20:17,080 --> 00:20:19,430 E perché stiamo usando il metodo GET, essa 364 00:20:19,430 --> 00:20:24,810 sembra naturale che il nostro variabile che ci interessa, sia a che b, 365 00:20:24,810 --> 00:20:29,870 sarà situato nella matrice o un dizionario, tecnicamente ottenere. 366 00:20:29,870 --> 00:20:33,510 >> Quindi, se abbiamo istituito ottenere come questo con il vostro groups-- ho premuto entrare 367 00:20:33,510 --> 00:20:36,770 e non gli piaceva it-- ma qui abbiamo ottenere. 368 00:20:36,770 --> 00:20:38,000 E così ottenere esiste già. 369 00:20:38,000 --> 00:20:41,380 Così possiamo già iniziare a accesso alcuni degli elementi di get. 370 00:20:41,380 --> 00:20:45,000 Se noi otteniamo, questa sintassi per array in PHP è molto simile al C. 371 00:20:45,000 --> 00:20:47,900 Noi abbiamo i nostri due parentesi quadre. 372 00:20:47,900 --> 00:20:53,440 >> Quindi, se diciamo entrare in una normale array, abbiamo potuto accedere 373 00:20:53,440 --> 00:20:55,600 l'indice zeroth, il primo indice. 374 00:20:55,600 --> 00:20:56,840 PHP è indice zero. 375 00:20:56,840 --> 00:21:00,550 Potremmo dire zero, uno, roba two-- come questa. 376 00:21:00,550 --> 00:21:03,420 E ho detto che arrivare è tecnicamente un dizionario. 377 00:21:03,420 --> 00:21:08,290 Così che cosa PHP sta facendo sotto il cofano, che è un po 'più bello di C, 378 00:21:08,290 --> 00:21:12,760 è già ti dà un po ' funzionalità dizionario, che 379 00:21:12,760 --> 00:21:16,240 è davvero tabelle hash, o cerca di, presumibilmente. 380 00:21:16,240 --> 00:21:19,360 Oppure, tecnicamente potrebbe essere una prova pure. 381 00:21:19,360 --> 00:21:25,500 Ma PHP sta attuando una tabella hash, che costituisce dizionario efficace. 382 00:21:25,500 --> 00:21:28,400 >> E così sappiamo il nome della nostra variabile, giusto? 383 00:21:28,400 --> 00:21:32,440 E 'in fase di passata in la stringa di query da PHP. 384 00:21:32,440 --> 00:21:37,290 Abbiamo a = h e b = g dove e b sono i nomi delle variabili. 385 00:21:37,290 --> 00:21:41,580 Quindi il modo che si possa accedere al valore che corrisponde alla chiave 386 00:21:41,580 --> 00:21:45,055 nel nostro dizionario è semplicemente dicendo _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Così ora abbiamo _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 E se noi sostituiamo appena dentro il nostro eco, se abbiamo eco _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 e vedremo se il debugger getta eventuali errori circa questo-- 391 00:22:02,410 --> 00:22:05,620 salveremo che e chiudiamo questo fuori. 392 00:22:05,620 --> 00:22:07,130 Aprirlo. 393 00:22:07,130 --> 00:22:10,390 Quindi stiamo solo facendo un diritto ora, quindi b non dovrebbe importare. 394 00:22:10,390 --> 00:22:12,980 "lei" e "lui" - "ronzio." "suo" e "ronzio". 395 00:22:12,980 --> 00:22:14,810 Suona bene. 396 00:22:14,810 --> 00:22:18,040 >> Ed è stampato "lei" che è pazzo. 397 00:22:18,040 --> 00:22:21,920 Ma questo è esattamente ciò che stava accadendo in P set 6. 398 00:22:21,920 --> 00:22:27,240 In sostanza, ciò che P set 6 era doing-- eco ciao, 399 00:22:27,240 --> 00:22:31,580 nome-- dove aveva un nome della variabile e solo 400 00:22:31,580 --> 00:22:35,520 vi chiede di digitare quel po 'di testo. 401 00:22:35,520 --> 00:22:37,380 C'era anche un po ' codice aggiuntivo dove 402 00:22:37,380 --> 00:22:40,550 comprendeva istruzioni if, che possiamo fare in questo momento. 403 00:22:40,550 --> 00:22:50,120 >> Possiamo dire, se esiste, che è una funzionalità all'interno di PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Con la sottolineatura, "nome" - che è fondamentalmente dicendo, 405 00:22:55,110 --> 00:22:58,760 "se il nome è stato riempito in" perché avremmo potuto appena cliccato il pulsante 406 00:22:58,760 --> 00:23:02,580 di inviare il modulo, senza digitare nulla in quel campo. 407 00:23:02,580 --> 00:23:07,760 E ci avvolgiamo che nella nostra amichevoli parentesi graffe. 408 00:23:07,760 --> 00:23:09,175 Possiamo avere un'istruzione else. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 E questo è tutto all'interno dell'angolo di PHP Staffa, punto interrogativo, parentesi angolare, 411 00:23:18,820 --> 00:23:20,040 se vuoi. 412 00:23:20,040 --> 00:23:21,750 >> E ora vedremo se questo funziona. 413 00:23:21,750 --> 00:23:26,300 Continuo aspettando che il debug e merda su di me, in fondo, 414 00:23:26,300 --> 00:23:28,410 ma non è ancora. 415 00:23:28,410 --> 00:23:30,830 Forse questo si perché ho parlato. 416 00:23:30,830 --> 00:23:31,330 Sì. 417 00:23:31,330 --> 00:23:32,510 Lo ha fatto, in effetti. 418 00:23:32,510 --> 00:23:34,610 Quindi, nulla sta rivelando. 419 00:23:34,610 --> 00:23:38,750 Questo perché di qualcosa che non va che ho scritto nel codice PHP. 420 00:23:38,750 --> 00:23:42,844 E ho citato il debug è difficile perché in PHP, abbiamo 421 00:23:42,844 --> 00:23:45,260 non compilarlo in anticipo e il compilatore non era come, 422 00:23:45,260 --> 00:23:46,710 qui è dove i vostri errori sono. 423 00:23:46,710 --> 00:23:49,690 >> Ma cosa possiamo fare è-- fare la gente ricorda 424 00:23:49,690 --> 00:23:57,010 come guardare i diversi network richieste che PHP-- o che i siti web 425 00:23:57,010 --> 00:23:57,620 inviare? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Ha fatto questo a lezione una o due volte. 427 00:24:00,290 --> 00:24:05,830 Ti ricordi dove andiamo a trovare i diversi debiti e 200 OKs, 428 00:24:05,830 --> 00:24:09,780 tutti questi codici che vengono inviati attraverso HTTP dalla pagina web alla pagina web? 429 00:24:09,780 --> 00:24:12,514 Qualcuno ricorda dove andiamo a fare questo? 430 00:24:12,514 --> 00:24:13,787 >> PUBBLICO: Page Source. 431 00:24:13,787 --> 00:24:14,870 SAM Levatich: fonte pagina. 432 00:24:14,870 --> 00:24:15,890 Di preciso. 433 00:24:15,890 --> 00:24:19,230 Se andate a pagina sorgente-- perfetto. 434 00:24:19,230 --> 00:24:21,630 Così Page Source tira su l'ispettore. 435 00:24:21,630 --> 00:24:23,140 >> E sto utilizzando Safari. 436 00:24:23,140 --> 00:24:25,790 Molti di voi probabilmente prevede di utilizzare Chrome o Firefox. 437 00:24:25,790 --> 00:24:27,750 Ma finché sei in qualsiasi browser-- moderno 438 00:24:27,750 --> 00:24:29,500 e sentitevi liberi di seguire lungo, se vuoi. 439 00:24:29,500 --> 00:24:32,560 È possibile digitare questa codice o basta guardare dentro il set P 6 440 00:24:32,560 --> 00:24:35,820 directory per alcune cose simile. 441 00:24:35,820 --> 00:24:41,020 hello.php è ciò che siamo attualmente lavorando su emulare. 442 00:24:41,020 --> 00:24:42,476 >> Quindi ci sono una varietà di schede. 443 00:24:42,476 --> 00:24:43,850 Possiamo guardare tutte le risorse. 444 00:24:43,850 --> 00:24:45,810 Siamo in grado di vedere il codice sorgente. 445 00:24:45,810 --> 00:24:49,900 Così sembra che non ha ottenere corpo oltre alla fine. 446 00:24:49,900 --> 00:24:54,890 Ha trovato un errore in PHP ed è fermato il caricamento della pagina web intero. 447 00:24:54,890 --> 00:24:58,320 Non abbiamo neanche avere una fine tag per HTML o nulla. 448 00:24:58,320 --> 00:25:07,189 >> E se guardiamo la rete, possiamo vediamo che ci stanno inviato una richiesta. 449 00:25:07,189 --> 00:25:07,980 Questo è il dominio. 450 00:25:07,980 --> 00:25:09,270 Questo è l'indirizzo. 451 00:25:09,270 --> 00:25:10,070 Si tratta di un documento. 452 00:25:10,070 --> 00:25:14,310 Stiamo usando il metodo get. 453 00:25:14,310 --> 00:25:15,760 >> Ed è rosso. 454 00:25:15,760 --> 00:25:19,030 O, era rosso quando ho non è stato selezionandolo. 455 00:25:19,030 --> 00:25:22,680 Come faccio a deselezionare esso? 456 00:25:22,680 --> 00:25:23,980 Beh, era rosso. 457 00:25:23,980 --> 00:25:25,201 Mi permetta di rinfrescare. 458 00:25:25,201 --> 00:25:25,700 Eccolo. 459 00:25:25,700 --> 00:25:26,640 Ora è rosso. 460 00:25:26,640 --> 00:25:30,530 >> Quindi è rosso, che significa non è riuscito, che è male. 461 00:25:30,530 --> 00:25:32,280 Quindi cerchiamo di esaminare il motivo per cui ha mancato. 462 00:25:32,280 --> 00:25:37,070 Quindi tutto ciò che il Page Source può fondamentalmente dirvi è la vostra cosa 463 00:25:37,070 --> 00:25:38,720 non ha funzionato, che possiamo già vedere. 464 00:25:38,720 --> 00:25:42,100 Così idealmente ci sarebbe uno strumento più utile. 465 00:25:42,100 --> 00:25:45,710 E ci sono alcune estensioni del browser che permettono di eseguire il debug PHP, 466 00:25:45,710 --> 00:25:50,490 ma non stiamo andando a essere iscritto una tonnellata di PHP, 467 00:25:50,490 --> 00:25:53,190 quindi è probabilmente solo migliore di guardare attraverso il codice 468 00:25:53,190 --> 00:25:56,760 con attenzione e solo fare in modo che non sta facendo altro. 469 00:25:56,760 --> 00:26:03,876 >> Quindi cerchiamo di vedere se il formato di questo if è dove è il problema. 470 00:26:03,876 --> 00:26:07,420 Voglio caricare il backup qui. 471 00:26:07,420 --> 00:26:09,830 Ciao. 472 00:26:09,830 --> 00:26:11,350 Quindi c'è un problema. 473 00:26:11,350 --> 00:26:15,130 >> Così per la sintassi corretta di PHP, PHP sta andando 474 00:26:15,130 --> 00:26:17,369 di essere simile al C in che vedrete loop. 475 00:26:17,369 --> 00:26:18,410 Vedrai se dichiarazioni. 476 00:26:18,410 --> 00:26:20,920 Vedrete tutti questi amici che sei diventato familiare 477 00:26:20,920 --> 00:26:24,820 con nel corso di questo CS50 semestre. 478 00:26:24,820 --> 00:26:29,960 Ma il modo migliore per capire come fare qualcosa in PHP è quello di google 479 00:26:29,960 --> 00:26:33,170 o per guardare alcuni esempi di codice PHP perché sai la funzionalità. 480 00:26:33,170 --> 00:26:35,080 >> Sai quello che si può fare con il programma. 481 00:26:35,080 --> 00:26:35,976 È possibile loop. 482 00:26:35,976 --> 00:26:37,600 Potete ciclo tutte le volte che si desidera. 483 00:26:37,600 --> 00:26:39,433 È possibile ciclo in tutto i tipi di modi diversi. 484 00:26:39,433 --> 00:26:40,700 È possibile creare funzioni. 485 00:26:40,700 --> 00:26:43,241 È possibile creare funzioni che chiamare altre funzioni, funzioni 486 00:26:43,241 --> 00:26:44,150 che si definiscono. 487 00:26:44,150 --> 00:26:45,733 E avete nomi per questi concetti. 488 00:26:45,733 --> 00:26:49,860 Hai ricorsione, loops, se, altri flussi di controllo. 489 00:26:49,860 --> 00:26:51,300 E così Google è il tuo migliore amico. 490 00:26:51,300 --> 00:26:53,540 Anche dire, "se PHP dichiarazione "e ci sarà 491 00:26:53,540 --> 00:26:57,740 essere tonnellate di post con risposte ad altre persone 492 00:26:57,740 --> 00:27:02,090 che avuto domande simili a voi, che è solo agli inizi con PHP 493 00:27:02,090 --> 00:27:03,820 e sono curioso di sapere una cosa sintassi. 494 00:27:03,820 --> 00:27:08,480 >> Perché abbiamo il lusso di essere in grado di guardare il codice in P set 6, 495 00:27:08,480 --> 00:27:14,980 abbiamo effettivamente tiriamo su e vediamo che OK, ecco qualcosa di interessante. 496 00:27:14,980 --> 00:27:18,070 Quindi questo è quello che in realtà sembrava in P set 6. 497 00:27:18,070 --> 00:27:20,340 Quindi, se andiamo attraverso questo, possiamo vedere che abbiamo 498 00:27:20,340 --> 00:27:27,150 ha ottenuto molti di questi piccoli Bit punto interrogativo PHP-simili. 499 00:27:27,150 --> 00:27:29,050 >> E non ci sono parentesi graffe. 500 00:27:29,050 --> 00:27:30,250 Ci sono due punti. 501 00:27:30,250 --> 00:27:32,340 E ci sono ricci bretelle in PHP, ma questo 502 00:27:32,340 --> 00:27:38,700 è un formato e un modo di fare PHP che funziona bene con HTML 503 00:27:38,700 --> 00:27:43,830 perché come avrete capito, stiamo chiudendo fuori questi PHP bits-- il elses 504 00:27:43,830 --> 00:27:49,770 e IFS e tutti che-- e poi stiamo inframmezzando HTML al loro interno 505 00:27:49,770 --> 00:27:54,640 mentre ancora in seguito alla flusso di controllo definito da PHP. 506 00:27:54,640 --> 00:27:58,480 >> Così sto solo andando a breve passeggiata attraverso questo 507 00:27:58,480 --> 00:28:01,740 perché è un sacco dello stesso concetti che stavamo facendo prima. 508 00:28:01,740 --> 00:28:07,280 Abbiamo se non vuoto, parentesi, _GET_GET ["name"]. 509 00:28:07,280 --> 00:28:08,500 Questa è tutta la stessa roba. 510 00:28:08,500 --> 00:28:15,430 Stiamo utilizzando il dizionario che _GET PHP invia su richiesta di forme, 511 00:28:15,430 --> 00:28:20,720 perché sono i parametri di azione, e il metodo è ottenere. 512 00:28:20,720 --> 00:28:22,110 E poi quel che finisce così. 513 00:28:22,110 --> 00:28:27,420 Il colon è un significante di fare proprio questo se l'istruzione if restituisce true. 514 00:28:27,420 --> 00:28:29,490 E 'come una parentesi graffa. 515 00:28:29,490 --> 00:28:33,320 Ed infatti, è una graffa in altri linguaggi come Python, 516 00:28:33,320 --> 00:28:37,070 che si possono verificare se solo farlo per il vostro progetto finale. 517 00:28:37,070 --> 00:28:40,170 >> E poi questa linea, ciao. 518 00:28:40,170 --> 00:28:41,510 Poi abbiamo questa cosa strana. 519 00:28:41,510 --> 00:28:43,190 Abbiamo più staffe. 520 00:28:43,190 --> 00:28:46,140 Non c'è HTTP there-- o PHP, mi dispiace. 521 00:28:46,140 --> 00:28:47,250 Ma c'è un segno di uguale. 522 00:28:47,250 --> 00:28:50,625 E poi abbiamo una funzione, htmlspecialchars (_GEThtmlspecialchars (_GET ["nome"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Questo è un po 'come un altro versione avanzata di eco. 525 00:28:58,040 --> 00:29:01,450 Come avevamo eco come un modo per stampare le cose in PHP. 526 00:29:01,450 --> 00:29:03,890 Questa è una funzione che è definita in PHP che 527 00:29:03,890 --> 00:29:08,160 si occuperà di ancora un po 'brutto caratteri e valori di byte 528 00:29:08,160 --> 00:29:09,540 che si poteva passare. 529 00:29:09,540 --> 00:29:11,070 E 'sempre più sicuro di utilizzare questo. 530 00:29:11,070 --> 00:29:14,930 Ma l'eco farà il lavoro bene se non siamo 531 00:29:14,930 --> 00:29:17,620 che fare con qualcosa di troppo brutto. 532 00:29:17,620 --> 00:29:20,340 >> E così questo ha lo stesso effetto di fondo, 533 00:29:20,340 --> 00:29:26,360 questa roba tra la domanda marchi viene valutata da PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars restituisce un bel HTML valore stampato di _GET_GET ["nome"], vale a dire 535 00:29:34,490 --> 00:29:36,010 tutto ciò che abbiamo digitato in forma. 536 00:29:36,010 --> 00:29:40,025 E poi dirà ciao, spazio virgola e quindi che. 537 00:29:40,025 --> 00:29:42,910 Che cosa tutto tra le parentesi angolari 538 00:29:42,910 --> 00:29:47,390 sarà sostituito da qualunque htmlspecialchars mette fuori. 539 00:29:47,390 --> 00:29:49,390 Quindi questo è fondamentalmente simile per quello che stiamo facendo. 540 00:29:49,390 --> 00:29:54,760 E abbiamo un'istruzione else che è ciao mondo, che ha un senso. 541 00:29:54,760 --> 00:29:58,070 Così ora torniamo al nostro codice e vedere exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Ho detto esiste, che non è una cosa che volevamo fare. 543 00:30:02,200 --> 00:30:05,370 Abbiamo voluto dire che non vuoto. 544 00:30:05,370 --> 00:30:10,020 >> E quindi questo dovrebbe lavorare un po ' po 'meglio, non _GET_GET vuoto ["nome"]. 545 00:30:10,020 --> 00:30:12,710 E questo parentesi graffa corrisponde a quello parentesi graffa. 546 00:30:12,710 --> 00:30:15,210 Abbiamo i nostri parentesi graffe qui. 547 00:30:15,210 --> 00:30:17,790 echo ciao _GET ["nome"]. 548 00:30:17,790 --> 00:30:19,912 Vediamo se funziona un po 'meglio. 549 00:30:19,912 --> 00:30:21,350 Stiamo ancora in esecuzione il nostro server. 550 00:30:21,350 --> 00:30:23,910 Ciao Jason. 551 00:30:23,910 --> 00:30:24,780 Ciao Jason. 552 00:30:24,780 --> 00:30:25,810 E ha funzionato questa volta. 553 00:30:25,810 --> 00:30:29,860 E così che è una prova che si può davvero 554 00:30:29,860 --> 00:30:35,180 utilizzare le parentesi graffe che si conoscere e ad amare in codice PHP in HTML. 555 00:30:35,180 --> 00:30:41,100 Il codice PHP fornito voi nel pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 fornisce un altro modo di facendo la stessa cosa. 557 00:30:44,760 --> 00:30:49,220 >> Così ora abbiamo il potere. 558 00:30:49,220 --> 00:30:55,740 Abbiamo la funzionalità da implementare il codice PHP che abbiamo visto nel pset 6 559 00:30:55,740 --> 00:30:57,390 da noi stessi, in fondo. 560 00:30:57,390 --> 00:31:01,350 Prima di passare, quali sono alcuni dei le domande che avete a questo punto? 561 00:31:01,350 --> 00:31:02,066 Sì [incomprensibile]. 562 00:31:02,066 --> 00:31:06,512 >> PUBBLICO: Quindi nella versione in pset6, quando lo si esegue, c'è uno spazio. 563 00:31:06,512 --> 00:31:09,330 E posso vedere dove lo spazio è dopo la virgola. [Incomprensibile] inizio 564 00:31:09,330 --> 00:31:10,700 la parentesi aperta. 565 00:31:10,700 --> 00:31:15,420 Come si fa a incorporare lo spazio in il modo in cui avete scritto i vostri codici? 566 00:31:15,420 --> 00:31:17,910 >> SPEAKER: Questa è una buona domanda. 567 00:31:17,910 --> 00:31:21,650 E quindi cerchiamo di capirlo. 568 00:31:21,650 --> 00:31:24,450 Quindi questo è veramente una buona domanda e uno che non ho considerato. 569 00:31:24,450 --> 00:31:25,950 Ma facciamolo insieme. 570 00:31:25,950 --> 00:31:30,280 >> Quindi, prima di tutto, cosa Sto facendo con eco 571 00:31:30,280 --> 00:31:33,690 è quando abbiamo appena eco ciao, viene emesso ciao. 572 00:31:33,690 --> 00:31:41,310 Se abbiamo eco ora questo ottenere su un separato la linea, esaminiamo cosa accade. 573 00:31:41,310 --> 00:31:43,740 Quindi clicchiamo questo. 574 00:31:43,740 --> 00:31:45,220 Noi continuiamo a dire, ciao Jason. 575 00:31:45,220 --> 00:31:48,690 Così ancora una volta, non abbiamo questo spazio. 576 00:31:48,690 --> 00:31:53,090 >> E questo perché, in PHP, quando abbiamo eco, 577 00:31:53,090 --> 00:31:55,820 non importa quante spaces-- no, non il V-- 578 00:31:55,820 --> 00:32:01,770 non importa quanti spazi mettiamo in qui-- se ora caricare il nuovo, 579 00:32:01,770 --> 00:32:03,010 hi Jason. 580 00:32:03,010 --> 00:32:05,770 Sì, ci vediamo, tutti coloro spazi GOT mangiati. 581 00:32:05,770 --> 00:32:08,020 E questo è qualcosa che la funzione eco fa. 582 00:32:08,020 --> 00:32:11,110 >> Quindi, per prendersi cura di quello spazio, e questo è 583 00:32:11,110 --> 00:32:14,960 uno dei motivi perchè non si usa eco 584 00:32:14,960 --> 00:32:18,200 e si utilizza invece htmlspecialchars. 585 00:32:18,200 --> 00:32:22,140 Sono curioso di ciò che sarebbe succederebbe se abbiamo fatto questo 586 00:32:22,140 --> 00:32:26,700 dove siamo rinchiusi uno spazio in una stringa. 587 00:32:26,700 --> 00:32:29,720 Non sono sicuro di quello che onestamente succede quando faccio questo. 588 00:32:29,720 --> 00:32:30,790 >> Ecco, questo è un modo. 589 00:32:30,790 --> 00:32:32,210 Questo è un modo per prendersi cura di esso. 590 00:32:32,210 --> 00:32:34,840 Se si avvolgono lo spazio in una stringa, allora lo spazio 591 00:32:34,840 --> 00:32:36,920 sarà in uscita bene da eco. 592 00:32:36,920 --> 00:32:41,930 La cosa più sicura da fare è fare htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Questa è sempre la scommessa sicura. 594 00:32:43,800 --> 00:32:47,050 Ma ora abbiamo un modo per fare con echo se necessario. 595 00:32:47,050 --> 00:32:50,700 E in un modo simile, possiamo eco nuove linee, tutto il genere 596 00:32:50,700 --> 00:32:53,550 di roba che si ha familiarità facendo in PHP. 597 00:32:53,550 --> 00:32:57,460 >> Chiunque altro, quali sono più domande che altre persone hanno 598 00:32:57,460 --> 00:33:01,090 a questo punto su PHP? 599 00:33:01,090 --> 00:33:04,620 Se la gente ha mostrato un po 'tardi, Sono felice di stare dopo un po ' 600 00:33:04,620 --> 00:33:06,420 e parlare di alcune delle dall'inizio. 601 00:33:06,420 --> 00:33:10,380 Ed è anche tutto livestreamed, e archiviati, che è pazzo. 602 00:33:10,380 --> 00:33:13,960 >> In ogni caso, così ora facciamo qualche cose più avanzate con PHP. 603 00:33:13,960 --> 00:33:18,790 E una delle prime cose che si sono stati introdotti a in C era per cicli. 604 00:33:18,790 --> 00:33:24,060 E PHP ha una più potente per ciclo chiamato il ciclo foreach. 605 00:33:24,060 --> 00:33:37,940 E sembra che questo-- per ogni vuoto come vuoto, parentesi graffe, fare la cosa. 606 00:33:37,940 --> 00:33:41,500 Quindi, questo è fondamentalmente una scorciatoia. 607 00:33:41,500 --> 00:33:45,380 >> Vedere, il ciclo for come costruzione sintattica 608 00:33:45,380 --> 00:33:50,590 è stato ideato in C e nell'assemblaggio lingua e cose del genere. 609 00:33:50,590 --> 00:33:56,300 Ideato in C, appunto, come una scorciatoia per molti tipi di loop 610 00:33:56,300 --> 00:33:57,750 che la gente vedere. 611 00:33:57,750 --> 00:34:01,230 Come quando hai scritto un ciclo, ci era spesso una fase di inizializzazione 612 00:34:01,230 --> 00:34:04,700 eseguito proprio all'inizio, un condizione in cui il ciclo si stop-- 613 00:34:04,700 --> 00:34:07,030 e questa è la caratteristica questo è solo in un ciclo while, 614 00:34:07,030 --> 00:34:10,040 o che qualche tempo ha esattamente solo che Caratteristica-- e poi 615 00:34:10,040 --> 00:34:12,320 un passo l'incremento alla fine. 616 00:34:12,320 --> 00:34:16,489 E così che ci si ritrovi spesso la scrittura di codice come il seguente. 617 00:34:16,489 --> 00:34:19,780 Io vado a cancellare una parte di questo. 618 00:34:19,780 --> 00:34:23,850 >> Ma se stiamo scorrendo caratteri in un array, 619 00:34:23,850 --> 00:34:26,960 per esempio, come abbiamo ha ottenuto un array di caratteri. 620 00:34:26,960 --> 00:34:29,400 Mi dispiace per riportare C. Lo so, pensavi di fatto. 621 00:34:29,400 --> 00:34:31,900 Ma è solo per lo scopo di imparare PHP, lo prometto. 622 00:34:31,900 --> 00:34:38,880 Quindi, se avete una str char di lunghezza di 8, e facciamo 623 00:34:38,880 --> 00:34:46,760 dire che dice Hellooo con un valore null finale. 624 00:34:46,760 --> 00:34:48,270 Grande, in modo che la nostra stringa. 625 00:34:48,270 --> 00:34:51,469 >> E poi abbiamo avuto un ciclo for. 626 00:34:51,469 --> 00:34:53,730 Abbiamo int i è uguale a 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 E vogliamo uscire quando str di i non è uguale a uguale a null, 629 00:35:09,110 --> 00:35:11,590 perché usciamo quando è uguale a zero. 630 00:35:11,590 --> 00:35:19,170 E poi facciamo i ++ ad ogni punto del ciclo for. 631 00:35:19,170 --> 00:35:30,480 Fare qualcosa con str di i. 632 00:35:30,480 --> 00:35:34,950 >> Così la formula di base è stato, abbiamo avuto questo array che abbiamo 633 00:35:34,950 --> 00:35:37,910 voluto trattare come elementi separati. 634 00:35:37,910 --> 00:35:45,170 Ma quello che abbiamo dovuto fare è che abbiamo dovuto fondamentalmente creare un intero separata 635 00:35:45,170 --> 00:35:50,530 variabile che è stata contando ogni volta siamo andati attraverso il ciclo. 636 00:35:50,530 --> 00:35:55,240 E poi dovremmo quindi chiamare strstr [i] quando ciò che realmente voluto fare 637 00:35:55,240 --> 00:35:57,280 è solo andare carattere per carattere, giusto? 638 00:35:57,280 --> 00:36:00,185 Noi non vogliamo incrementare un intero e quindi utilizzare tale intero 639 00:36:00,185 --> 00:36:02,780 per accedere a ogni personaggio singolarmente. 640 00:36:02,780 --> 00:36:04,410 Vogliamo davvero carattere per carattere. 641 00:36:04,410 --> 00:36:08,600 >> E così per ogni intelligenza calcola che per noi. 642 00:36:08,600 --> 00:36:11,875 Se abbiamo un array, che possiamo dichiarare in PHP 643 00:36:11,875 --> 00:36:15,900 come solo-- se abbiamo una variabile chiamato, chiamiamolo array. 644 00:36:15,900 --> 00:36:19,840 I miracoli di no battitura, è come qualsiasi altra variabile. 645 00:36:19,840 --> 00:36:20,730 E 'solo un array. 646 00:36:20,730 --> 00:36:26,890 E abbiamo un po 'di [incomprensibile] come 1, 2, 3, solo una sorta di matrice inizializzato. 647 00:36:26,890 --> 00:36:29,680 Va bene, non gli piace la mia foreach. 648 00:36:29,680 --> 00:36:33,120 >> Ma se in realtà foreach-- Ho scritto che un po 'sbagliato. 649 00:36:33,120 --> 00:36:34,840 Ci sono due modi per fare un ciclo foreach. 650 00:36:34,840 --> 00:36:37,400 C'è la sintassi e il come sintassi. 651 00:36:37,400 --> 00:36:40,580 E stiamo andando a fare in prima sintassi, non come. 652 00:36:40,580 --> 00:36:41,780 Questo è il mio errore. 653 00:36:41,780 --> 00:36:53,785 >> Num Così foreach in ordine, eco num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 E PHP sta urlando a me per qualche motivo. 656 00:36:59,500 --> 00:37:03,520 Si tratta di trovare un inaspettato in in qualcosa, 657 00:37:03,520 --> 00:37:05,820 che è un po 'di fastidio. 658 00:37:05,820 --> 00:37:09,105 Ma faremo capire perché questo è in un momento. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Quindi non piace che. 661 00:37:13,610 --> 00:37:15,040 Proviamo ad usare il come. 662 00:37:15,040 --> 00:37:17,310 Predilige la sintassi è come sembra. 663 00:37:17,310 --> 00:37:22,550 Allora, facciamo gamma foreach come num. 664 00:37:22,550 --> 00:37:24,520 >> Così una piccola spiegazione di ciò che è appena successo 665 00:37:24,520 --> 00:37:30,670 è il come sintassi è saying-- ben prima, diamo un'occhiata a ciò che viene stampato fuori. 666 00:37:30,670 --> 00:37:32,260 Quindi apriamo il nostro IDE. 667 00:37:32,260 --> 00:37:33,110 Siamo andate qui. 668 00:37:33,110 --> 00:37:35,845 Noi diciamo, Ciao Jason. 669 00:37:35,845 --> 00:37:41,390 E lo ha fatto 123, che erano i contenuti dell'array che abbiamo creato sulla parte superiore. 670 00:37:41,390 --> 00:37:45,500 >> Così tuffarsi in questo ciclo foreach, abbiamo un array di variabile chiamata 671 00:37:45,500 --> 00:37:47,470 che è una serie di tre numeri. 672 00:37:47,470 --> 00:37:52,120 E poi stiamo facendo foreach array come num, eco num. 673 00:37:52,120 --> 00:37:54,990 E questo è più intuitivo che una per lop. 674 00:37:54,990 --> 00:38:02,380 Stiamo dicendo, di trattare ogni le cose nella matrice come num, 675 00:38:02,380 --> 00:38:05,180 Voglio che tu mi dia num. 676 00:38:05,180 --> 00:38:06,640 E questo è esattamente quello che sta facendo. 677 00:38:06,640 --> 00:38:12,000 >> PHP sta calcolando che quando si dice matrice foreach, 678 00:38:12,000 --> 00:38:16,080 e hai a che fare con una serie, cosa si sta andando a voler iterare 679 00:38:16,080 --> 00:38:19,950 è i personaggi di tale matrice, è il interi di tale matrice, 680 00:38:19,950 --> 00:38:21,920 è gli elementi di tale matrice. 681 00:38:21,920 --> 00:38:26,110 Ed è che ti permette di memorizzare quelle variabili come num, 682 00:38:26,110 --> 00:38:29,360 e num poi appena uscita subito piuttosto che dire, 683 00:38:29,360 --> 00:38:34,090 Ho una variabile denominata i, e allora voglio uscita strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> E così che ci permette di fare cose interessanti. 685 00:38:39,130 --> 00:38:43,330 Come in fondo non abbiamo per creare queste variabili come i e fare tutto 686 00:38:43,330 --> 00:38:45,090 questa roba l'incremento alla fine. 687 00:38:45,090 --> 00:38:48,290 PHP si prende cura di tutto questo per voi. 688 00:38:48,290 --> 00:38:54,470 >> Così ora parliamo di come foreach si applica al nostro dizionario _GET. 689 00:38:54,470 --> 00:38:57,170 Quindi dovremo commentare questo fuori in fretta. 690 00:38:57,170 --> 00:39:02,030 Così abbiamo la nostra gamma _GET. 691 00:39:02,030 --> 00:39:04,361 Abbiamo questa variabile. 692 00:39:04,361 --> 00:39:05,610 Ed ha alcune cose in esso. 693 00:39:05,610 --> 00:39:10,275 >> In questo momento, abbiamo solo una variabile essere passato ad esso, che è il nome. 694 00:39:10,275 --> 00:39:13,420 Ma se premere Invio, ora possiamo avere due variabili. 695 00:39:13,420 --> 00:39:17,910 Possiamo avere nome e l'età, per esempio, se vogliamo ottenere l'età e anche 696 00:39:17,910 --> 00:39:20,960 il nome di una persona, strano a dirsi. 697 00:39:20,960 --> 00:39:25,690 >> Così ora _GET sta per essere una dizionario con due elementi, 698 00:39:25,690 --> 00:39:27,980 con due coppie di valori chiave. 699 00:39:27,980 --> 00:39:33,490 E la prima key-- ho intenzione di scrivere questo uno sul tabellone troppo. 700 00:39:33,490 --> 00:39:37,136 Abbiamo il nostro dizionario è _GET. 701 00:39:37,136 --> 00:39:39,520 Ci dispiace, è è un po 'difficile da vedere. 702 00:39:39,520 --> 00:39:46,690 Ma all'interno del nostro dizionario abbiamo nome, che sta per essere qualcosa 703 00:39:46,690 --> 00:39:47,680 che ci è dato. 704 00:39:47,680 --> 00:39:53,040 E avremo età, il che è anche sta per essere qualcosa che ci è dato. 705 00:39:53,040 --> 00:39:56,020 E questo è l'interezza del nostro dizionario. 706 00:39:56,020 --> 00:39:57,730 >> Quindi ha due elementi in esso. 707 00:39:57,730 --> 00:40:01,310 E così perché foreach loop sono intelligenti, abbiamo 708 00:40:01,310 --> 00:40:04,900 potrebbe pensare, e correttamente potrebbe pensare che foreach 709 00:40:04,900 --> 00:40:08,080 può scorrere questo dizionario, stampando 710 00:40:08,080 --> 00:40:10,850 i valori indicati per nome e l'età. 711 00:40:10,850 --> 00:40:14,510 >> Quindi cerchiamo di infatti fare proprio questo. 712 00:40:14,510 --> 00:40:17,520 Costruiamo un ciclo foreach. 713 00:40:17,520 --> 00:40:23,351 E abbiamo intenzione di fare per _GET come. 714 00:40:23,351 --> 00:40:24,850 E stiamo andando a fare quanto segue. 715 00:40:24,850 --> 00:40:34,186 Così vediamo che cosa succede se si digita solo la parola, e poi dire la parola eco. 716 00:40:34,186 --> 00:40:40,540 Stiamo anche andando a echo una nuova linea solo per rendere un po 'più chiaro, 717 00:40:40,540 --> 00:40:41,260 cosa sta succedendo. 718 00:40:41,260 --> 00:40:42,890 >> Quindi cerchiamo di vedere. 719 00:40:42,890 --> 00:40:44,390 Non è mi dà errori. 720 00:40:44,390 --> 00:40:46,810 E noi chiudiamo questo. 721 00:40:46,810 --> 00:40:51,020 Sul nostro sito, si sta andando a fare molti che nel corso di pset7. 722 00:40:51,020 --> 00:40:53,890 Quindi diciamo che il mio nome è Sam. 723 00:40:53,890 --> 00:40:58,560 La mia età è di 45. 724 00:40:58,560 --> 00:41:01,060 Non è. 725 00:41:01,060 --> 00:41:05,640 Ma esso stampa, come previsto, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> E così si noterà che cosa ciclo foreach did-- qui, 727 00:41:08,930 --> 00:41:12,360 torniamo a quel modo che sia sulla board-- otteniamo _GET come parola. 728 00:41:12,360 --> 00:41:15,130 E c'erano quattro cose in _GET. 729 00:41:15,130 --> 00:41:17,410 Ma stampato solo due cose. 730 00:41:17,410 --> 00:41:21,290 foreach, essendo la sua auto intelligenza, scontato che quello che volevamo 731 00:41:21,290 --> 00:41:24,100 era i valori, non le chiavi. 732 00:41:24,100 --> 00:41:27,800 >> Ma c'è un modo che potremmo stampare le chiavi e, se volessimo. 733 00:41:27,800 --> 00:41:30,810 Se volessimo sapere anche cosa queste variabili sono stati chiamati, 734 00:41:30,810 --> 00:41:33,540 c'è un modo che noi possono accedere a questo. 735 00:41:33,540 --> 00:41:36,840 E il modo per genere di farlo, così possiamo dire, lascia davvero 736 00:41:36,840 --> 00:41:39,485 dividere in coppie di valori chiave. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Quindi vediamo cosa succede adesso. 739 00:41:47,580 --> 00:41:50,550 >> Così abbiamo chiave. 740 00:41:50,550 --> 00:41:52,290 Abbiamo valore. 741 00:41:52,290 --> 00:41:56,650 Abbiamo un altro nuovo Linea per migliorare la leggibilità. 742 00:41:56,650 --> 00:42:00,540 E vediamo cosa succede quando lo facciamo ora. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Non so quanti anni Jason è. 745 00:42:06,720 --> 00:42:09,180 Jason 15. 746 00:42:09,180 --> 00:42:11,650 Così abbiamo nome Jason, 15 anni. 747 00:42:11,650 --> 00:42:15,830 Così siamo stati in grado di accedere alla chiave e coppie di valori di questo dizionario 748 00:42:15,830 --> 00:42:18,590 semplicemente dicendo punti chiave per il valore. 749 00:42:18,590 --> 00:42:23,350 E questo è un sintattica foreach po 'di zucchero, che permette 750 00:42:23,350 --> 00:42:25,960 di accedere le cose nel dizionario. 751 00:42:25,960 --> 00:42:31,190 >> Quindi speriamo che questo tipo di risalto la potenza del ciclo foreach. 752 00:42:31,190 --> 00:42:35,690 Si può tranquillamente tiro tutto ciò che iterabile sembra, 753 00:42:35,690 --> 00:42:38,922 come tutto ciò che ha di più elementi come un array, 754 00:42:38,922 --> 00:42:41,880 come un dictionary-- quelli sono due cose principali lavorerete con 755 00:42:41,880 --> 00:42:45,630 sia nella vita che nel pset 7. 756 00:42:45,630 --> 00:42:49,350 Così si può buttare quella roba esso, e si capirà 757 00:42:49,350 --> 00:42:51,030 cosa si vuole fare con esso. 758 00:42:51,030 --> 00:42:54,250 Si dirà, OK, ho intenzione di ottenere queste cose ai dati che 759 00:42:54,250 --> 00:42:55,680 è stato passato a me. 760 00:42:55,680 --> 00:43:02,470 E questo è qualcosa che si sta intenzione di utilizzare un sacco di in pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Io vado a scorrimento rapido giù solo per vedere dove sono a. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Le persone hanno domande a questo punto? 764 00:43:13,070 --> 00:43:13,778 Domande a tutti? 765 00:43:13,778 --> 00:43:14,400 Sì? 766 00:43:14,400 --> 00:43:18,320 >> PUBBLICO: Quindi, con la chiave e il valore, si potrebbe chiamarlo qualcos'altro 767 00:43:18,320 --> 00:43:20,507 e sarebbe ancora lavorare? 768 00:43:20,507 --> 00:43:21,090 SPEAKER: Oops. 769 00:43:21,090 --> 00:43:22,820 Wow, ho completamente cancellato tutta la linea. 770 00:43:22,820 --> 00:43:23,380 Ottimo lavoro. 771 00:43:23,380 --> 00:43:26,502 Quindi a, a. 772 00:43:26,502 --> 00:43:30,109 Chiave e il valore è solo una convenzione. 773 00:43:30,109 --> 00:43:30,650 E 'utile. 774 00:43:30,650 --> 00:43:34,010 Si potrebbe ottenere qualche disegno punti, forse alcuni punti di stile 775 00:43:34,010 --> 00:43:36,970 per farlo, perché trasmette davvero l'intenzione. 776 00:43:36,970 --> 00:43:39,650 Ma noi diciamo una e Yarp. 777 00:43:39,650 --> 00:43:42,476 >> PUBBLICO: Non è necessario cambiare nulla nel file HTML 778 00:43:42,476 --> 00:43:43,607 per riflettere questo? 779 00:43:43,607 --> 00:43:44,440 SPEAKER: Niente affatto. 780 00:43:44,440 --> 00:43:47,260 PUBBLICO: E sa solo che a causa della maggiore uguale than-- 781 00:43:47,260 --> 00:43:47,801 SPEAKER: Sì. 782 00:43:47,801 --> 00:43:49,489 PUBBLICO: Indicatore --that che that's-- 783 00:43:49,489 --> 00:43:50,030 SPEAKER: Sì. 784 00:43:50,030 --> 00:43:52,260 Questa è una sintassi foreach, ma sì. 785 00:43:52,260 --> 00:43:53,720 >> PUBBLICO: Non ci sono tipi. 786 00:43:53,720 --> 00:43:57,230 Così che cosa se si voleva età per essere solo un numero? 787 00:43:57,230 --> 00:43:59,510 C'è un modo per farlo? 788 00:43:59,510 --> 00:44:04,550 >> SPEAKER: Ci sono modi per controllare se variabili siano conformi a determinati tipi. 789 00:44:04,550 --> 00:44:08,482 Così PHP chiede un po 'di più da voi, perché non ci sono tipi in. 790 00:44:08,482 --> 00:44:09,440 Alcuni modi che chiede meno. 791 00:44:09,440 --> 00:44:11,070 In un certo senso si chiede di più. 792 00:44:11,070 --> 00:44:13,320 Perché se è sufficiente qualcosa in una variabile, 793 00:44:13,320 --> 00:44:14,960 non avete idea di che tipo è. 794 00:44:14,960 --> 00:44:19,310 Ma se siete intelligenti sulle variabili che si assegnano i tipi di e assicurati 795 00:44:19,310 --> 00:44:22,750 che funzioni solo return-- vogliono funzioni al solo ritorno 796 00:44:22,750 --> 00:44:26,210 un tipo di valore in modo che si può sostanzialmente 797 00:44:26,210 --> 00:44:31,090 si aspettano che la variabile si ottiene indietro da una funzione sarà del tipo 798 00:44:31,090 --> 00:44:32,780 che si pensa che sarà, in fondo. 799 00:44:32,780 --> 00:44:36,550 >> Ma ci sono alcuni metodi con la quale è possibile controllare. 800 00:44:36,550 --> 00:44:39,801 Non li ricordo la parte superiore della mia testa. 801 00:44:39,801 --> 00:44:43,300 Sto aspettando che diventi blu. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Esistono metodi costruito in PHP che può 805 00:44:52,000 --> 00:44:54,440 verificare il tipo di variabili per voi. 806 00:44:54,440 --> 00:44:58,250 Ma se si assegnano le variabili elegantemente, non si dovrebbe 807 00:44:58,250 --> 00:45:01,330 hanno a che fare che troppo in pset 7. 808 00:45:01,330 --> 00:45:02,780 Ma esistono tali metodi. 809 00:45:02,780 --> 00:45:06,704 E questo è qualcosa che è nella lingua stessa. 810 00:45:06,704 --> 00:45:08,370 E non mi ricordo la sintassi precisa. 811 00:45:08,370 --> 00:45:09,930 Potremmo anche guardare in su. 812 00:45:09,930 --> 00:45:11,974 Ma il tempo è essenziale. 813 00:45:11,974 --> 00:45:13,890 avere Qualcun altro avete altre domande? 814 00:45:13,890 --> 00:45:14,660 Sì. 815 00:45:14,660 --> 00:45:15,951 >> PUBBLICO: Ho solo un altro. 816 00:45:15,951 --> 00:45:19,050 Così lei ha citato il metodo GET, ma lei non ha citato il metodo POST. 817 00:45:19,050 --> 00:45:20,500 Stiamo tornando a questo? 818 00:45:20,500 --> 00:45:21,540 >> SPEAKER: Sì, ci sarà essere tornare a quello. 819 00:45:21,540 --> 00:45:24,840 Questo è esattamente quello che stavo cercando il mio telefono, che ora si addormentò, 820 00:45:24,840 --> 00:45:26,960 ma lo troverò. 821 00:45:26,960 --> 00:45:30,680 Basta fare in modo ci ha colpito tutte le note PHP. 822 00:45:30,680 --> 00:45:35,640 Sì, non c'è nessuna versione di debug. 823 00:45:35,640 --> 00:45:41,940 Sì, abbiamo un paio di cose che che vogliamo fare ora a questo punto. 824 00:45:41,940 --> 00:45:45,980 >> Quindi parlando di POST, che lei ha citato, 825 00:45:45,980 --> 00:45:49,630 l'unica differenza tra GET e POST è 826 00:45:49,630 --> 00:45:53,150 che ricordo quando abbiamo guardato a questo URL e abbiamo visto, oh, 827 00:45:53,150 --> 00:45:58,270 nome equivale ad una e l'età è pari Yarp sono proprio nell'URL lì per noi. 828 00:45:58,270 --> 00:46:03,300 POST è un po 'più segreta con il passaggio di informazioni. 829 00:46:03,300 --> 00:46:08,090 >> Quindi, se non si desidera che un utente di conoscere, per esempio, 830 00:46:08,090 --> 00:46:11,160 non ha voluto il nome utente e password della persona 831 00:46:11,160 --> 00:46:15,080 attualmente collegato da visualizzare in l'URL, che è una cosa ragionevole 832 00:46:15,080 --> 00:46:17,770 di non volere nell'URL, perché qualcuno può vederlo. 833 00:46:17,770 --> 00:46:21,520 Se si collegano a qualcuno di una pagina, non vogliono il loro URL intonacate lì, 834 00:46:21,520 --> 00:46:27,850 perché ciò permetterà alle persone di login solo con l'incollatura di un URL invece 835 00:46:27,850 --> 00:46:29,670 effettivamente la compilazione di un modulo. 836 00:46:29,670 --> 00:46:31,710 POST è un po 'più riservato. 837 00:46:31,710 --> 00:46:34,150 >> E le uniche cose che dovremo cambiare 838 00:46:34,150 --> 00:46:38,550 sono questo metodo, cambiamento da arrivare a postare messaggi. 839 00:46:38,550 --> 00:46:42,367 E poi all'interno del HTTP, invece di accedere alla _GET matrice, 840 00:46:42,367 --> 00:46:43,950 stiamo andando per accedere al _POST matrice. 841 00:46:43,950 --> 00:46:48,600 >> E noi notiamo che, se apriamo questo ritorno di nuovo, 842 00:46:48,600 --> 00:46:51,910 Jason declina lentamente di età. 843 00:46:51,910 --> 00:46:53,230 nome Jason, 14 anni. 844 00:46:53,230 --> 00:46:54,280 La stessa roba si apre. 845 00:46:54,280 --> 00:46:57,190 Ma andiamo all'URL e quelle variabili non ci sono. 846 00:46:57,190 --> 00:47:00,540 >> E il modo in cui POST passes-- in modo da ricordare 847 00:47:00,540 --> 00:47:02,750 come guardare il sorgente di una pagina. 848 00:47:02,750 --> 00:47:04,570 Andiamo alla rete. 849 00:47:04,570 --> 00:47:06,920 Ci rinfreschiamo. 850 00:47:06,920 --> 00:47:10,690 E questa è un'altra cosa che POST vi darà avvertimenti circa. 851 00:47:10,690 --> 00:47:15,050 Potreste aver visto una scatola, un testo box come questo nel tuo browser. 852 00:47:15,050 --> 00:47:18,170 Sei sicuro di volere a inviare di nuovo un modulo? 853 00:47:18,170 --> 00:47:21,170 POST è quello che 's l'invio di queste forme. 854 00:47:21,170 --> 00:47:24,680 >> Perché in fondo se hai inviato il tuo carta di credito a qualcuno, 855 00:47:24,680 --> 00:47:26,350 che non sta andando a presentarsi nell'URL. 856 00:47:26,350 --> 00:47:28,180 Che sta per essere una richiesta POST. 857 00:47:28,180 --> 00:47:32,905 Così, quando si aggiorna la pagina, è inviare nuovamente la richiesta posta. 858 00:47:32,905 --> 00:47:35,530 Così ora noi vogliamo inviare il formare di nuovo perché non sta andando 859 00:47:35,530 --> 00:47:37,340 per creare eventuali acquisti duplicati. 860 00:47:37,340 --> 00:47:41,160 >> E noi notiamo che qui, il metodo che stiamo usando è POST. 861 00:47:41,160 --> 00:47:43,065 Ed ha effettivamente il trasferimento byte. 862 00:47:43,065 --> 00:47:45,460 Si trasferito 401 di loro. 863 00:47:45,460 --> 00:47:47,190 Program piuttosto piccola. 864 00:47:47,190 --> 00:47:51,600 Ma non c'è nulla che possiamo vedere i valori che vengono passati. 865 00:47:51,600 --> 00:47:59,540 Le pagine web si può vedere, ma non siamo come gli utenti in grado di vedere, 866 00:47:59,540 --> 00:48:01,650 a meno che non sei un hacker. 867 00:48:01,650 --> 00:48:05,340 Se sei un buon hacker, si può guardare. 868 00:48:05,340 --> 00:48:09,360 >> Se si conosce la base formato del HTML, 869 00:48:09,360 --> 00:48:11,790 i valori farà si sono manifestate nelle pagine. 870 00:48:11,790 --> 00:48:13,160 Sarete in grado di vedere. 871 00:48:13,160 --> 00:48:16,720 I valori saranno lì, sono solo un po 'meno evidente per voi 872 00:48:16,720 --> 00:48:19,522 di accesso, fondamentalmente. 873 00:48:19,522 --> 00:48:23,620 >> Dobbiamo più domande su GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- quello che stiamo andando a fare dopo è in realtà guardare parte del codice 875 00:48:26,800 --> 00:48:30,837 che si sta dando in pset 7, parla di come si utilizza alcuni di questi concetti, 876 00:48:30,837 --> 00:48:32,670 e parlare del cose che si sta andando 877 00:48:32,670 --> 00:48:35,090 di avere a che fare un po 'di pset 7. 878 00:48:35,090 --> 00:48:36,760 Altre domande prima? 879 00:48:36,760 --> 00:48:38,047 Altre domande voi ragazzi avete? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Grande. 882 00:48:41,840 --> 00:48:45,370 >> Va bene, diamo un'occhiata un po 'alla pset 7, 883 00:48:45,370 --> 00:48:49,530 senza dubbio quello che sei tutto più entusiasta. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Voglio dire, questo è qualcosa che David passa attraverso un po '. 886 00:48:54,750 --> 00:49:00,890 Ma avremo tre directory al superiore, così come un file di configurazione. 887 00:49:00,890 --> 00:49:04,650 Questo è per i database, che ce la faremo parlare in circa cinque minuti. 888 00:49:04,650 --> 00:49:07,220 Gli include, non è necessario a guardare in questa directory 889 00:49:07,220 --> 00:49:12,480 se non si vuole, ma è bello che ci sono tutti i tipi di aiutanti. 890 00:49:12,480 --> 00:49:14,210 Helpers è come funzioni utili. 891 00:49:14,210 --> 00:49:18,120 E poi abbiamo config, che stabilisce alcune cose su. 892 00:49:18,120 --> 00:49:24,590 >> Ci sono alcune funzioni che ha CS50 scritto che sono in aiuto e di configurazione. 893 00:49:24,590 --> 00:49:27,250 E alcuni di PHP che uscite già nei file 894 00:49:27,250 --> 00:49:30,880 farà un sacco di più specie lavoro di gambe di ottusi per voi. 895 00:49:30,880 --> 00:49:35,250 Come se andiamo in pubblico login.php, che è ciò che 896 00:49:35,250 --> 00:49:38,350 si presenta a destra quando si va in pset 7. 897 00:49:38,350 --> 00:49:40,580 Vedremo che non c'è questo richiede dichiarazione. 898 00:49:40,580 --> 00:49:43,420 E questo un po 'come un affilato includono, hashtag 899 00:49:43,420 --> 00:49:46,850 comprendere se siete di una generazione più recente. 900 00:49:46,850 --> 00:49:49,740 Ma questo in fondo dice che ho bisogno di accesso 901 00:49:49,740 --> 00:49:52,260 a tutte le funzioni in config.php. 902 00:49:52,260 --> 00:49:55,290 E si potrebbe avere un bisogno di per ogni sorta di altre cose. 903 00:49:55,290 --> 00:49:59,670 >> config richiede in realtà aiutanti. 904 00:49:59,670 --> 00:50:02,490 Così ogni volta che richiedete config, sei anche 905 00:50:02,490 --> 00:50:05,660 compreso o che richiedono aiutanti pure. 906 00:50:05,660 --> 00:50:09,590 In modo che ti dà accesso a tutte le funzioni interessanti che andremo ad utilizzare, 907 00:50:09,590 --> 00:50:10,420 cose come il rendering. 908 00:50:10,420 --> 00:50:13,490 In realtà sto andando a facilitare questo in giù un po '. 909 00:50:13,490 --> 00:50:16,280 Così la funzione allora siamo andando a piedi attraverso 910 00:50:16,280 --> 00:50:22,380 appena prima di passare a SQL un po ' bit è la funzione login.php, appena 911 00:50:22,380 --> 00:50:26,586 perché utilizza alcuni degli argomenti che abbiamo appena parlato in PHP. 912 00:50:26,586 --> 00:50:30,840 >> Si vede la prima cosa è che se $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Questa è un'altra variabile globale che si sta andando a che fare con. 914 00:50:34,500 --> 00:50:38,460 E 'come _CET e _POST, ma cosa server contiene è questo può farvi 915 00:50:38,460 --> 00:50:42,730 sapere se il metodo di richiesta era un GET o POST. 916 00:50:42,730 --> 00:50:47,250 Come in precedenza quello che stavamo facendo è solo nel nostro codice che abbiamo scritto, 917 00:50:47,250 --> 00:50:51,880 eravamo appena cambiando di essere GET e POST seconda di ciò che il HTML ha. 918 00:50:51,880 --> 00:50:55,120 Ma vi sono pagine che possono essere accedere con entrambi i tipi di richieste. 919 00:50:55,120 --> 00:50:57,410 E si potrebbe desiderare di fare cose diverse a seconda 920 00:50:57,410 --> 00:50:59,740 il tipo di richiesta, proprio come fa login. 921 00:50:59,740 --> 00:51:04,400 >> Modo da poter verificare che la richiesta metodo attraverso chiavi di accesso, 922 00:51:04,400 --> 00:51:08,630 attraverso l'utilizzo di una chiave e ottenere la valore di qualcosa nel dizionario 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Quindi, questo è un altro globale variabili come _CET e _POST. 925 00:51:13,800 --> 00:51:16,990 >> Se è GET, vogliamo rendere il form di login. 926 00:51:16,990 --> 00:51:21,920 Render è una funzione che, in fondo appena mette il appropriata HTML 927 00:51:21,920 --> 00:51:24,500 e lo passa alcuni parametri. 928 00:51:24,500 --> 00:51:28,740 Questo titolo è un parametro che è usato nella visualizzazione, stranamente, 929 00:51:28,740 --> 00:51:32,670 il titolo della pagina in domanda, la cosa qui, 930 00:51:32,670 --> 00:51:34,850 dire o ciao nel nostro esempio precedente. 931 00:51:34,850 --> 00:51:36,100 Ora abbiamo una cosa diversa. 932 00:51:36,100 --> 00:51:38,570 Altrimenti se si tratta di POST, abbiamo fare altre cose. 933 00:51:38,570 --> 00:51:40,790 Stiamo utilizzando tale metodo vuoto. 934 00:51:40,790 --> 00:51:42,750 Non è esiste, è vuota. 935 00:51:42,750 --> 00:51:45,440 E abbiamo visto prima, PHP ha una discreta quantità di costruito 936 00:51:45,440 --> 00:51:52,370 nei metodi che David will-- se ci sono metodi che sono utili a te, 937 00:51:52,370 --> 00:51:55,560 essi saranno avvisati a voi nel cammino attraverso quel David 938 00:51:55,560 --> 00:51:59,770 dà alla panoramica inizio, e anche utile pezzi di Zamyla. 939 00:51:59,770 --> 00:52:01,040 E 'tornata a tutti. 940 00:52:01,040 --> 00:52:03,100 Noi tutti possiamo gioire. 941 00:52:03,100 --> 00:52:06,530 scusa è una funzione di nome appropriato che stampa appena fondamentalmente fuori 942 00:52:06,530 --> 00:52:10,130 alcuni messaggi di errore, perché CS50 è molto gentile. 943 00:52:10,130 --> 00:52:14,770 >> E ora questo, questo è un po 'complicato perché questo 944 00:52:14,770 --> 00:52:16,697 è dove stiamo interrogando il database. 945 00:52:16,697 --> 00:52:18,280 Ora noi non abbiamo parlato di basi di dati. 946 00:52:18,280 --> 00:52:22,220 E stiamo andando a nel prossimo cinque minuti o giù di lì, il massimo. 947 00:52:22,220 --> 00:52:24,980 Ma questa è una funzione che CS50 ha scritto 948 00:52:24,980 --> 00:52:38,050 per ottenere un tavolo fondamentalmente da un database che stiamo lavorando con in pset 7. 949 00:52:38,050 --> 00:52:40,860 Sono davvero male con la mia indicizzazione a zero oggi. 950 00:52:40,860 --> 00:52:42,060 Ma sì, è 7. 951 00:52:42,060 --> 00:52:46,340 >> Così interrogare sta andando a restituire un array, in fondo è il bit chiave. 952 00:52:46,340 --> 00:52:54,130 E perché queste cose non hanno dattilografia, quindi righe è un array di array. 953 00:52:54,130 --> 00:52:59,480 Perché quando stiamo pensando un tavolo, quello che stiamo andando a fare 954 00:52:59,480 --> 00:53:04,830 è, come si è appreso in pset come il gioco del 15, in ogni caso 955 00:53:04,830 --> 00:53:06,990 dove si doveva usare un doppio array, abbiamo praticamente 956 00:53:06,990 --> 00:53:15,210 avere array di altri array fa un tavolo. 957 00:53:15,210 --> 00:53:18,150 E hai righe e colonne. 958 00:53:18,150 --> 00:53:24,450 E poi è possibile accedervi come [0] [1], si ottiene il [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Cose di base del genere. 960 00:53:26,900 --> 00:53:29,380 >> Quindi quello che stiamo facendo in questa funzione, 961 00:53:29,380 --> 00:53:35,070 stiamo chiedendo il database se l'utente che è 962 00:53:35,070 --> 00:53:40,200 cercando di login, che sarà inviato attraverso il metodo POST. 963 00:53:40,200 --> 00:53:43,950 Vedremo stiamo ottenendo il nome utente da _POST. 964 00:53:43,950 --> 00:53:46,900 Faranno hanno inviato, l'utente o, invierà un valore 965 00:53:46,900 --> 00:53:50,750 attraverso una forma attraverso POST perché è username e password roba. 966 00:53:50,750 --> 00:53:54,830 Stiamo controllando il nome utente a vedere, è questo il tavolo? 967 00:53:54,830 --> 00:53:58,070 Perché se un utente accede in, poi il loro nome utente 968 00:53:58,070 --> 00:54:03,320 devono essere memorizzati nella tabella di gli utenti che esistono per questo sito. 969 00:54:03,320 --> 00:54:09,360 Quindi, in pratica, se il utente è nel database, 970 00:54:09,360 --> 00:54:16,400 interrogazione sta per tornare tale riga, che è un array. 971 00:54:16,400 --> 00:54:24,560 >> Ma la parte difficile è che se anche se la doppia matrice è solo una riga, 972 00:54:24,560 --> 00:54:31,900 anche se si tratta di un una riga array-- come hai basically-- 973 00:54:31,900 --> 00:54:36,900 se hai una dimensione di un array che è in possesso di un altro array, 974 00:54:36,900 --> 00:54:38,940 sei davvero fare con una colonna. 975 00:54:38,940 --> 00:54:41,420 Ma è ancora trattato come una doppia matrice. 976 00:54:41,420 --> 00:54:44,560 >> Ed è qui che a volte può ottenere difficile, perché abbiamo le righe qui. 977 00:54:44,560 --> 00:54:46,440 La nostra variabile è righe. 978 00:54:46,440 --> 00:54:48,590 E poi stiamo creando una nuova riga variabile chiamata 979 00:54:48,590 --> 00:54:51,450 e impostarla uguale la prima fila di righe. 980 00:54:51,450 --> 00:54:55,150 E noterete che commento dice che è la prima e unica fila. 981 00:54:55,150 --> 00:54:57,080 >> Quindi questo è il difficile parte dove ora funziona 982 00:54:57,080 --> 00:54:59,660 può tornare molto facilmente array. 983 00:54:59,660 --> 00:55:01,270 Non c'è mallocs. 984 00:55:01,270 --> 00:55:02,280 Non vedrete mallocs. 985 00:55:02,280 --> 00:55:03,940 In modo da non vedere i difetti seg. 986 00:55:03,940 --> 00:55:08,380 Ma le funzioni saranno ancora passando intorno array e dati in gruppi. 987 00:55:08,380 --> 00:55:12,250 E bisogna stare attenti a ciò che esattamente le funzioni torneranno. 988 00:55:12,250 --> 00:55:15,160 E anche se si tratta di un colonna come questo, interrogare 989 00:55:15,160 --> 00:55:17,520 è ancora in corso per restituire un doppio array. 990 00:55:17,520 --> 00:55:21,390 Quindi, per l'accesso che column-- o può pensare di tutto questo come invertita 991 00:55:21,390 --> 00:55:22,870 dal momento che stiamo parlando di righe. 992 00:55:22,870 --> 00:55:26,810 Ma per accedere a tale una riga, non si può certo dire righe. 993 00:55:26,810 --> 00:55:31,540 Anche se è una riga, si deve non rowsrows [0] per eliminare questo tipo di 994 00:55:31,540 --> 00:55:37,360 bit esterna della matrice e avere solo il vostro una riga. 995 00:55:37,360 --> 00:55:38,342 >> Fare alcune altre cose. 996 00:55:38,342 --> 00:55:40,050 C'è una funzione chiamato password_verify 997 00:55:40,050 --> 00:55:42,980 che verifica la la password che è stata pubblicata. 998 00:55:42,980 --> 00:55:48,500 E allora vediamo un altro globale variabile qui, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Fondamentalmente id di sessione è come a tenere traccia 1000 00:55:51,340 --> 00:55:53,990 di se qualcuno è loggato o meno. 1001 00:55:53,990 --> 00:55:58,590 Così adesso con login.php, stiamo login un utente. 1002 00:55:58,590 --> 00:56:01,920 Quindi quello che vogliamo fare è che vogliamo dice l'id di sessione è uguale alla riga 1003 00:56:01,920 --> 00:56:05,890 id, che fa solo senso perché ogni riga avrà un ID diverso 1004 00:56:05,890 --> 00:56:07,239 numero come parte della tabella. 1005 00:56:07,239 --> 00:56:09,280 Arriveremo in SQL in un secondo, quindi se qualcuno di questo 1006 00:56:09,280 --> 00:56:13,500 Sembra un po 'come blah, poi tutto sarà chiarito. 1007 00:56:13,500 --> 00:56:18,450 Ma stiamo andando a impostare l'id pari a la cosa giusta, la registrazione l'utente. 1008 00:56:18,450 --> 00:56:20,530 Apologize se qualcosa va storto. 1009 00:56:20,530 --> 00:56:27,600 E questo è login scopo in la vita come il professor Malan direbbe. 1010 00:56:27,600 --> 00:56:29,130 >> Così che era login.php. 1011 00:56:29,130 --> 00:56:33,750 E un sacco di codice PHP si scrive in pset 7, saranno un po '. 1012 00:56:33,750 --> 00:56:36,470 Non dimenticare di chmod a le autorizzazioni appropriate. 1013 00:56:36,470 --> 00:56:40,180 Ci sarà un po 'di che all'inizio della specifica. 1014 00:56:40,180 --> 00:56:46,382 >> Ma il PHP che sei scrittura sarà 1015 00:56:46,382 --> 00:56:47,840 fare cose che è simile a questo. 1016 00:56:47,840 --> 00:56:49,715 Si sta andando ad essere Accedendo alcune cose che 1017 00:56:49,715 --> 00:56:52,760 sono dato a voi nel variabili globali di PHP che 1018 00:56:52,760 --> 00:56:56,105 hanno a che fare con l'attuale utente connesso, se c'è 1019 00:56:56,105 --> 00:57:00,460 sono state richieste inviate a questo pagina, diverse cose del genere. 1020 00:57:00,460 --> 00:57:05,790 E sarà anche potenzialmente scorrendo le righe di questa cosa. 1021 00:57:05,790 --> 00:57:09,010 >> In una funzione, query diversa non restituire questo doppio array. 1022 00:57:09,010 --> 00:57:11,450 E se ci sono più oltre un righe in esso, 1023 00:57:11,450 --> 00:57:15,080 se ci are-- sì, se ci sono più di un file in esso, 1024 00:57:15,080 --> 00:57:16,870 allora sarà un tavolo. 1025 00:57:16,870 --> 00:57:20,500 E si potrebbe desiderare di iterare attraverso le file di questa matrice utilizzando 1026 00:57:20,500 --> 00:57:22,860 il ciclo foreach che abbiamo descritto. 1027 00:57:22,860 --> 00:57:30,270 >> Quindi, se si fa foreach su un doppio array, quale sarà il word-- qui, 1028 00:57:30,270 --> 00:57:31,909 Io in realtà scrivo. 1029 00:57:31,909 --> 00:57:32,950 Ti scrivo veloce qui. 1030 00:57:32,950 --> 00:57:44,280 >> Se abbiamo un foreach di righe come riga, qual è il tipo di fila? 1031 00:57:44,280 --> 00:57:45,390 Qualcuno sa? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Hai capito? 1034 00:57:54,500 --> 00:57:57,110 Quindi le righe è un doppio array. 1035 00:57:57,110 --> 00:58:02,810 Così che cosa sta andando a dedurre foreach che vogliamo da questa doppia matrice 1036 00:58:02,810 --> 00:58:04,280 se stiamo iterando su di esso? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Possiamo supporre che fondamentalmente che sta per essere sia elementi, 1039 00:58:10,770 --> 00:58:14,970 o righe o colonne, fondamentalmente. 1040 00:58:14,970 --> 00:58:18,740 E così righe e colonne noi può trattare come la stessa cosa. 1041 00:58:18,740 --> 00:58:23,880 >> Fondamentalmente quello che il ciclo foreach sta andando di fare è che sta andando a restituire le righe. 1042 00:58:23,880 --> 00:58:28,500 riga sta per essere di tipo fila, mentre le righe è un doppio array. 1043 00:58:28,500 --> 00:58:32,290 Quindi, se si dà foreach un doppio array, è 1044 00:58:32,290 --> 00:58:35,830 non andare a iterare più di un livello profondo. 1045 00:58:35,830 --> 00:58:44,464 Che è sostanzialmente quella di dire se ci sono otto celle in questo table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, il 8-- ciclo foreach non è 1047 00:58:48,110 --> 00:58:51,880 per passare attraverso ciascuna di queste cellule. 1048 00:58:51,880 --> 00:58:56,390 Quello che il ciclo foreach farà era che passerà attraverso questa riga, 1049 00:58:56,390 --> 00:58:57,870 dare a tutta questa fila. 1050 00:58:57,870 --> 00:58:59,410 E poi andrà attraverso quella riga. 1051 00:58:59,410 --> 00:59:01,850 >> Così itera solo livello. 1052 00:59:01,850 --> 00:59:05,310 Se si aggiunge un nidificato ciclo foreach, allora 1053 00:59:05,310 --> 00:59:16,280 può trattare ogni riga restituita da righe, si fanno fila foreach come elemento, 1054 00:59:16,280 --> 00:59:17,640 diciamo. 1055 00:59:17,640 --> 00:59:22,750 E allora si potrebbe riecheggiare l'elemento. 1056 00:59:22,750 --> 00:59:24,930 Quindi questo è un breve piccolo ripasso su come 1057 00:59:24,930 --> 00:59:30,220 si potrebbero utilizzare foreach loop nel contesto di query. 1058 00:59:30,220 --> 00:59:32,840 >> Ci sono domande su PHP? 1059 00:59:32,840 --> 00:59:36,520 Qualsiasi cosa, prima di passare a parlare di SQL 1060 00:59:36,520 --> 00:59:37,820 e il divertimento di database? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Sentirsi bene? 1063 00:59:42,110 --> 00:59:42,750 Sentirsi bene. 1064 00:59:42,750 --> 00:59:43,470 Tutto ok. 1065 00:59:43,470 --> 00:59:49,130 >> Passiamo di nuovo al PowerPoint, che probabilmente si dimentica. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Le persone che sono nella mia sezione tipicamente sapranno che sottovoci acronimi 1068 00:59:57,900 --> 01:00:01,220 sono sempre solo le prime parole Penso a quella partita che 1069 01:00:01,220 --> 01:00:02,690 algorithm-- che sigla. 1070 01:00:02,690 --> 01:00:04,090 Non è un algoritmo. 1071 01:00:04,090 --> 01:00:08,050 >> Quindi SQL è un database. 1072 01:00:08,050 --> 01:00:11,060 E 'un linguaggio che funziona con i database. 1073 01:00:11,060 --> 01:00:14,440 E tutti i database sono è tavoli, almeno nel senso 1074 01:00:14,440 --> 01:00:17,220 che SQL li rappresenta. 1075 01:00:17,220 --> 01:00:23,610 >> Un altro modo di pensare dei database è i database sono un insieme di chiavi e valori 1076 01:00:23,610 --> 01:00:24,110 fondamentalmente. 1077 01:00:24,110 --> 01:00:29,530 È possibile pensare a un database come un dizionario e anche come un tavolo. 1078 01:00:29,530 --> 01:00:34,300 Fondamentalmente si tratta di un modo per associare dati diversi con altri dati, 1079 01:00:34,300 --> 01:00:36,270 spesso attraverso righe e colonne. 1080 01:00:36,270 --> 01:00:38,470 E questo è il modo questo è SQL funziona meglio. 1081 01:00:38,470 --> 01:00:40,880 >> Quindi questo è un esempio di una tabella. 1082 01:00:40,880 --> 01:00:44,610 Ho alcuni esempi di persone nel mio settore, che 1083 01:00:44,610 --> 01:00:45,970 Non ho avuto il tempo di cambiare. 1084 01:00:45,970 --> 01:00:52,020 Ma abbiamo cose come ID, nome, superpotenza, e città natale. 1085 01:00:52,020 --> 01:00:54,100 Non so dove chiunque è da nella mia sezione, 1086 01:00:54,100 --> 01:00:56,266 quindi sto solo andando ad assumere tutti sono da New York 1087 01:00:56,266 --> 01:00:59,370 Città perché ho un alto statistico probabilità di essere corretto. 1088 01:00:59,370 --> 01:01:04,200 >> SQL avrà automaticamente cura della colonna ID per voi. 1089 01:01:04,200 --> 01:01:07,560 Se si inserisce una nuova riga in un database SQL, 1090 01:01:07,560 --> 01:01:09,700 si incrementa che Numero ID e solo 1091 01:01:09,700 --> 01:01:14,890 attaccare praticamente come cinque nomi, superpotenza, città natale, chi 1092 01:01:14,890 --> 01:01:16,430 sull'estremità di detta tabella. 1093 01:01:16,430 --> 01:01:19,160 Così ID è una colonna vi non devono preoccuparsi. 1094 01:01:19,160 --> 01:01:22,770 Ma, come nel caso di login.php, quando 1095 01:01:22,770 --> 01:01:26,610 stavano ottenendo l'ID di sessione da una tabella e usando solo ID, 1096 01:01:26,610 --> 01:01:30,320 ID è un modo per identificare univocamente un elemento di un database. 1097 01:01:30,320 --> 01:01:34,980 >> Quindi, se avessimo due Sams, entrambi che ha insegnato CS50, ed entrambi di chi 1098 01:01:34,980 --> 01:01:39,370 erano da Milwaukee, quelli sarebbero hanno ancora numeri identificativi distinti 1099 01:01:39,370 --> 01:01:43,420 e quindi essere distinta contesto della tabella. 1100 01:01:43,420 --> 01:01:48,700 Quindi questo è ciò che SQL sta trattando con, lavorando con nel back-end. 1101 01:01:48,700 --> 01:01:54,160 >> Ora questi sono i quattro comandi che avrete bisogno di lavorare con SQL. 1102 01:01:54,160 --> 01:01:56,390 E li ho vomitato su una diapositiva. 1103 01:01:56,390 --> 01:01:59,530 Ma stiamo andando a passare attraverso tutti loro individualmente. 1104 01:01:59,530 --> 01:02:03,300 >> Il primo comando è UPDATE, che fa quello che ci si potrebbe aspettare. 1105 01:02:03,300 --> 01:02:07,240 Diciamo che avete alcuni dati in la tabella che è fuori di data. 1106 01:02:07,240 --> 01:02:09,470 Come se si sta tenendo traccia dei nomi delle persone 1107 01:02:09,470 --> 01:02:13,350 e matura, se qualcuno di l'età aumenta, poi 1108 01:02:13,350 --> 01:02:18,590 si sta andando a voler andare in e aggiornare l'età proprio di quella persona. 1109 01:02:18,590 --> 01:02:21,902 Per un esempio che funziona con la nostra prima table-- 1110 01:02:21,902 --> 01:02:24,610 non preoccuparti di scrivere tutto questi comandi allo stesso tempo. 1111 01:02:24,610 --> 01:02:27,640 Ma se hai aggiornamento giù, che sarà buono per questa parte, 1112 01:02:27,640 --> 01:02:29,790 perché stiamo andando a tornare al tavolo. 1113 01:02:29,790 --> 01:02:33,920 >> Quindi, se torniamo al tavolo, diciamo qualcosa che è accaduto 1114 01:02:33,920 --> 01:02:38,480 è stato ci fu un terremoto o una linea di faglia che ha diviso direttamente 1115 01:02:38,480 --> 01:02:39,920 attraverso New York City. 1116 01:02:39,920 --> 01:02:45,130 E volevamo aggiornare tutti che viveva a New York City. 1117 01:02:45,130 --> 01:02:49,670 Avevano tutti a muoversi in Pennsylvania. 1118 01:02:49,670 --> 01:02:51,130 Questa non è una città natale. 1119 01:02:51,130 --> 01:02:53,180 Avevano tutti a trasferirsi a New Haven. 1120 01:02:53,180 --> 01:02:54,030 Ci siamo. 1121 01:02:54,030 --> 01:02:57,630 Così tutti a New York si trasferisce a New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> E così che è qualcosa che è modifica tre righe in questa tabella. 1123 01:03:01,300 --> 01:03:04,716 Ma in SQL, si può fare che in un solo comunicato. 1124 01:03:04,716 --> 01:03:05,715 Così torniamo a UPDATE. 1125 01:03:05,715 --> 01:03:09,670 Lasciatemi Quick Erase di nuovo questa scheda. 1126 01:03:09,670 --> 01:03:14,570 Quando stiamo parlando aggiornamento, ci sono 1127 01:03:14,570 --> 01:03:17,640 alcune parti della sintassi che sono fondamentali. 1128 01:03:17,640 --> 01:03:19,770 Beh, tutto della sintassi è la chiave. 1129 01:03:19,770 --> 01:03:22,210 Ma la roba in verde è facoltativo. 1130 01:03:22,210 --> 01:03:25,680 Il bianco sono necessari, nomi predefiniti come. 1131 01:03:25,680 --> 01:03:30,750 E l'azzurro sono cose che variano a seconda del tavolo. 1132 01:03:30,750 --> 01:03:34,640 Ecco, questo è quello che sta succedendo con lo schema di colore qui, lassù. 1133 01:03:34,640 --> 01:03:40,250 >> Quindi, se vogliamo aggiornare solo le righe delle persone che vivono a New York, 1134 01:03:40,250 --> 01:03:43,490 così che cosa faremmo se dicessimo UPDATE? 1135 01:03:43,490 --> 01:03:46,320 Così tavolo è dove abbiamo messo il nome della nostra tavola. 1136 01:03:46,320 --> 01:03:49,170 Diciamo solo che il nome della nostra tavola è un tavolo. 1137 01:03:49,170 --> 01:03:52,515 Quindi vogliamo aggiornare tavolo uno. 1138 01:03:52,515 --> 01:03:57,470 E noi vogliamo set-- cosa vogliamo impostare? 1139 01:03:57,470 --> 01:04:05,160 Bene, noi vogliamo dire, PHP così column-- tratta righe come identificatori univoci. 1140 01:04:05,160 --> 01:04:07,930 E poi colonne sono i diversi campi 1141 01:04:07,930 --> 01:04:09,940 di quegli elementi del database. 1142 01:04:09,940 --> 01:04:14,210 >> Quindi il primo elemento del database ha un nome di Sam, superpotenza CS50, 1143 01:04:14,210 --> 01:04:16,210 e una città natale di Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Quindi, se detto insieme, diamo un'occhiata a i parametri di nuovo quel set prende. 1145 01:04:20,710 --> 01:04:23,880 Abbiamo colonna è uguale al valore. 1146 01:04:23,880 --> 01:04:27,290 Quindi, vogliamo dire un po ' column-- che ricorda 1147 01:04:27,290 --> 01:04:31,850 è un field-- vogliamo vedere un campo pari a qualcosa di nuovo. 1148 01:04:31,850 --> 01:04:42,340 >> Quindi, se abbiamo appena detto aggiornamento Tabella 1, il nome del set pari Elliot. 1149 01:04:42,340 --> 01:04:46,310 Ottenere alcune persone della nuova sezione su questo. 1150 01:04:46,310 --> 01:04:51,540 Ma se abbiamo appena fatto l'aggiornamento tabella 1 Nome set pari Elliot, quale sarebbe 1151 01:04:51,540 --> 01:04:55,530 l'aspetto tavola come dopo? 1152 01:04:55,530 --> 01:04:56,410 La gente ha qualche idea? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Già. 1155 01:05:00,210 --> 01:05:03,195 >> PUBBLICO: Tutto in quella fila sarebbe diventato Elliot. 1156 01:05:03,195 --> 01:05:04,570 SPEAKER: Tutto in quale riga? 1157 01:05:04,570 --> 01:05:06,067 AUDIENCE: Nella prima riga. 1158 01:05:06,067 --> 01:05:07,150 SPEAKER: Nella prima riga? 1159 01:05:07,150 --> 01:05:09,724 Perché la prima fila? 1160 01:05:09,724 --> 01:05:10,890 Non voglio dire a prendere su di voi. 1161 01:05:10,890 --> 01:05:13,287 >> PUBBLICO: Forse tutto in tutto il tavolo? 1162 01:05:13,287 --> 01:05:15,120 SPEAKER: Tutto in l'intera tabella, sì. 1163 01:05:15,120 --> 01:05:19,520 E questo è esattamente giusto I perchè-- è stato appena aiutare fuori un po ' 1164 01:05:19,520 --> 01:05:22,650 there-- perché abbiamo omesso la clausola facoltativa WHERE. 1165 01:05:22,650 --> 01:05:27,260 Se non si dispone WHERE clausola, che cosa farà questo comando 1166 01:05:27,260 --> 01:05:32,240 è funzionerà con ogni singola riga nella tabella. 1167 01:05:32,240 --> 01:05:35,430 Il nome di tutti sarà diventare Elliott, in fondo, 1168 01:05:35,430 --> 01:05:37,360 che Elliot è molto felice. 1169 01:05:37,360 --> 01:05:40,070 Oppure Yanni, uno dei due. 1170 01:05:40,070 --> 01:05:42,490 Ma il nome di ognuno cambierà. 1171 01:05:42,490 --> 01:05:47,880 >> Così il nostro modo di utilizzare il WHERE clause-- e questo vale per tutti i wheres 1172 01:05:47,880 --> 01:05:51,410 che sono in ciascuno di queste cose diverse. 1173 01:05:51,410 --> 01:05:54,380 Così si noterà che SET ha colonna valore uguale. 1174 01:05:54,380 --> 01:05:55,190 E così fa WHERE. 1175 01:05:55,190 --> 01:06:00,040 Ma questi sono diversi tipi di dichiarazioni. 1176 01:06:00,040 --> 01:06:04,400 Così colonna è uguale al valore nel SET è in assegnazione. 1177 01:06:04,400 --> 01:06:08,320 Come stiamo dicendo che vogliamo per impostare il nome uguale a Elliot. 1178 01:06:08,320 --> 01:06:15,390 Ma nelle clausole WHERE, queste sono affermazioni di uguaglianza. 1179 01:06:15,390 --> 01:06:20,410 Quindi diciamo che abbiamo voluto solo cambiare il nome della persona a Elliot 1180 01:06:20,410 --> 01:06:23,940 se il loro nome era Ryan, diciamo. 1181 01:06:23,940 --> 01:06:24,920 >> Così, quando diciamo 1182 01:06:24,920 --> 01:06:32,700 >> DOVE nome uguale a Ryan, che sarebbe successo unico cambiamento 1183 01:06:32,700 --> 01:06:37,440 l'nome-- solo sarebbe modificare il campo nome in righe 1184 01:06:37,440 --> 01:06:40,770 dove il campo del nome è uguale a Ryan. 1185 01:06:40,770 --> 01:06:44,430 Quindi, se avessimo più persone chiamato Ryan, tutti i loro nomi 1186 01:06:44,430 --> 01:06:45,730 cambierebbe di Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Questo è simile all'esempio di se una linea di faglia divide 1188 01:06:48,169 --> 01:06:50,960 New York City e ognuno ha a trasferirsi a New Haven, il modo in cui siamo in grado 1189 01:06:50,960 --> 01:06:56,570 farlo in una sola affermazione è UPDATE table1 SET città natale = New Haven 1190 01:06:56,570 --> 01:07:00,210 dove città natale è uguale a New York City. 1191 01:07:00,210 --> 01:07:03,410 Questo è il potere di l'istruzione UPDATE. 1192 01:07:03,410 --> 01:07:10,530 Siamo in grado di selezionare qualsiasi numero di righe attraverso affermazioni vere 1193 01:07:10,530 --> 01:07:12,860 sui campi in quelle righe. 1194 01:07:12,860 --> 01:07:19,510 Non possiamo dire insieme UPDATE table1 name = Elliot DOVE riga = 1, 1195 01:07:19,510 --> 01:07:24,820 tranne che possiamo se diciamo ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Quindi stiamo andando a essere lavorando con l'uguaglianza 1198 01:07:29,830 --> 01:07:32,830 di campi, parità di colonne. 1199 01:07:32,830 --> 01:07:38,030 Ma utilizzando il campo ID è un modo per selezionare i singoli file in particolare, 1200 01:07:38,030 --> 01:07:43,210 perché il campo ID è un unico identificatore in un database SQL. 1201 01:07:43,210 --> 01:07:45,860 Così come l'aggiornamento fila una, ID è uguale a 1. 1202 01:07:45,860 --> 01:07:49,560 Aggiornamento seconda fila, appena cambiare quel numero di ID. 1203 01:07:49,560 --> 01:07:51,610 Ma il potere della WHERE è che noi 1204 01:07:51,610 --> 01:07:57,480 può aggiornare le cose in base a quello che il loro valori correnti di certe cose. 1205 01:07:57,480 --> 01:07:58,155 Si Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> PUBBLICO: E se volete a-- ancora una volta, questa è un'altra questione. 1207 01:08:02,678 --> 01:08:07,660 Ma la mia prima domanda era, dove sta succedendo questo? 1208 01:08:07,660 --> 01:08:09,130 Dove sto aggiornando questo? 1209 01:08:09,130 --> 01:08:11,100 Si tratta di un codice PHP? 1210 01:08:11,100 --> 01:08:13,379 >> SPEAKER: Dove si aggiorna, sì. 1211 01:08:13,379 --> 01:08:15,170 Stiamo andando a parlare su dove tutto questo 1212 01:08:15,170 --> 01:08:18,729 succede sorta di una volta che andiamo attraverso tutti i comandi. 1213 01:08:18,729 --> 01:08:21,130 Ma ciò che è necessario sapere per ora è fondamentalmente 1214 01:08:21,130 --> 01:08:26,279 che il database SQL esiste come qualcosa 1215 01:08:26,279 --> 01:08:30,090 per essere accessibile dalla query funzione, che definisce CS50. 1216 01:08:30,090 --> 01:08:33,800 Quindi, se si utilizza la funzione di query, è possibile accedere a questa tabella. 1217 01:08:33,800 --> 01:08:39,529 >> Quindi vi sarà l'invio questi comandi al vostro tavolo in file PHP 1218 01:08:39,529 --> 01:08:41,420 attraverso la funzione di query. 1219 01:08:41,420 --> 01:08:45,410 Si può anche giocare con il tuo tavolo direttamente. 1220 01:08:45,410 --> 01:08:49,050 E questo è il modo migliore per provare questi tipi di comandi. 1221 01:08:49,050 --> 01:08:52,720 E andremo attraverso esattamente come per fare questo in appena un po '. 1222 01:08:52,720 --> 01:08:54,910 >> Ecco, questo è il comando UPDATE. 1223 01:08:54,910 --> 01:08:57,939 Il resto dei comandi stanno per essere una sorta di simile, 1224 01:08:57,939 --> 01:08:59,069 lavorando su cose simili. 1225 01:08:59,069 --> 01:09:02,740 Il INSERT INTO è probabilmente i più diversi da UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Ho intenzione di lasciare che lassù per solo un po 'e lavoro qui. 1227 01:09:06,170 --> 01:09:10,215 Così INSERT INTO, vedrete tale tabella è ancora lo stesso. 1228 01:09:10,215 --> 01:09:17,010 Vuoi INSERT INTO. 1229 01:09:17,010 --> 01:09:20,286 La capitalizzazione, SQL è case insensitive. 1230 01:09:20,286 --> 01:09:22,160 Quindi non c'è bisogno di capitalizzare queste cose. 1231 01:09:22,160 --> 01:09:27,960 Per convenzione, le parole in bianco sono capitalizzati. 1232 01:09:27,960 --> 01:09:31,590 Ma ho anche loro colore codificato. 1233 01:09:31,590 --> 01:09:34,390 L'unica ragione che capitalizzare quelli in cui li sta digitando 1234 01:09:34,390 --> 01:09:36,609 è solo per sottolineare che coloro che sono costanti. 1235 01:09:36,609 --> 01:09:39,189 E così è possibile guardare la capitalizzazione o il fatto 1236 01:09:39,189 --> 01:09:40,740 che li ho colorato in modo diverso. 1237 01:09:40,740 --> 01:09:44,910 >> Così abbiamo INSERT INTO, facciamolo di nuovo table1. 1238 01:09:44,910 --> 01:09:45,930 Questo è tutto su una riga. 1239 01:09:45,930 --> 01:09:48,609 Sto solo lo separa da le diverse affermazioni. 1240 01:09:48,609 --> 01:09:52,399 Quindi non preoccuparti per il fatto che table1 ha fatto sulla seconda linea. 1241 01:09:52,399 --> 01:09:56,130 >> Quindi vogliamo inserire IN TABLE1 alcuni valori. 1242 01:09:56,130 --> 01:09:58,922 E noterete opzionale bit, che io riesco anche a un secondo. 1243 01:09:58,922 --> 01:09:59,755 Così abbiamo VALORI. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Quindi diciamo che vogliamo aggiungere Andi al nostro tavolo, perché ci manca Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi è malato. 1247 01:10:09,390 --> 01:10:12,490 Quindi aggiungiamo Andi al nostro tavolo. 1248 01:10:12,490 --> 01:10:15,150 Ricordate che il numero ID viene aggiornato automaticamente. 1249 01:10:15,150 --> 01:10:17,320 Così gli unici campi che bisogno di preoccuparsi 1250 01:10:17,320 --> 01:10:20,230 sono nome, superpotenza, e città natale. 1251 01:10:20,230 --> 01:10:23,660 >> E così il modo in cui lo facciamo, guardando il nostro sintassi, è ABBIAMO 1252 01:10:23,660 --> 01:10:28,780 appena ricevuto una parentesi, con la virgola valori separati, ciascuno dei quali 1253 01:10:28,780 --> 01:10:29,890 è un valore. 1254 01:10:29,890 --> 01:10:35,530 Quindi, se volessimo inserire Andi nella nostra tavolo, tutto quello che dobbiamo fare è giusto Andi. 1255 01:10:35,530 --> 01:10:38,630 Cosa c'è di superpotenza di Andi, persone nella sezione di Andi? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 A lei piace il volo, o come velocità, o qualcosa del genere. 1258 01:10:47,545 --> 01:10:48,920 Che cosa abbiamo già lassù? 1259 01:10:48,920 --> 01:10:53,425 Abbiamo CS50, volo, velocità e forza. 1260 01:10:53,425 --> 01:10:54,850 >> PUBBLICO: Il viaggio nel tempo. 1261 01:10:54,850 --> 01:10:56,180 >> SPEAKER: Il viaggio nel tempo, sorprendente. 1262 01:10:56,180 --> 01:11:04,280 Così abbiamo Andi, tempo viaggio, e la sua città natale. 1263 01:11:04,280 --> 01:11:05,530 Questa è una bella domanda. 1264 01:11:05,530 --> 01:11:09,210 New York City, a meno che qualcuno lo sa. 1265 01:11:09,210 --> 01:11:13,600 Sono tutti da New York è la lezione da asporto a partire da oggi. 1266 01:11:13,600 --> 01:11:17,710 >> Quindi questa affermazione sarebbe inserire, come quinta fila, 1267 01:11:17,710 --> 01:11:21,900 con il tempo di percorrenza superpotenza e una città natale di New York City. 1268 01:11:21,900 --> 01:11:25,660 Ma il campo facoltativo è fondamentalmente un modo 1269 01:11:25,660 --> 01:11:30,090 per specificare esattamente quali colonne si desidera inserire le cose in. 1270 01:11:30,090 --> 01:11:33,710 >> Il modo in cui lo stiamo facendo ora, Andi, viaggi nel tempo, New York City, 1271 01:11:33,710 --> 01:11:38,150 sta nell'ordine esatto della nostra nome table--, superpotenza, città natale. 1272 01:11:38,150 --> 01:11:42,290 E se si voleva fare qualcosa di diverso da quello, 1273 01:11:42,290 --> 01:11:44,970 come dici tu non sai superpotenza di qualcuno, 1274 01:11:44,970 --> 01:11:47,660 come come non sapevo di Andi superpotenza all'inizio. 1275 01:11:47,660 --> 01:11:50,450 Quindi tutto quello che sapevo era lei il nome e la sua città natale. 1276 01:11:50,450 --> 01:11:54,550 Cosa potevo fare è che potevo fare-- io cancellerò questo rapido. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Voglio solo aggiornare le colonne. 1279 01:12:00,090 --> 01:12:04,100 E questo è dove opzionale elenco di colonne entra in gioco. 1280 01:12:04,100 --> 01:12:09,185 Voglio solo aggiornare il nome e città natale. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 E poi dirò VALORI. 1283 01:12:16,480 --> 01:12:24,430 Farò Andi e New York City. 1284 01:12:24,430 --> 01:12:28,980 >> Se avessi omesso l'elenco delle colonne e appena fatto queste due cose, 1285 01:12:28,980 --> 01:12:32,450 dove sarebbe New York sono andati? 1286 01:12:32,450 --> 01:12:35,900 Quale colonna sarebbe New York Città sono stati messi a? 1287 01:12:35,900 --> 01:12:38,950 La gente ha qualche idea? 1288 01:12:38,950 --> 01:12:40,160 Superpotenza, esattamente. 1289 01:12:40,160 --> 01:12:41,890 >> Quindi questo sarà solo andare in ordine. 1290 01:12:41,890 --> 01:12:45,530 E una volta raggiunta la fine del lista, sarà solo smettere di riempire le cose in. 1291 01:12:45,530 --> 01:12:49,080 E i valori che essa ci limiteremo a tutte le colonne sarà solo NULL. 1292 01:12:49,080 --> 01:12:51,840 Quindi perché abbiamo specificato nome e città natale, 1293 01:12:51,840 --> 01:12:56,110 stiamo andando ad avere ID 5, nome Andi, superpotenza NULL. 1294 01:12:56,110 --> 01:12:58,750 Così superpotenza è un valore non inizializzato. 1295 01:12:58,750 --> 01:13:01,340 Non sarà necessariamente ottenere il stessi errori Valgrind se si tenta 1296 01:13:01,340 --> 01:13:01,970 e accedervi. 1297 01:13:01,970 --> 01:13:05,160 Tutto sarà bene azzerato fuori, perché è un valore NULL in SQL. 1298 01:13:05,160 --> 01:13:06,780 Questa è una costante. 1299 01:13:06,780 --> 01:13:08,980 E poi città natale sarà New York City. 1300 01:13:08,980 --> 01:13:11,860 Ecco, questo è il comando INSERT INTO. 1301 01:13:11,860 --> 01:13:13,610 Prima di passare, c'è altri due comandi. 1302 01:13:13,610 --> 01:13:19,060 Le persone hanno domande su UPDATE, su INSERT INTO, su SQL 1303 01:13:19,060 --> 01:13:21,556 generalmente prima di passare sulle nostre punte finali? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 La gente si sente buono, ottimo. 1306 01:13:26,910 --> 01:13:27,410 Lo adoro. 1307 01:13:27,410 --> 01:13:29,480 Quindi parliamo di SELECT. 1308 01:13:29,480 --> 01:13:33,445 Andando fossa UPDATE qui. 1309 01:13:33,445 --> 01:13:35,720 >> E SELEZIONA sarà molto simile. 1310 01:13:35,720 --> 01:13:38,790 L'obiettivo di SELECT, Scopo di SELECT nella vita 1311 01:13:38,790 --> 01:13:45,910 è quello di dare un po 'di colonne che soddisfano determinate condizioni. 1312 01:13:45,910 --> 01:13:48,230 E quando dico soddisfare certe condizioni, 1313 01:13:48,230 --> 01:13:50,800 la tua mente potrebbe subito tornare a quella clausola WHERE 1314 01:13:50,800 --> 01:13:52,090 che è venuto in UPDATE. 1315 01:13:52,090 --> 01:13:54,880 E quella clausola è esattamente lì in SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Se non mettiamo WHERE clausola e diciamo SELECT name, 1317 01:14:06,020 --> 01:14:16,490 hometown-- farro che un po ' nome wrong--, città natale FROM tabella1. 1318 01:14:16,490 --> 01:14:19,690 Se ci limitiamo a dire che, ciò che SELEZIONA sta per darci è la sua 1319 01:14:19,690 --> 01:14:23,730 ci darà un double-- un tavolo, piuttosto. 1320 01:14:23,730 --> 01:14:27,450 Un doppio array se siamo pensare in PHP sensi. 1321 01:14:27,450 --> 01:14:33,239 Ma è solo andare a darci una doppia serie di due nome columns--, 1322 01:14:33,239 --> 01:14:33,780 e città natale. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 E ignorerà ID. 1325 01:14:38,130 --> 01:14:41,310 E ignorerà superpotenza. 1326 01:14:41,310 --> 01:14:44,696 E sarà solo darci ogni sola fila di quel tavolo. 1327 01:14:44,696 --> 01:14:46,570 Quindi, se abbiamo appena inserito Andi, avremo Andi. 1328 01:14:46,570 --> 01:14:48,605 E avremo l'originale quattro. 1329 01:14:48,605 --> 01:14:53,720 Se sono stati aggiornati, che sarà si rifletterà, eccetera, eccetera. 1330 01:14:53,720 --> 01:14:56,520 >> Quindi questo è perché noi non utilizzare la clausola WHERE. 1331 01:14:56,520 --> 01:14:59,200 Ma possiamo usarlo esattamente allo Allo stesso modo abbiamo usato in UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Se vogliamo soltanto una tabella dei nomi e super poteri di persone che vivono 1333 01:15:05,310 --> 01:15:13,430 a New York, siamo in grado di eseguire un'istruzione come SELECT name, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Sto solo andando a lasciare che-- DA table1 DOVE città natale = New York City. 1335 01:15:27,190 --> 01:15:33,370 >> Quindi questo sta a dimostrare che è possibile ottenere totalmente diverse colonne, 1336 01:15:33,370 --> 01:15:36,920 e poi mettere le colonne che non sei anche tornare nella clausola WHERE. 1337 01:15:36,920 --> 01:15:39,200 Non abbiamo nemmeno vogliamo che il città natale di tutti. 1338 01:15:39,200 --> 01:15:41,920 Ma noi vogliamo il nome e la superpotenza di persone 1339 01:15:41,920 --> 01:15:43,817 la cui città natale è New York City. 1340 01:15:43,817 --> 01:15:45,650 Ecco, questo è qualcosa che può fare con WHERE 1341 01:15:45,650 --> 01:15:49,112 clausola è che possiamo fare con le colonne che non necessariamente vogliamo indietro. 1342 01:15:49,112 --> 01:15:52,320 Nello stesso modo in UPDATE, possiamo trattare con colonne che noi non necessariamente 1343 01:15:52,320 --> 01:15:53,270 desidera aggiornare. 1344 01:15:53,270 --> 01:15:58,890 Possiamo aggiornare la città di tutti chi è nome è Sam, per esempio. 1345 01:15:58,890 --> 01:16:02,080 Possiamo aggiornare la città di tutti il ​​cui ID è il numero 2. 1346 01:16:02,080 --> 01:16:04,960 Quindi, solo aggiornare il città della seconda fila 1347 01:16:04,960 --> 01:16:08,220 dove non abbiamo a che fare con necessaria la domanda comune. 1348 01:16:08,220 --> 01:16:13,264 >> Ed eliminare è, come ci si aspettarsi, DELETE FROM table1. 1349 01:16:13,264 --> 01:16:14,930 E poi abbiamo un altro clausola WHERE. 1350 01:16:14,930 --> 01:16:17,940 Quindi possiamo dire WHERE ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Eliminare la prima fila. 1352 01:16:18,950 --> 01:16:23,240 E DELETE sarà sempre eliminare una riga, o elimina alcuni numero di righe. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM tabella WHERE città natale = New York 1354 01:16:26,990 --> 01:16:28,740 cancellerà tutti a New York City. 1355 01:16:28,740 --> 01:16:30,985 Questo se ci fosse un improvviso tragica peste 1356 01:16:30,985 --> 01:16:33,360 e si voleva solo per rimuovere tutti dalla tabella che 1357 01:16:33,360 --> 01:16:35,760 vissuto in una certa città che è stato colpito dalla peste. 1358 01:16:35,760 --> 01:16:38,050 Riposino in pace. 1359 01:16:38,050 --> 01:16:43,849 >> Questi sono i quattro comandi SQL che sarà necessario utilizzare. 1360 01:16:43,849 --> 01:16:45,390 Si potrebbe anche non essere necessario usarli tutti. 1361 01:16:45,390 --> 01:16:47,690 Ma questi sono i quattro che CS50 vi aspetta 1362 01:16:47,690 --> 01:16:53,630 per stare bene con l'andare in sia quiz 1 e anche pset7 e pset8. 1363 01:16:53,630 --> 01:16:55,820 >> C'è di nuovo solo quel tavolo. 1364 01:16:55,820 --> 01:16:58,930 In questo, superpotere di Roy ha stato aggiornato a raggi laser, che 1365 01:16:58,930 --> 01:17:00,880 è un esempio non ho usato. 1366 01:17:00,880 --> 01:17:05,480 Non so quale Roy preferisce, ma la forza. 1367 01:17:05,480 --> 01:17:07,670 Roy ha una superpotenza di forza. 1368 01:17:07,670 --> 01:17:09,090 Katherine non ce l'ha fatta oggi. 1369 01:17:09,090 --> 01:17:10,260 È un peccato. 1370 01:17:10,260 --> 01:17:11,260 Ma lei ha super velocità. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Bene che era PHP. 1373 01:17:14,670 --> 01:17:19,410 Prima di parlare di MVC, fa Qualcuno ha domande su PHP? 1374 01:17:19,410 --> 01:17:23,864 Ora SQL, PHP o se improvvisamente trovare una domanda su PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Grande. 1377 01:17:28,460 --> 01:17:29,920 Va bene, siamo tutti set poi. 1378 01:17:29,920 --> 01:17:33,660 >> Così parla un po ' su Vista Modello controller, 1379 01:17:33,660 --> 01:17:38,770 torniamo a qualche della roba in pset7. 1380 01:17:38,770 --> 01:17:42,470 Allora, cosa vista del modello Controller è-- Io non sono 1381 01:17:42,470 --> 01:17:45,660 andando a salvare i miei cambiamenti al login perché totalmente massacrato esso. 1382 01:17:45,660 --> 01:17:49,220 Ma in fondo abbiamo due cose separate in corso. 1383 01:17:49,220 --> 01:17:52,390 Abbiamo un pubblico directory che contiene 1384 01:17:52,390 --> 01:17:56,460 il codice che sta per essere giustiziato e le pagine web che saranno visitati. 1385 01:17:56,460 --> 01:17:58,780 E abbiamo anche questa directory viste. 1386 01:17:58,780 --> 01:18:01,780 E viste contiene modelli. 1387 01:18:01,780 --> 01:18:04,390 >> Questo è ciò che la funzione render-- abbiamo visto il rendering 1388 01:18:04,390 --> 01:18:08,240 la funzione in un mucchio di codice PHP che CS50 ha già scritto per te, 1389 01:18:08,240 --> 01:18:10,550 che prende in determinati parametri. 1390 01:18:10,550 --> 01:18:14,510 Cosa che il codice sta facendo sta sta andando in vista, 1391 01:18:14,510 --> 01:18:18,000 che sono insiemi di come il codice HTML prewritten, 1392 01:18:18,000 --> 01:18:20,720 ed è inserendo valori in certi luoghi. 1393 01:18:20,720 --> 01:18:23,990 Questo è il modo quando si andare in CS50 Finanza, 1394 01:18:23,990 --> 01:18:25,760 la stessa intestazione è in ogni pagina. 1395 01:18:25,760 --> 01:18:28,130 Lo stesso piè di pagina è in ogni pagina. 1396 01:18:28,130 --> 01:18:31,880 Questo è perché il modo che rendono le opere è che sarà 1397 01:18:31,880 --> 01:18:36,720 patchare automaticamente in tale intestazione e visualizzatore che potete trovare nelle viste. 1398 01:18:36,720 --> 01:18:41,400 >> In realtà ci siamo in grado di andare in testa, e guarda, è un file HTML con una testa. 1399 01:18:41,400 --> 01:18:43,280 Ha ottenuto alcuni fogli di stile. 1400 01:18:43,280 --> 01:18:48,450 Non avete bisogno di guardare i CSS per pset7 se non si desidera. 1401 01:18:48,450 --> 01:18:50,560 Ma si può modificare se vuoi, fanno 1402 01:18:50,560 --> 01:18:53,470 il vostro Finanza aspetto un po 'diverso. 1403 01:18:53,470 --> 01:18:57,560 >> Essa ha avuto un po 'di PHP l'intestazione un po 'a vedere 1404 01:18:57,560 --> 01:19:01,240 se c'è un titolo diverso si dovrebbe mettere in questa intestazione. 1405 01:19:01,240 --> 01:19:04,300 Ma solo alcuni altri script, e collegamenti, e altre cose. 1406 01:19:04,300 --> 01:19:08,700 Testa finisce, corpo inizia, e oops, abbiamo questo po 'fine' strano. 1407 01:19:08,700 --> 01:19:14,730 E c'è un div, proprio come una sorta di elemento senza forma 1408 01:19:14,730 --> 01:19:17,120 che ha un'idea di mezzo. 1409 01:19:17,120 --> 01:19:22,450 >> E poi quando vediamo piè di pagina, abbiamo la fine di un div. 1410 01:19:22,450 --> 01:19:25,000 Abbiamo un fondo, che è dove il testo piè di pagina è. 1411 01:19:25,000 --> 01:19:26,770 Fine di div, fine del corpo, fine HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Allora, qual è il rendering facendo è rendere è una sorta 1413 01:19:29,070 --> 01:19:33,150 di rattoppare intestazione, un file PHP diverso che 1414 01:19:33,150 --> 01:19:37,110 conterrà le cose reali che potrai visualizzare, come il vostro tavolo delle scorte 1415 01:19:37,110 --> 01:19:39,690 se si sta comprando o vendendo azioni. 1416 01:19:39,690 --> 01:19:41,480 E poi aggiungerà nel piè di pagina. 1417 01:19:41,480 --> 01:19:44,890 E la vista del modello idea controllore è che 1418 01:19:44,890 --> 01:19:49,590 vogliono separare come le cose sembrano dal codice. 1419 01:19:49,590 --> 01:19:53,420 E 'vogliamo separare il frontend e il backend, dove il frontend è 1420 01:19:53,420 --> 01:20:00,440 le cose che l'utente vede, il bello visuals-- HTML, CSS, cose del genere, 1421 01:20:00,440 --> 01:20:02,320 immagini, eccetera. 1422 01:20:02,320 --> 01:20:05,780 E il backend è PHP. 1423 01:20:05,780 --> 01:20:07,710 Questo è un codice che si scrive. 1424 01:20:07,710 --> 01:20:10,240 Questo è dove il codice che è fare operazioni reali. 1425 01:20:10,240 --> 01:20:12,400 Questo è quando si aggiunge un titolo al vostro tavolo, 1426 01:20:12,400 --> 01:20:14,890 quando si acquista e vendita, che è di backend. 1427 01:20:14,890 --> 01:20:20,210 >> E possiamo, come avete visto, tra cui PHP direttamente in HTML. 1428 01:20:20,210 --> 01:20:23,210 Così che cosa avremmo potuto fare per questo compito è appena avuto 1429 01:20:23,210 --> 01:20:26,200 un file HTML per ogni pagina, come login. 1430 01:20:26,200 --> 01:20:30,260 E poi in quella pagina, basta ha avuto un enorme blocco di codice PHP, 1431 01:20:30,260 --> 01:20:33,822 compreso tutto il codice che quella pagina particolare avrebbe bisogno. 1432 01:20:33,822 --> 01:20:35,780 E allora potremmo avere fatto per portafoglio. 1433 01:20:35,780 --> 01:20:40,250 Avremmo potuto fare tutti gli acquisti e la vendita all'interno delle singole pagine. 1434 01:20:40,250 --> 01:20:43,680 >> Ma perché siamo di rendering separatamente da dove 1435 01:20:43,680 --> 01:20:46,660 stiamo scrivendo il backend codice, possiamo facilmente 1436 01:20:46,660 --> 01:20:52,660 cambiare il modo le cose sembrano senza cambiando ogni singolo file. 1437 01:20:52,660 --> 01:20:55,460 Noi facciamo le cose come solo aggiungere un nuovo div al fondo 1438 01:20:55,460 --> 01:21:00,720 di-- Ciao ho modificato il piè di pagina. 1439 01:21:00,720 --> 01:21:03,710 Si può solo fare cose del genere. 1440 01:21:03,710 --> 01:21:07,250 Ma anche, si può cambiare l'intero layout visivo 1441 01:21:07,250 --> 01:21:09,290 senza compromettere ciò che è andando nel backend. 1442 01:21:09,290 --> 01:21:12,000 Ed è possibile modificare il intero backend e ancora 1443 01:21:12,000 --> 01:21:13,900 hanno lo sguardo proprio come ha fatto prima. 1444 01:21:13,900 --> 01:21:14,400 Questo 1445 01:21:14,400 --> 01:21:16,170 >> È l'idea di controllore vista del modello. 1446 01:21:16,170 --> 01:21:19,992 Ed è in realtà un paradigma imposto in alcuni dei linguaggi di programmazione 1447 01:21:19,992 --> 01:21:21,700 si potrebbe desiderare di utilizzare per progetti finali. 1448 01:21:21,700 --> 01:21:25,100 Se lo fai sviluppo iOS, essi hanno vista, 1449 01:21:25,100 --> 01:21:29,120 che è quello che si vede su iPhone, e poi come backend come una cosa separata. 1450 01:21:29,120 --> 01:21:31,260 >> Si può pensare un po '. 1451 01:21:31,260 --> 01:21:35,190 C'è un sacco di file binari a l'informatica, che è divertente, 1452 01:21:35,190 --> 01:21:37,270 perché tutto è in formato binario. 1453 01:21:37,270 --> 01:21:38,550 Non ho intenzione che. 1454 01:21:38,550 --> 01:21:41,590 E 'stato un gioco di parole intenzionale. 1455 01:21:41,590 --> 01:21:43,860 Sì, gioco di parole non destinato. 1456 01:21:43,860 --> 01:21:49,070 >> Ma come i file .h e file .c, c'è un sacco di separazione di cose che 1457 01:21:49,070 --> 01:21:49,900 potrebbe non essere necessario. 1458 01:21:49,900 --> 01:21:54,330 Così possiamo semplicemente modificare i file h, o qualcuno può solo vedere un file .h e conoscere 1459 01:21:54,330 --> 01:21:57,650 esattamente le funzioni che sono nella file .c senza necessariamente conoscere 1460 01:21:57,650 --> 01:21:58,870 la loro attuazione. 1461 01:21:58,870 --> 01:22:02,800 Questa idea di componenti separano che dipendono l'uno dall'altro 1462 01:22:02,800 --> 01:22:06,990 ma può sorta di accedere ad ogni altro attraverso diversi canali, che passa 1463 01:22:06,990 --> 01:22:09,310 di variabili, basta includere dichiarazioni, le cose 1464 01:22:09,310 --> 01:22:14,440 così, questo principio contribuisce a creare applicazioni 1465 01:22:14,440 --> 01:22:17,080 che può essere più facilmente a cura di più persone, 1466 01:22:17,080 --> 01:22:20,440 può essere più facilmente cambiata o modificato su una grande scala, 1467 01:22:20,440 --> 01:22:24,880 e sono più facili da eseguire il debug in un sacco di modi. 1468 01:22:24,880 --> 01:22:28,254 >> Molto veloce, ho alcuni suggerimenti per pset7, 1469 01:22:28,254 --> 01:22:31,420 che io farò tutto schermo in modo da non solo guardando the-- punta punta Tippee. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Non ci sono molte punte. 1472 01:22:35,130 --> 01:22:38,060 >> Ma ho già detto PHP è difficile da mettere a punto. 1473 01:22:38,060 --> 01:22:39,290 Doppio o triplo controllo esso. 1474 01:22:39,290 --> 01:22:41,550 Se il codice non è solo mostrando sulla pagina, 1475 01:22:41,550 --> 01:22:46,240 è probabilmente un errore di PHP, mi dispiace. 1476 01:22:46,240 --> 01:22:48,570 >> Non hai mai bisogno di guardare CSS se non si desidera. 1477 01:22:48,570 --> 01:22:52,150 Ma una volta che hai finito, può essere un bel po 'di divertimento cosa di andare solo a 1478 01:22:52,150 --> 01:22:54,770 e la mensa con i parametri CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS e HTML sono un esempio di un modello vista stile controllore cosa troppo, giusto? 1480 01:22:58,700 --> 01:23:02,150 Si potrebbe avere tag di stile all'interno di elementi HTML. 1481 01:23:02,150 --> 01:23:04,800 Ma se si ordina di li outsourcing a CSS, 1482 01:23:04,800 --> 01:23:08,180 sono più facili da modificare e giocare in giro con, e divertirsi con. 1483 01:23:08,180 --> 01:23:10,816 >> Trattare CS50 aiutante funziona come scatole nere. 1484 01:23:10,816 --> 01:23:12,940 Non hai bisogno di sapere esattamente quello che sta facendo render, 1485 01:23:12,940 --> 01:23:16,770 ma la fiducia per fare sempre la destra cosa a seconda di cosa si passa, 1486 01:23:16,770 --> 01:23:17,690 cose come questa. 1487 01:23:17,690 --> 01:23:21,040 E mi sento di raccomandare guardando walkthrough di David, 1488 01:23:21,040 --> 01:23:24,490 passare attraverso tutti i roba, non solo i todos, 1489 01:23:24,490 --> 01:23:26,960 ma si può davvero trattare queste scatole nere come. 1490 01:23:26,960 --> 01:23:29,280 Non andare in questi funzioni in cerca di insetti. 1491 01:23:29,280 --> 01:23:33,510 >> E dare il benvenuto al ritorno del nostro signore Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Grande. 1493 01:23:34,010 --> 01:23:40,430 >> Ci sono domande finali prima abbiamo una sorta di rimbalzo per il giorno? 1494 01:23:40,430 --> 01:23:42,610 Sono ancora vivo? 1495 01:23:42,610 --> 01:23:44,700 Grande. 1496 01:23:44,700 --> 01:23:47,120 Persone livestream Ciao. 1497 01:23:47,120 --> 01:23:47,620 Grande. 1498 01:23:47,620 --> 01:23:50,260 Non ci sono più domande? 1499 01:23:50,260 --> 01:23:50,760 No? 1500 01:23:50,760 --> 01:23:52,884 >> E poi penso che siamo buona per andare per oggi. 1501 01:23:52,884 --> 01:23:55,550 Continuerò in giro un po ' poi se la gente avesse domande 1502 01:23:55,550 --> 01:23:57,480 avevano paura di chiedere sul torrente. 1503 01:23:57,480 --> 01:23:59,790 Ma per il resto, hanno una buona giornata. 1504 01:23:59,790 --> 01:24:01,933