1 00:00:00,000 --> 00:00:10,393 >> [音樂播放] 2 00:00:10,393 --> 00:00:11,037 3 00:00:11,037 --> 00:00:12,120 DAVID J.馬蘭:好吧。 4 00:00:12,120 --> 00:00:12,830 歡迎回來。 5 00:00:12,830 --> 00:00:13,890 這是CS50。 6 00:00:13,890 --> 00:00:15,570 這是8週結束。 7 00:00:15,570 --> 00:00:18,360 如你所知,我們有漂亮 在幾個正常辦公時間 8 00:00:18,360 --> 00:00:21,090 的食堂, 包括安嫩伯格。 9 00:00:21,090 --> 00:00:23,860 而一些球隊的好心 拍了些照片最近。 10 00:00:23,860 --> 00:00:26,230 為了慶祝 萬聖節,我們認為我們會 11 00:00:26,230 --> 00:00:30,160 分享一個而被抓住了我們 驚喜在這裡安嫩伯格廳剛剛 12 00:00:30,160 --> 00:00:31,490 那天晚上。 13 00:00:31,490 --> 00:00:36,300 你的同學雅各布合影 這張照片,但更有趣 14 00:00:36,300 --> 00:00:39,760 是在Facebook上,隨後 談話發生之後。 15 00:00:39,760 --> 00:00:43,020 >> 響應他的第一篇文章 他的照片是這樣的。 16 00:00:43,020 --> 00:00:46,740 幾分鐘後,他決定 來一補自己與此有關。 17 00:00:46,740 --> 00:00:53,800 它接著說,然後去這個, 然後,甚至更可笑 18 00:00:53,800 --> 00:00:55,320 是當他的媽媽在幫腔。 19 00:00:55,320 --> 00:00:59,240 20 00:00:59,240 --> 00:01:01,800 然後最終, 看來這只是 21 00:01:01,800 --> 00:01:04,860 一個美妙的詭計了 玩這回事。 22 00:01:04,860 --> 00:01:07,080 >> 所以,如果你想 看到雅各布和其他人, 23 00:01:07,080 --> 00:01:10,880 其中辛西婭·孟,誰的 背後CS50區工作人員的場景, 24 00:01:10,880 --> 00:01:13,970 前往這個網址,這戲在這裡。 25 00:01:13,970 --> 00:01:18,810 因此,事不宜遲,今天我們 繼續這個看網絡編程, 26 00:01:18,810 --> 00:01:21,810 和節目的實際製作 沒有你的命令行中運行, 27 00:01:21,810 --> 00:01:24,080 而是在瀏覽器內運行。 28 00:01:24,080 --> 00:01:26,320 >> 據推測,現在,還是挺 不久,你會 29 00:01:26,320 --> 00:01:30,200 要在落實之中 自己的Web服務器, 30 00:01:30,200 --> 00:01:31,700 從web編程不同。 31 00:01:31,700 --> 00:01:36,210 在pset6 Web服務器是所有關於 編寫軟件,它知道如何採取 32 00:01:36,210 --> 00:01:39,300 從瀏覽器的HTTP請求, 甚至從你,一個人, 33 00:01:39,300 --> 00:01:42,340 有一個程序叫Telnet和 再響應這些請求要么 34 00:01:42,340 --> 00:01:48,600 通過吐出一個HTML文件,或 JPEG或GIF,甚至是PHP文件。 35 00:01:48,600 --> 00:01:52,490 >> 但是,與Web服務器,它不是 應該只是打開一個PHP文件, 36 00:01:52,490 --> 00:01:55,260 東西.php結尾,並 然後吐出的內容。 37 00:01:55,260 --> 00:01:58,440 它應該做的 什麼該文件第一? 38 00:01:58,440 --> 00:01:59,390 可以這麼說。 39 00:01:59,390 --> 00:02:04,060 不編譯它,我們週一表示, 但rather--因此,解釋它。 40 00:02:04,060 --> 00:02:08,070 >> PHP是一種解釋型語言,所以 在你的網絡的關鍵特徵之一 41 00:02:08,070 --> 00:02:11,550 服務器,儘管美國實施, 這種能力對於你的web服務器 42 00:02:11,550 --> 00:02:12,490 要注意哦。 43 00:02:12,490 --> 00:02:14,580 這是.php結尾的文件。 44 00:02:14,580 --> 00:02:17,970 我不只是將其發送到 用戶喜歡它的靜態內容, 45 00:02:17,970 --> 00:02:20,970 而是讓我讀它一行 線,從左到右,並解釋它。 46 00:02:20,970 --> 00:02:23,030 >> 而要做到,你 球員將主​​要 47 00:02:23,030 --> 00:02:26,520 踢一個節目中的器具, 和對大量的計算機系統, 48 00:02:26,520 --> 00:02:27,500 只是所謂的PHP。 49 00:02:27,500 --> 00:02:30,579 這就是PHP的名 語言本身的解釋。 50 00:02:30,579 --> 00:02:33,120 所以,這一塊我們實施 你和什麼留給你, 51 00:02:33,120 --> 00:02:35,240 最終,是一個數 件,其中 52 00:02:35,240 --> 00:02:37,960 正在實施的支持 對於靜態內容。 53 00:02:37,960 --> 00:02:40,180 >> 但現在,與 問題設置7,你 54 00:02:40,180 --> 00:02:43,660 要開始過渡到 實際編寫PHP代碼 55 00:02:43,660 --> 00:02:45,970 這被解釋 在談及到後端 56 00:02:45,970 --> 00:02:47,960 數據庫,其存儲的信息。 57 00:02:47,960 --> 00:02:51,020 因此,讓我們更好地了解第一 一對夫婦這些超全局變量 58 00:02:51,020 --> 00:02:53,720 而到底有多少權力,你 獲得開箱即用免費 59 00:02:53,720 --> 00:02:55,250 與像PHP語言。 60 00:02:55,250 --> 00:02:57,350 你做的事情沒有 自己實現。 61 00:02:57,350 --> 00:03:01,700 >> 所以,我們看到在週一$ _ GET, 這是一個超全局, 62 00:03:01,700 --> 00:03:05,496 這是剛剛PHP代言的全球 變量,你可以在任何地方訪問。 63 00:03:05,496 --> 00:03:06,620 而且裡面有什麼的$ _GET? 64 00:03:06,620 --> 00:03:09,930 65 00:03:09,930 --> 00:03:12,110 什麼是這裡面 超全局,我們看到了什麼? 66 00:03:12,110 --> 00:03:15,900 67 00:03:15,900 --> 00:03:19,020 當然,在統計上 至少有一個人知道。 68 00:03:19,020 --> 00:03:21,590 什麼是裡面的$ _GET? 69 00:03:21,590 --> 00:03:22,426 是嗎? 70 00:03:22,426 --> 00:03:24,130 >> 聽眾:這是變數 你把在查詢字符串。 71 00:03:24,130 --> 00:03:24,530 >> DAVID J.馬蘭:完美。 72 00:03:24,530 --> 00:03:26,488 這是你的變量 把在查詢字符串。 73 00:03:26,488 --> 00:03:29,910 所以,在我們的年長的例子 谷歌重新實現的時候,我們有 74 00:03:29,910 --> 00:03:34,130 一個URL,然後問號, 其中劃定HTTP的開始 75 00:03:34,130 --> 00:03:37,950 參數,那麼我們有Q等於 東西,像Q等於貓, 76 00:03:37,950 --> 00:03:41,500 你會自動地往裡走 那$ _GET超級全局適合你, 77 00:03:41,500 --> 00:03:47,430 因為PHP的,是Q的一個關鍵, 和其價值的貓。 78 00:03:47,430 --> 00:03:51,250 >> 換句話說,$ _GET和所有的 這些東西都是關聯數組, 79 00:03:51,250 --> 00:03:54,530 排序哈希表,即 存儲鍵和值。 80 00:03:54,530 --> 00:03:57,980 現在,早在pset5,哈希 表,你可能已經實現, 81 00:03:57,980 --> 00:04:00,220 或者試試你可能 已經實施了,真的 82 00:04:00,220 --> 00:04:04,010 是有效的關聯 陣列,數據結構 83 00:04:04,010 --> 00:04:07,220 由此可以聯想 鍵與值。 84 00:04:07,220 --> 00:04:09,690 >> 但在pset5,該值是微不足道的。 85 00:04:09,690 --> 00:04:12,430 價值本質上是真的還是假的。 86 00:04:12,430 --> 00:04:13,900 在字典中的字? 87 00:04:13,900 --> 00:04:18,279 所以,當你散列像蘋果字 看是否蘋果是在詞典, 88 00:04:18,279 --> 00:04:21,820 你的檢查功能想必 返回true或false。 89 00:04:21,820 --> 00:04:24,120 所以,這是有效的 值,我們得到了。 90 00:04:24,120 --> 00:04:26,456 >> 但是我們看到在週一 簡單地說,你肯定能 91 00:04:26,456 --> 00:04:28,830 聯想更有趣 價值不僅僅是true或false 92 00:04:28,830 --> 00:04:30,790 連鍵,就像蘋果。 93 00:04:30,790 --> 00:04:33,909 其實你可以返回 任意的字符串,而事實上, 94 00:04:33,909 --> 00:04:36,200 這就是$ _ GET和這些 其他變量讓你做。 95 00:04:36,200 --> 00:04:40,595 >> 因此,$ _ POST是神似, 但如果你通過郵寄提交表單, 96 00:04:40,595 --> 00:04:44,490 不同的HTTP方法是 用的東西像信用卡, 97 00:04:44,490 --> 00:04:48,410 信息和私人信息,甚至 二進制信息,如照片, 98 00:04:48,410 --> 00:04:51,840 這些事情最終的$ _ POST內。 99 00:04:51,840 --> 00:04:53,770 而實際上的文件 像JPEG文件和諸如此類的東西, 100 00:04:53,770 --> 00:04:58,290 甚至還有另一個不 在這裡所謂的$ _FILES為好。 101 00:04:58,290 --> 00:05:01,280 >> 因此,我們的服務器將不糾纏於太多 不多,但它可以讓你訪問 102 00:05:01,280 --> 00:05:04,860 排序大約低級別的細節 您正在使用的服務器本身。 103 00:05:04,860 --> 00:05:07,430 Cookie和會話,不過, 我們將切實看到了。 104 00:05:07,430 --> 00:05:10,940 最後就是我們用來實現 一個購物車的概念。 105 00:05:10,940 --> 00:05:14,480 一個超級簡單的,但召回 我們有這樣的例子在這裡, 106 00:05:14,480 --> 00:05:17,640 計算有多少次你 之前曾訪問過這個頁面。 107 00:05:17,640 --> 00:05:20,850 >> 但今天,而不是僅僅看 這樣的效果,讓我們打開了 108 00:05:20,850 --> 00:05:22,640 Chrome的檢查, 這通常可以 109 00:05:22,640 --> 00:05:25,740 做通過右鍵單擊或控制 點擊網頁上的任何地方, 110 00:05:25,740 --> 00:05:27,250 然後選擇檢查元素。 111 00:05:27,250 --> 00:05:31,600 或者,你可以通過菜單 我們描述pset6的規範。 112 00:05:31,600 --> 00:05:35,020 而我要去的網絡標籤 在這裡,讓我們觀看了一會兒 113 00:05:35,020 --> 00:05:37,590 在HTTP流量的 來回。 114 00:05:37,590 --> 00:05:40,929 >> 首先,讓我繼續前進 和清晰的Chrome瀏覽器的緩存。 115 00:05:40,929 --> 00:05:43,470 所以,有些人可能很熟悉 這種技術已經, 116 00:05:43,470 --> 00:05:45,790 而我們要使用它 在這裡調試。 117 00:05:45,790 --> 00:05:48,890 118 00:05:48,890 --> 00:05:50,890 現在我們電腦 科學家們將開始 119 00:05:50,890 --> 00:05:53,920 這樣做調試 的目的,從而 120 00:05:53,920 --> 00:05:55,910 我們將清除緩存, 典型地,這樣我們就 121 00:05:55,910 --> 00:05:57,670 可以去掉的東西叫做餅乾。 122 00:05:57,670 --> 00:06:01,700 所以,你可能熟悉一般 用什麼餅乾,或至少 123 00:06:01,700 --> 00:06:04,370 它們的存在,但有什麼 你了解他們, 124 00:06:04,370 --> 00:06:06,920 由於只是一個用戶 計算機,什麼是Cookie? 125 00:06:06,920 --> 00:06:09,490 126 00:06:09,490 --> 00:06:09,990 是啊。 127 00:06:09,990 --> 00:06:14,391 >> 聽眾:這是一個有點of--好,不 在計算機科學中的一個術語位。 128 00:06:14,391 --> 00:06:18,303 它是一個數據塊,一個 網址發送給您,以便 129 00:06:18,303 --> 00:06:20,209 要能夠對你記錄統計。 130 00:06:20,209 --> 00:06:21,250 DAVID J.馬蘭:好,好。 131 00:06:21,250 --> 00:06:24,980 所以它是一個數據塊,一個 服務器,使您的計算機上, 132 00:06:24,980 --> 00:06:28,840 讓我們甚至概括它 更多的,它是一個關鍵的value--好, 133 00:06:28,840 --> 00:06:30,064 這是越來越精確。 134 00:06:30,064 --> 00:06:31,980 它是一塊 信息,一個數據片, 135 00:06:31,980 --> 00:06:34,430 該服務器能夠 把你的計算機上 136 00:06:34,430 --> 00:06:38,592 而很多時候,服務器做 這使要記住你是誰。 137 00:06:38,592 --> 00:06:40,300 因此,例如,比值 你很可能 138 00:06:40,300 --> 00:06:42,982 登錄到網站,如Facebook, 或Gmail或其它前, 139 00:06:42,982 --> 00:06:44,940 你在你的登錄 用戶名和密碼, 140 00:06:44,940 --> 00:06:49,000 再後,對某些數 幾分鐘或幾小時甚至幾天的, 141 00:06:49,000 --> 00:06:52,970 服務器記住 你是,事實上,已登錄。 142 00:06:52,970 --> 00:06:54,600 現在,如何是實際發生的事情? 143 00:06:54,600 --> 00:06:58,630 因為你肯定不會重新輸入 您的用戶名和密碼,每次 144 00:06:58,630 --> 00:07:00,760 您導航到 不同的頁面在Facebook上。 145 00:07:00,760 --> 00:07:02,570 因此,原來的 餅乾的答案。 146 00:07:02,570 --> 00:07:05,360 >> 一個cookie,你可以想到的是, 有點像,數字手 147 00:07:05,360 --> 00:07:09,200 郵票,你可能會在遊 公園或俱樂部,基本上 148 00:07:09,200 --> 00:07:11,740 表示你一直在這裡 之前,你已經過 149 00:07:11,740 --> 00:07:16,070 顯示你的ID的保鏢,對於 實例,該俱樂部或公園 150 00:07:16,070 --> 00:07:19,050 現在應該假設你 已通過身份驗證。 151 00:07:19,050 --> 00:07:21,270 你已經確定了。 152 00:07:21,270 --> 00:07:24,740 >> 所以考慮到這一點, 讓我們在這裡開闢專櫃。 153 00:07:24,740 --> 00:07:27,220 讓我先走,我只是做了, 並清除所有的我的餅乾。 154 00:07:27,220 --> 00:07:29,970 現在我什麼都做的是 按住Shift,只為好措施, 155 00:07:29,970 --> 00:07:31,740 強行重新加載頁面。 156 00:07:31,740 --> 00:07:34,170 按住Shift鍵,只要確保 沒有什麼被緩存。 157 00:07:34,170 --> 00:07:36,850 而這裡的請求 這又來回。 158 00:07:36,850 --> 00:07:41,560 所以,在這裡我們有一個請求,讓 我放大到這裡,和大量的本 159 00:07:41,560 --> 00:07:44,710 是有點無趣的細節 現在,瀏覽器會自動有 160 00:07:44,710 --> 00:07:47,800 發送,但讓我們點擊查看 來源看原始頭。 161 00:07:47,800 --> 00:07:51,700 >> 如果你已經潛入pset6不已, 你一定會認識到的東西 162 00:07:51,700 --> 00:07:54,990 這樣,也許有些 這裡的這些線, 163 00:07:54,990 --> 00:07:59,040 但更有趣的今天 如果我向下滾動,而不是請求 164 00:07:59,040 --> 00:08:02,870 但所謂的反應, 這條線可能看起來很熟悉。 165 00:08:02,870 --> 00:08:04,977 這是一件好事 當你看到一個200 OK。 166 00:08:04,977 --> 00:08:07,060 顯然,這是 日期和時間,在服務器上 167 00:08:07,060 --> 00:08:08,268 這裡面的一堆東西。 168 00:08:08,268 --> 00:08:09,290 哦,這是有趣的。 169 00:08:09,290 --> 00:08:13,430 >> 原來,當你使用 PHP的,至少在這台服務​​器, 170 00:08:13,430 --> 00:08:16,360 服務器吐出什麼 PHP版本你使用。 171 00:08:16,360 --> 00:08:18,962 其中,實際上,為了安全 目的,是不是一件好事。 172 00:08:18,962 --> 00:08:21,170 但是,我們會回來的 其他時間也許吧。 173 00:08:21,170 --> 00:08:25,740 但是,現在這是多汁行的今天, 我們簡要地看到了其中的一些, 174 00:08:25,740 --> 00:08:29,240 我想我的時候,我們戳 各地督察在那個時候, 175 00:08:29,240 --> 00:08:33,380 設置cookie是什麼種植 那個小資料片 176 00:08:33,380 --> 00:08:34,890 到您的計算機。 177 00:08:34,890 --> 00:08:37,490 >> 這是一個HTTP頭 這是有效的 178 00:08:37,490 --> 00:08:39,970 告訴你的瀏覽器, Chrome瀏覽器,IE瀏覽器,不管, 179 00:08:39,970 --> 00:08:44,480 在用戶的瀏覽器哎商店 硬盤驅動器,或在用戶的RAM中, 180 00:08:44,480 --> 00:08:49,680 一個叫做PHPSESSID鍵,這是一個 速記符號的會話ID, 181 00:08:49,680 --> 00:08:53,670 並給它的值 0vlk8t,點,點,點。 182 00:08:53,670 --> 00:08:56,480 一個很長的假 隨機的字母數字字符串。 183 00:08:56,480 --> 00:08:59,480 這只是一個非常大的數字,但 它的編碼字母和數字 184 00:08:59,480 --> 00:09:03,550 使得它的尺寸可以 甚至比單純的數字更大。 185 00:09:03,550 --> 00:09:06,947 然後,通過該方式,路徑= /,即 只是表示這個cookie應 186 00:09:06,947 --> 00:09:08,780 與相關聯的 該網站的全部, 187 00:09:08,780 --> 00:09:11,150 不只是一個特定 頁面整個事情。 188 00:09:11,150 --> 00:09:12,930 因此,這是虛擬的郵戳。 189 00:09:12,930 --> 00:09:16,330 這是因為,雖然服務器,臉譜, 或者在我們的例子家電, 190 00:09:16,330 --> 00:09:21,140 有字面上寫0vlk8t 等等,在你的手。 191 00:09:21,140 --> 00:09:24,360 注意一下服務器的, 不這樣做是不是 192 00:09:24,360 --> 00:09:27,730 保存我的用戶名,當然 不存儲密碼。 193 00:09:27,730 --> 00:09:31,710 >> 相反,它似乎是 存儲偽隨機信息 194 00:09:31,710 --> 00:09:35,010 所以沒有人能猜到 什麼我的手郵票。 195 00:09:35,010 --> 00:09:37,590 在服務器端, 同時,服務器 196 00:09:37,590 --> 00:09:40,370 是要記住,大概 在數據庫什麼的, 197 00:09:40,370 --> 00:09:46,490 該用戶,誰在未來 呈現0vlk8t的郵戳,點, 198 00:09:46,490 --> 00:09:51,440 點,斑點,應與此相關的 特別是購物車,可以這麼說。 199 00:09:51,440 --> 00:09:55,060 換句話說,如果我現在去 回到這裡,然後刷新頁面, 200 00:09:55,060 --> 00:09:58,020 如何在服務器知道 我參觀了一次? 201 00:09:58,020 --> 00:10:01,730 >> 或者,如果我再這樣做,如何做服務器 知道,我已經訪問過它兩次? 202 00:10:01,730 --> 00:10:04,680 好吧,如果我去到這個 最近的請求,這 203 00:10:04,680 --> 00:10:09,150 現在是第三次,我已經發 總體而言,現在看到我的要求。 204 00:10:09,150 --> 00:10:11,300 還有這個 請在這裡,同 205 00:10:11,300 --> 00:10:15,040 和以前一樣,還是有一大堆 的東西,我們忽略了和以前一樣, 206 00:10:15,040 --> 00:10:19,350 但在最後頭,這 一次,因為我以前來過這裡, 207 00:10:19,350 --> 00:10:21,980 是演示文稿的 這個虛擬的郵戳。 208 00:10:21,980 --> 00:10:28,957 >> 因此這條線在這裡,沒有設置的cookie 但餅乾結腸PHPSESSI = 0vlk8t, 209 00:10:28,957 --> 00:10:32,040 這只是我的瀏覽器的自動 演示這個郵戳,這樣的 210 00:10:32,040 --> 00:10:37,910 現在的服務器,只要它實現, 哦,這是用戶0vlk8t點,點,點, 211 00:10:37,910 --> 00:10:42,010 我現在還記得他或她是誰 和與該用戶重新關聯的任何 212 00:10:42,010 --> 00:10:46,450 信息我想,所有的 這些信息可以通過你存儲, 213 00:10:46,450 --> 00:10:50,130 程序員在$ _SESSION。 214 00:10:50,130 --> 00:10:57,170 >> 所以要清楚,如果我打開了真正的快 在gedit中的實際文件,counter.php, 215 00:10:57,170 --> 00:11:02,340 在我的本地主機的公共目錄 和以前一樣,請注意,事實上, 216 00:11:02,340 --> 00:11:06,860 我最終存儲在 $ _SESSION報價引文結束“反” 217 00:11:06,860 --> 00:11:10,110 在前面的計數器的值,該值 我從這些線爬起來在這裡,我們 218 00:11:10,110 --> 00:11:13,010 看著最後一次加一。 219 00:11:13,010 --> 00:11:14,980 因此,引擎蓋下方, 這是所有的餅乾。 220 00:11:14,980 --> 00:11:17,563 這數字只是那種 用手戳來回, 221 00:11:17,563 --> 00:11:20,450 坦白地說,如果你打開Chrome的 督察在任何網站上 222 00:11:20,450 --> 00:11:22,580 你今天拜訪,與 超高概率, 223 00:11:22,580 --> 00:11:25,450 你會看到也許有, 也許半打餅乾 224 00:11:25,450 --> 00:11:26,650 被記住你。 225 00:11:26,650 --> 00:11:29,500 >> 而更糟糕的是,如果這些 網站你訪問 226 00:11:29,500 --> 00:11:32,640 所有有廣告,這 肯定是相當普遍的今天, 227 00:11:32,640 --> 00:11:36,100 如果這些廣告的未來 一些中央黨,有人 228 00:11:36,100 --> 00:11:39,000 像谷歌或AdWords,因為他們 稱自己的產品之一 229 00:11:39,000 --> 00:11:42,880 或其它這樣的供應商那 賣廣告,什麼是有趣的, 230 00:11:42,880 --> 00:11:46,510 坦率地說什麼是一個小 令人擔憂的,如何HTTP工作, 231 00:11:46,510 --> 00:11:50,855 是,如果你有一個內嵌廣告 在Facebook.com和Google.com, 232 00:11:50,855 --> 00:11:54,240 和Harvard.edu,任何數量 的網站,所以它是這樣 233 00:11:54,240 --> 00:11:58,130 ,有一個中間人誰是服務 了廣告所有這三個網站, 234 00:11:58,130 --> 00:12:02,110 事實證明,在 Cookies是每個域。 235 00:12:02,110 --> 00:12:05,910 >> 所以,如果你有一個廣告的未來 同一家公司在不同的網站, 236 00:12:05,910 --> 00:12:11,140 該公司能夠有效地跟踪誰 你是在所有這些網站。 237 00:12:11,140 --> 00:12:13,140 哈佛可能不知道 您正在訪問的Facebook。 238 00:12:13,140 --> 00:12:15,306 Facebook的可能不知道 您正在訪問的哈佛。 239 00:12:15,306 --> 00:12:18,160 但無論廣告服務 他們使用的是如果該域名 240 00:12:18,160 --> 00:12:21,710 存在於兩個Harv​​ard.edu幅 頁面和Facebook.com網頁, 241 00:12:21,710 --> 00:12:26,850 這個中間人一定會知道你是誰 因為被共享這些cookie 242 00:12:26,850 --> 00:12:30,910 對面,或者更確切地說於, 那個所謂的中間人。 243 00:12:30,910 --> 00:12:33,820 >> 因此,我們會回來這 安全隱患物, 244 00:12:33,820 --> 00:12:37,170 但有大量的信息 隨時存儲你你 245 00:12:37,170 --> 00:12:40,120 請訪問幾乎所有的網頁 互聯網,它真的 246 00:12:40,120 --> 00:12:42,877 降低到這個非常簡單的機構。 247 00:12:42,877 --> 00:12:44,710 會發生什麼,那麼,如果 你是超級偏執狂 248 00:12:44,710 --> 00:12:48,190 而你決定進入Chrome或IE瀏覽器 或什麼的,然後關閉你的cookies? 249 00:12:48,190 --> 00:12:49,365 會發生什麼? 250 00:12:49,365 --> 00:12:50,790 是嗎? 251 00:12:50,790 --> 00:12:53,170 你really--你這樣做對嗎? 252 00:12:53,170 --> 00:12:54,350 行。 253 00:12:54,350 --> 00:12:55,994 不,請便。 254 00:12:55,994 --> 00:12:59,645 >> 聽眾:某些網站沒有 沒有它的功能像Facebook的。 255 00:12:59,645 --> 00:13:00,520 DAVID J.馬蘭:是啊! 256 00:13:00,520 --> 00:13:02,311 因此,某些網站 只是停止工作。 257 00:13:02,311 --> 00:13:05,520 而在大多數網站這幾天 從根本上依賴於餅乾, 258 00:13:05,520 --> 00:13:08,360 特別是如果他們有登錄 在,他們只是要打破。 259 00:13:08,360 --> 00:13:10,360 由於考慮 替代方案中,如果網站 260 00:13:10,360 --> 00:13:14,480 有沒有辦法記住你是誰, 因此,您的瀏覽器不 261 00:13:14,480 --> 00:13:16,949 表示與每個HTTP 該郵戳的要求, 262 00:13:16,949 --> 00:13:18,740 有效的網站 像Facebook是怎麼回事 263 00:13:18,740 --> 00:13:22,050 不得不提示你 每一次縫補一次登錄 264 00:13:22,050 --> 00:13:26,200 更改網頁,或點擊一個鏈接,該鏈接 肯定不是一個特別好的用戶 265 00:13:26,200 --> 00:13:26,920 的經驗。 266 00:13:26,920 --> 00:13:30,020 >> 所以,有,也就是 之間的權衡。 267 00:13:30,020 --> 00:13:34,140 因此,事不宜遲,讓我們 想當然地認為web編程, 268 00:13:34,140 --> 00:13:37,630 像PHP語言,你可以記住 在問題這樣的設置信息 269 00:13:37,630 --> 00:13:41,550 當你實現自己的7 E * TRADE樣的網站,用以購買 270 00:13:41,550 --> 00:13:45,710 而賣出股票,你會記得很清楚 什麼樣的用戶已經購買和出售 271 00:13:45,710 --> 00:13:49,110 他或她是誰 通過本次會議的方式。 272 00:13:49,110 --> 00:13:51,110 但是,我們將需要 比電子郵件鴿友方式 273 00:13:51,110 --> 00:13:52,640 開始圍繞保持信息。 274 00:13:52,640 --> 00:13:53,140 對不對? 275 00:13:53,140 --> 00:13:56,780 >> 上週一,我們談到了即時的新生 如何在版本一個網站, 276 00:13:56,780 --> 00:14:00,250 幾年前,所有我們所做的是 通過電子郵件發送普羅克特誰的 277 00:14:00,250 --> 00:14:04,250 負責校內體育 節目,名稱,性別, 278 00:14:04,250 --> 00:14:07,330 而無論他們是否是一個隊長, 和別人的宿舍是誰的 279 00:14:07,330 --> 00:14:10,136 註冊為校內運動。 280 00:14:10,136 --> 00:14:13,010 因此,它不壞,但他或她再 不得不巨魔通過他們的電子郵件, 281 00:14:13,010 --> 00:14:16,010 創建一個電子表格或類似的東西 即,把一切都安排。 282 00:14:16,010 --> 00:14:19,750 所以我們肯定程序員 可以為監考官做到這一點。 283 00:14:19,750 --> 00:14:22,970 和SQL這樣進入, 結構化查詢語言, 284 00:14:22,970 --> 00:14:26,050 這是會好看 不同於C和PHP, 285 00:14:26,050 --> 00:14:30,990 你會在潛水得多手 PHP和問題設置7,而且SQL, 286 00:14:30,990 --> 00:14:35,310 或SQL,這是一種語言 你用跟一個數據庫。 287 00:14:35,310 --> 00:14:36,480 >> 但是,什麼是數據庫? 288 00:14:36,480 --> 00:14:38,440 那麼你想想 數據庫,至少在目前, 289 00:14:38,440 --> 00:14:41,750 剛才是像一個Excel文件,或 如果你是一個Mac用戶一個數字文件, 290 00:14:41,750 --> 00:14:44,400 或者如果你是一個谷歌企業應用套件 用戶谷歌電子表格, 291 00:14:44,400 --> 00:14:49,120 它實際上是一個數據庫,還是真的 具體的關係數據庫。 292 00:14:49,120 --> 00:14:53,070 關係數據庫是剛剛 一些具有行和列, 293 00:14:53,070 --> 00:14:56,440 你可以存儲任何類型的 在這些行或列的信息。 294 00:14:56,440 --> 00:15:00,480 >> 但是,什麼是好的關於SQL和 關於實際的數據庫,而不是 295 00:15:00,480 --> 00:15:04,910 電子表格或谷歌電子表格, 是,你可以用一種語言 296 00:15:04,910 --> 00:15:09,000 實際執行查詢 插入數據,刪除數據, 297 00:15:09,000 --> 00:15:11,620 尋找數據,甚至 最重要的是,和你 298 00:15:11,620 --> 00:15:16,110 不必相當手動使用它 正如你可能通常一個谷歌 299 00:15:16,110 --> 00:15:17,690 電子表格是這樣的。 300 00:15:17,690 --> 00:15:22,217 >> 因此,在SQL中,有一堆 基本陳述或片 301 00:15:22,217 --> 00:15:23,300 功能內置的。 302 00:15:23,300 --> 00:15:26,450 沒有什麼比這更多的, 但你可以去一個巨大的距離 303 00:15:26,450 --> 00:15:28,620 只是知道 這種語言稱為 304 00:15:28,620 --> 00:15:30,840 SQL有至少四個 語句,你可以利用。 305 00:15:30,840 --> 00:15:34,420 >> 刪除,用於去除數據, 插入,添加行, 306 00:15:34,420 --> 00:15:37,340 更新時,用於改變 行和選擇, 307 00:15:37,340 --> 00:15:39,860 為取回行 這確實是SQL做什麼。 308 00:15:39,860 --> 00:15:43,810 它的工作完全是靠行,以便 當你插入或刪除, 309 00:15:43,810 --> 00:15:47,470 或更新,或選擇你是什麼 取回作為一個所謂的結果集, 310 00:15:47,470 --> 00:15:49,690 象行的陣列。 311 00:15:49,690 --> 00:15:51,700 從表一幫行。 312 00:15:51,700 --> 00:15:54,050 >> 因此,早在一天, 甚至到今天, 313 00:15:54,050 --> 00:15:56,560 你可以用互動 數據庫使用命令行, 314 00:15:56,560 --> 00:15:59,691 但它不是特別有趣的使用 這種黑白風格的窗口 315 00:15:59,691 --> 00:16:02,190 而實際執行的命令 戳在你的數據庫。 316 00:16:02,190 --> 00:16:06,054 圖形用戶界面或GUI, 是更可取的,可以說, 317 00:16:06,054 --> 00:16:08,970 所以我們推薦工具 預裝你在設備上 318 00:16:08,970 --> 00:16:10,580 被稱為phpMyAdmin的。 319 00:16:10,580 --> 00:16:14,060 這是一個總的巧合, 這個東西的名字有PHP中呢, 320 00:16:14,060 --> 00:16:17,430 它只是意味著人 誰寫了這個程序本身 321 00:16:17,430 --> 00:16:18,670 在PHP寫的。 322 00:16:18,670 --> 00:16:23,740 >> 但它的最終目的是管理 數據庫服務器,如MySQL服務器 323 00:16:23,740 --> 00:16:26,589 你可能有,因為你 這樣做,在CS50設備。 324 00:16:26,589 --> 00:16:29,130 因此,有更詳細的在這裡比 我們需要關心的今天, 325 00:16:29,130 --> 00:16:33,280 但什麼是關鍵的是,在左邊 手側的數據庫的列表 326 00:16:33,280 --> 00:16:36,040 您有您的計算機上, 您CS50家電, 327 00:16:36,040 --> 00:16:40,090 或來最終的項目,你可能會 對第三方公司的 328 00:16:40,090 --> 00:16:43,415 網站或網絡服務器,即 你可能會付出空間。 329 00:16:43,415 --> 00:16:45,290 這樣,左邊的是 的數據庫,其中的一個 330 00:16:45,290 --> 00:16:48,750 是pset7這是我從旁邊借來的 週pset中,然後在頂 331 00:16:48,750 --> 00:16:51,570 有注意到有一個 一堆標籤,其中一 332 00:16:51,570 --> 00:16:55,150 是數據庫,SQL,地位, 用戶,出口等等。 333 00:16:55,150 --> 00:16:56,900 所以,你可以走很長 方法只是實現 334 00:16:56,900 --> 00:16:59,770 大多數的用戶界面 在頂部左邊的列 335 00:16:59,770 --> 00:17:02,650 和橫跨右上方那裡。 336 00:17:02,650 --> 00:17:04,980 那麼,我們能不能用這個做什麼? 337 00:17:04,980 --> 00:17:08,609 好吧,讓我們開始創建 信息位如下。 338 00:17:08,609 --> 00:17:11,760 >> 假設下面是這種情況, 這將是在短短的幾天裡, 339 00:17:11,760 --> 00:17:14,440 你想實現一個 網站名為CS50金融, 340 00:17:14,440 --> 00:17:17,328 這個網站可以讓你買 引用引文結束和出售股票。 341 00:17:17,328 --> 00:17:19,619 而且它要弄清楚 這些股票的價格, 342 00:17:19,619 --> 00:17:22,380 最終,你會看到, 通過交談,雅虎財經。 343 00:17:22,380 --> 00:17:26,250 其中,奇妙,有一個免費服務 因此,你可以通過在股票行情 344 00:17:26,250 --> 00:17:29,830 就像歌為谷歌,它會 給你回谷歌目前的股票 345 00:17:29,830 --> 00:17:32,250 過去的價格範圍內 至少幾分鐘。 346 00:17:32,250 --> 00:17:35,080 >> 所以你使用的是,最終, 假裝為用戶 347 00:17:35,080 --> 00:17:37,750 購買和出售實際 使用虛擬貨幣的股票, 348 00:17:37,750 --> 00:17:39,750 但第一件事 用戶會看到 349 00:17:39,750 --> 00:17:43,850 這是登錄界面,詢問他們 為自己的用戶名和密碼。 350 00:17:43,850 --> 00:17:46,540 因此,第一之一 在pset7你挑戰 351 00:17:46,540 --> 00:17:50,460 將是實現後端 數據庫,電子表格,如果你願意, 352 00:17:50,460 --> 00:17:53,369 這是怎麼回事存儲 用戶名和密碼 353 00:17:53,369 --> 00:17:56,660 最終他們擁有的股票, 有多少,多少錢他們有, 354 00:17:56,660 --> 00:18:00,110 所以在一堆其他的東西 其他表或電子表格。 355 00:18:00,110 --> 00:18:05,020 >> 因此,讓我們來看看如何 可能出現的第一眼。 356 00:18:05,020 --> 00:18:06,980 我要回去 家電和我 357 00:18:06,980 --> 00:18:14,102 打算去這個網址在這裡 phpMyAdmin的本地主機/ phpmyadmin的 358 00:18:14,102 --> 00:18:16,060 你會看到它 帶我到一個接口 359 00:18:16,060 --> 00:18:18,520 正是因為我們看到的 屏幕截圖,在這裡我 360 00:18:18,520 --> 00:18:21,560 有一個附加的數據庫 所謂講座今天 361 00:18:21,560 --> 00:18:24,280 讓我繼續前進 首先,點擊pset7。 362 00:18:24,280 --> 00:18:27,940 >> 我似乎有幾個選項, 1為新的,用於創建一個新的表, 363 00:18:27,940 --> 00:18:30,770 和一個鏈接到用戶,這 是我已經創建了一個表。 364 00:18:30,770 --> 00:18:31,790 那麼什麼是表? 365 00:18:31,790 --> 00:18:33,740 所以,如果你使用Excel中 以前,如果你已經 366 00:18:33,740 --> 00:18:37,110 使用數字或谷歌 電子表格,你打開一個窗口 367 00:18:37,110 --> 00:18:39,350 你會得到一大堆 行和列, 368 00:18:39,350 --> 00:18:43,120 但你通常工作表 在底部,或者單獨的標籤。 369 00:18:43,120 --> 00:18:46,140 你能想到的每一個 工作表作為表 370 00:18:46,140 --> 00:18:51,150 使得數據庫,最終是 的一個或多個表的組合,1 371 00:18:51,150 --> 00:18:54,064 或多個工作表,在 世界上正常的電子表格。 372 00:18:54,064 --> 00:18:55,980 因此,讓我繼續前進, 點擊此工作表上 373 00:18:55,980 --> 00:18:59,420 我預製,叫用戶,亦稱 374 00:18:59,420 --> 00:19:00,700 數據庫表。 375 00:19:00,700 --> 00:19:04,130 如果我在這裡向下滾動, 讓我縮小了一點, 376 00:19:04,130 --> 00:19:08,479 這是phpMyAdmin的告訴 我們是這個表裡面現在。 377 00:19:08,479 --> 00:19:11,020 這是一個有點混亂,在第一 一目了然因為UI不是 378 00:19:11,020 --> 00:19:15,140 最漂亮的東西在世界上,但 有趣的是這部分在這裡。 379 00:19:15,140 --> 00:19:17,970 ID,用戶名和哈希值。 380 00:19:17,970 --> 00:19:20,510 >> 在前進,你會交到 在這個問題集7, 381 00:19:20,510 --> 00:19:25,050 我們為您提供包含超級文件 小型數據庫表,居然借 382 00:19:25,050 --> 00:19:27,070 從黑客版 問題設置兩個, 383 00:19:27,070 --> 00:19:29,480 這裡面有六排。 384 00:19:29,480 --> 00:19:32,720 一個是貝琳達所有 一路下跌到一個用於Zamyla, 385 00:19:32,720 --> 00:19:35,980 並注意對那些左 用戶名就像一個唯一的ID, 386 00:19:35,980 --> 00:19:39,410 兩個,三個,四個,五個,六個,整體, 然後向右是哈希值。 387 00:19:39,410 --> 00:19:42,780 >> 如果,賠率是,你沒做 黑客版的問題設置兩個, 388 00:19:42,780 --> 00:19:46,560 但是哈希就像一個加密 密碼有幾個注意事項。 389 00:19:46,560 --> 00:19:49,470 所以,你在這裡看到什麼 所有六個的加密版本 390 00:19:49,470 --> 00:19:52,950 我們從問題的密碼 設置兩個的黑客版。 391 00:19:52,950 --> 00:19:56,500 現在左邊是只是一些GUI的東西, 編輯此行,複製該行, 392 00:19:56,500 --> 00:19:57,630 刪除此行。 393 00:19:57,630 --> 00:19:59,840 >> 但是,什麼是有趣的 現如下。 394 00:19:59,840 --> 00:20:03,810 其實我可以開始 嘗試用此表。 395 00:20:03,810 --> 00:20:07,330 所以,如果我去,然後單擊SQL 選項卡中,我得到這個大文本框。 396 00:20:07,330 --> 00:20:10,190 這不是我們如何去 這樣做在實際編寫代碼。 397 00:20:10,190 --> 00:20:12,700 需要明確的是,phpMyAdmin的 僅僅是一個工具,它是 398 00:20:12,700 --> 00:20:16,450 打算讓我們撥開圍繞數據庫 讓我們嘗試查詢。 399 00:20:16,450 --> 00:20:19,430 >> 因此,例如,假設 我執行的正是這一點。 400 00:20:19,430 --> 00:20:22,820 選擇,這是其中之一 關鍵字我前面提到的,明星, 401 00:20:22,820 --> 00:20:25,900 它代表所有 列在表中。 402 00:20:25,900 --> 00:20:26,820 從什麼表? 403 00:20:26,820 --> 00:20:27,990 那麼,用戶。 404 00:20:27,990 --> 00:20:29,950 並注意有這 奇怪的約定,SQL 405 00:20:29,950 --> 00:20:32,140 在這裡你實際使用 背面蜱,通常, 406 00:20:32,140 --> 00:20:35,940 不是單引號,而不是雙引號 當你談論的表名, 407 00:20:35,940 --> 00:20:38,990 所以後面的報價是對的事 鍵盤的左上角最 408 00:20:38,990 --> 00:20:39,720 有可能。 409 00:20:39,720 --> 00:20:41,850 >> 所以,現在讓我繼續前進 而剛剛離開,僅 410 00:20:41,850 --> 00:20:46,020 向下滾動並單擊Go,我們 究竟要看到同樣的事情。 411 00:20:46,020 --> 00:20:52,410 我們剛剛執行的SQL查詢 他說選擇明星的一切 412 00:20:52,410 --> 00:20:55,610 從表稱為用戶, 你得到的回复是這樣。 413 00:20:55,610 --> 00:20:58,400 最終,我們將能夠 做同樣的事情在代碼中, 414 00:20:58,400 --> 00:21:02,109 但現在我想說的 確實是看到它在我的瀏覽器。 415 00:21:02,109 --> 00:21:03,900 好吧,讓我們做一些事情 有一點不同。 416 00:21:03,900 --> 00:21:08,330 讓我回到了SQL選項卡, 讓我們只想說,什麼? 417 00:21:08,330 --> 00:21:11,520 Zamyla已經失去了她所有的 錢,因此,它是 418 00:21:11,520 --> 00:21:13,190 時間讓我們刪除了她作為一個用戶。 419 00:21:13,190 --> 00:21:14,630 她不再登錄。 420 00:21:14,630 --> 00:21:18,870 >> 所以我要說刪除from-- 好,維護資本 421 00:21:18,870 --> 00:21:23,080 為了保持一致性,刪除 從用戶那裡。 422 00:21:23,080 --> 00:21:25,430 因此,我們可以有這些 謂詞,或者這些 423 00:21:25,430 --> 00:21:31,180 預選賽,在我發言結束 在那裡,我怎麼能刪除Zamyla? 424 00:21:31,180 --> 00:21:34,190 她的名字Zamyla,所以 列,其中一列 425 00:21:34,190 --> 00:21:37,950 被命名的,所以其中name =“Zamyla”。 426 00:21:37,950 --> 00:21:40,000 在這裡,我使用雙 引號或單引號, 427 00:21:40,000 --> 00:21:42,958 你只用背蜱時 談論的名稱,例如, 428 00:21:42,958 --> 00:21:45,130 的表或字段。 429 00:21:45,130 --> 00:21:47,440 讓我點擊轉到這裡。 430 00:21:47,440 --> 00:21:50,400 而現在,網頁是 作為一個小緊張。 431 00:21:50,400 --> 00:21:53,620 >> 或者,你真的要執行刪除 從用戶那裡名稱等於Zamyla? 432 00:21:53,620 --> 00:21:54,680 是。 433 00:21:54,680 --> 00:22:01,900 所以,現在,如果我們回到我的表 通過點擊用戶,請注意,哼。 434 00:22:01,900 --> 00:22:02,530 我瘋玩。 435 00:22:02,530 --> 00:22:04,070 而事實上樣的,我 點擊走這麼快 436 00:22:04,070 --> 00:22:06,195 你甚至不看 紅色的錯誤消息,也許吧。 437 00:22:06,195 --> 00:22:07,649 我做了什麼錯? 438 00:22:07,649 --> 00:22:09,690 聽眾:你沒必要 要利用她的名字。 439 00:22:09,690 --> 00:22:11,260 DAVID J.馬蘭:是的,我 大寫她的名字, 440 00:22:11,260 --> 00:22:13,770 但她的username--其實我 做了幾個錯誤,對吧? 441 00:22:13,770 --> 00:22:16,720 其中,她的用戶名是 zamyla,小寫字母Z, 442 00:22:16,720 --> 00:22:20,140 並且列名是用戶名, 沒有名字,所以讓我們再次做到這一點。 443 00:22:20,140 --> 00:22:25,750 讓我繼續前進, 從用戶那裡刪除 444 00:22:25,750 --> 00:22:28,990 用戶名等於報價引文結束“Zamyla”。 445 00:22:28,990 --> 00:22:29,490 行? 446 00:22:29,490 --> 00:22:32,600 因此,這看起來好一點,讓 我去向下滾動並單擊Go。 447 00:22:32,600 --> 00:22:34,730 它仍然會 罵我是肯定的。 448 00:22:34,730 --> 00:22:37,500 我點擊是的,現在我們看到, 坦率地說這事,真的 449 00:22:37,500 --> 00:22:39,870 快,不到一 第二當然,這 450 00:22:39,870 --> 00:22:41,720 正是得到執行的查詢。 451 00:22:41,720 --> 00:22:45,617 為了確認,讓我點擊用戶 而事實上,現在Zamyla走了。 452 00:22:45,617 --> 00:22:46,700 現在,讓我們做的正好相反。 453 00:22:46,700 --> 00:22:49,320 假設加布希望 註冊該網站。 454 00:22:49,320 --> 00:22:52,825 什麼是SQL查詢,有什麼 命令我可以鍵入要添加加布? 455 00:22:52,825 --> 00:22:54,200 那麼它是相當簡單的。 456 00:22:54,200 --> 00:22:58,260 插入到用戶,而現在 它變得有點神秘。 457 00:22:58,260 --> 00:23:03,190 我需要指定給所述服務器, 哪些領域我想分配。 458 00:23:03,190 --> 00:23:06,630 我真的不關心什麼Gabe的ID 數字是多少,所以我打算跳過。 459 00:23:06,630 --> 00:23:11,360 我不是要說 用戶名,散列,然後 460 00:23:11,360 --> 00:23:14,960 值我想把 那裡將是加布。 461 00:23:14,960 --> 00:23:16,800 然後他的散列,我不知道。 462 00:23:16,800 --> 00:23:19,900 所以現在,我要去 離開,作為一個大的事情。 463 00:23:19,900 --> 00:23:21,650 我們會回來 在這個問題集 464 00:23:21,650 --> 00:23:23,390 規範,如何你真正做到這一點。 465 00:23:23,390 --> 00:23:24,630 >> 所以注意,再次,語法。 466 00:23:24,630 --> 00:23:28,430 插入到表名,然後 字段括號的列表中, 467 00:23:28,430 --> 00:23:30,980 你想要的列添加 值,然後就 468 00:23:30,980 --> 00:23:34,495 完全相同的順序從左 對你要添加的值, 469 00:23:34,495 --> 00:23:36,870 它只是因為包裝 文字是有點長。 470 00:23:36,870 --> 00:23:38,520 所以,現在讓我單擊Go。 471 00:23:38,520 --> 00:23:39,830 一行插入。 472 00:23:39,830 --> 00:23:43,020 而現在,如果我回去 用戶,有什麼有趣的 473 00:23:43,020 --> 00:23:48,960 是,不僅是加布現在在 數據庫,什麼是顯然他的身份證? 474 00:23:48,960 --> 00:23:49,820 >> 那麼它的七人。 475 00:23:49,820 --> 00:23:51,479 為什麼7時,我沒加嗎? 476 00:23:51,479 --> 00:23:54,020 所以這也就是一 功能,你可獲得的數據庫。 477 00:23:54,020 --> 00:23:55,750 很多內置功能。 478 00:23:55,750 --> 00:23:57,950 事實證明,當 在該表中, 479 00:23:57,950 --> 00:24:01,390 我預先配置是自動 以這樣的方式分配一個編號 480 00:24:01,390 --> 00:24:02,480 它遞增。 481 00:24:02,480 --> 00:24:05,470 所以,如果你曾經戳左右, 看著你的Facebook的ID 482 00:24:05,470 --> 00:24:09,292 數字是多少,這些天它不是真的 一個事情,但Facebook作為一個API, 483 00:24:09,292 --> 00:24:11,750 應用程序編程接口, 因此,你可以拿回 484 00:24:11,750 --> 00:24:14,430 約一大堆數據 你自己,你的朋友, 485 00:24:14,430 --> 00:24:15,347 和你聯繫。 486 00:24:15,347 --> 00:24:17,430 而曾經被認為是一種 性涼,早在一天, 487 00:24:17,430 --> 00:24:19,510 是仰視你的 Facebook的ID號了。 488 00:24:19,510 --> 00:24:22,390 馬克·扎克伯格的, 例如,為三 489 00:24:22,390 --> 00:24:23,890 因為他是該網站的作者。 490 00:24:23,890 --> 00:24:27,610 而隨著劇情的推移,他創造 兩個測試帳號,用戶一和二, 491 00:24:27,610 --> 00:24:28,690 他隨後被刪除。 492 00:24:28,690 --> 00:24:32,780 因此,扎克,這是他的用戶名 在Facebook上,是ID號3, 493 00:24:32,780 --> 00:24:36,110 我們大家都有數多 大於3的這些日子。 494 00:24:36,110 --> 00:24:37,980 事實上,在某些時候 Facebook的離開 495 00:24:37,980 --> 00:24:42,410 即使從使用int,這 是一個32位的值,以使用 496 00:24:42,410 --> 00:24:44,480 下一步驟時, 基本上是一個很長很長這樣 497 00:24:44,480 --> 00:24:47,150 它們能夠容納 甚至更多的用戶註冊。 498 00:24:47,150 --> 00:24:49,420 因此,一個有趣的小歷史事實。 499 00:24:49,420 --> 00:24:51,660 >> 所以,這只是 基本語法與 500 00:24:51,660 --> 00:24:54,470 我們可能會執行幾個 查詢,但我們實際上可以 501 00:24:54,470 --> 00:24:56,744 做了一堆更多的事情與SQL。 502 00:24:56,744 --> 00:24:58,910 你會看到,最終, 在問題設置7 503 00:24:58,910 --> 00:25:01,034 你必須做出一個 的設計決定數, 504 00:25:01,034 --> 00:25:03,290 其中將是 使用什麼樣的數據類型。 505 00:25:03,290 --> 00:25:08,240 所以,就像在C,有數據 在一個數據庫類型,如MySQL, 506 00:25:08,240 --> 00:25:12,640 並且數據類型,你必須選擇 從這裡包括這些領域。 507 00:25:12,640 --> 00:25:17,287 CHAR,VARCHAR,INT,大整型,小數 和日期的時間,以及其他許多。 508 00:25:17,287 --> 00:25:18,370 因此,讓我們真正做到這一點。 509 00:25:18,370 --> 00:25:21,060 讓我們假裝我們沒 一方面你這個用戶的表 510 00:25:21,060 --> 00:25:25,080 讓我繼續前進,創造,為 我在講課數據庫 - 511 00:25:25,080 --> 00:25:31,000 居然讓我繼續前進,刪除 表我在這裡已經 512 00:25:31,000 --> 00:25:32,940 這樣我們就可以真正創造這一點。 513 00:25:32,940 --> 00:25:33,550 哎呦。 514 00:25:33,550 --> 00:25:35,970 我要放棄這一 表,現在我 515 00:25:35,970 --> 00:25:38,337 打算再次去了 講課的數據庫在這裡, 516 00:25:38,337 --> 00:25:40,420 我要創建一個表 所謂的用戶,讓我們 517 00:25:40,420 --> 00:25:43,010 只是做三列 最初,然後單擊Go。 518 00:25:43,010 --> 00:25:44,990 >> 現在,在大多數情況下, 再次,這僅僅是 519 00:25:44,990 --> 00:25:48,570 使用這個所謂的圖形化工具 phpMyAdmin的,我們正在做什麼,現在 520 00:25:48,570 --> 00:25:49,600 在創建表。 521 00:25:49,600 --> 00:25:53,170 因此,這又彷彿文件,新建, 並創建一個新的Excel文件。 522 00:25:53,170 --> 00:25:55,440 所以它問我幾 題,從左至右, 523 00:25:55,440 --> 00:25:58,620 什麼是第一列的名稱, 然後將第二列的名稱, 524 00:25:58,620 --> 00:25:59,560 和第三的名稱。 525 00:25:59,560 --> 00:26:00,518 因此,讓我們重新創建。 526 00:26:00,518 --> 00:26:05,460 ID,然後用戶名是1, 然後哈希是另一回事。 527 00:26:05,460 --> 00:26:08,970 那麼,如果數據類型 現在可以像ID的字段? 528 00:26:08,970 --> 00:26:14,470 >> 這裡是數據類型的整個列表 在數據庫中提供給你, 529 00:26:14,470 --> 00:26:16,070 而現在就讓我們一起去整型。 530 00:26:16,070 --> 00:26:18,160 32位的值,我不知道 認為現實的我 531 00:26:18,160 --> 00:26:21,484 將有超過4十億 用戶在我的帳戶,我的服務, 532 00:26:21,484 --> 00:26:23,650 所以我要繼續前進 到下一個問題。 533 00:26:23,650 --> 00:26:25,490 我不打算指定 長度或值, 534 00:26:25,490 --> 00:26:28,540 它不適用 這裡的int本身。 535 00:26:28,540 --> 00:26:30,740 現在我可以指定, 顯然,一個缺省 536 00:26:30,740 --> 00:26:33,970 值,這我不會指定。 537 00:26:33,970 --> 00:26:36,050 排序規則,我不知道那是什麼。 538 00:26:36,050 --> 00:26:37,290 一個屬性。 539 00:26:37,290 --> 00:26:39,455 現在我們實際上做 有一個設計決定。 540 00:26:39,455 --> 00:26:42,580 因此,有幾場在這裡,並不是所有的 它們都是適用的,但無符號 541 00:26:42,580 --> 00:26:43,380 僅僅意味著什麼? 542 00:26:43,380 --> 00:26:45,400 該整數必須是? 543 00:26:45,400 --> 00:26:46,210 只是非負的。 544 00:26:46,210 --> 00:26:48,090 所以它必須是0上起來。 545 00:26:48,090 --> 00:26:51,120 不,我不會去檢查,因為 我希望每個用戶都擁有一個ID, 546 00:26:51,120 --> 00:26:52,470 它不能為空。 547 00:26:52,470 --> 00:26:55,949 然後,我們得到了一些更 有趣的設計決策是這樣的。 548 00:26:55,949 --> 00:26:58,990 我們會回來的這一刻, 數據庫但另一特點 549 00:26:58,990 --> 00:27:04,200 是,是,你可以告訴 數據庫服務器繼續 550 00:27:04,200 --> 00:27:07,100 並優化自己,你的 內存和硬盤空間, 551 00:27:07,100 --> 00:27:11,770 使選擇和插入, 刪除和更新都非常快。 552 00:27:11,770 --> 00:27:13,250 與pset5對比這一點。 553 00:27:13,250 --> 00:27:16,259 >> 如果你想查找的東西 在哈希表,該表 554 00:27:16,259 --> 00:27:18,300 你覺得作為一個數據庫, 誰必須做所有的 555 00:27:18,300 --> 00:27:21,500 為使您的哈希表的快速工作。 556 00:27:21,500 --> 00:27:22,840 這就像,很明顯,你。 557 00:27:22,840 --> 00:27:23,060 對不對? 558 00:27:23,060 --> 00:27:26,080 你必須把所有的時間精 調整外,獲得一個散列函數 559 00:27:26,080 --> 00:27:27,820 沒錯,搞清楚如何 許多水桶有。 560 00:27:27,820 --> 00:27:29,611 >> 但是,什麼是好的,再次, 關於數據庫 561 00:27:29,611 --> 00:27:31,762 你剛才踢所有的 這對其它人 562 00:27:31,762 --> 00:27:33,720 誰曾想到這 通過對你來說,什麼 563 00:27:33,720 --> 00:27:37,170 我要在這裡說下 索引是我的ID字段 564 00:27:37,170 --> 00:27:41,149 將是的主要方式 識別用戶在該數據庫中。 565 00:27:41,149 --> 00:27:42,940 我不會想 Zamyla為Zamyla的, 566 00:27:42,940 --> 00:27:45,800 我會想 她為數字6。 567 00:27:45,800 --> 00:27:49,814 >> 為什麼,或許,更好的 直觀地想和型號 568 00:27:49,814 --> 00:27:52,480 每個使用您的個人行 一個數,而不是其他 569 00:27:52,480 --> 00:27:56,480 像字符串,象Zamyla 或者加布或更長的字符串還是? 570 00:27:56,480 --> 00:27:57,444 是嗎? 571 00:27:57,444 --> 00:28:00,117 >> 聽眾:一個ID是唯一的? 572 00:28:00,117 --> 00:28:01,200 DAVID J.馬蘭:再說一遍嗎? 573 00:28:01,200 --> 00:28:02,283 聽眾:一個ID是唯一的? 574 00:28:02,283 --> 00:28:04,400 DAVID J.馬蘭:一個ID 是唯一的,但suppose-- 575 00:28:04,400 --> 00:28:06,320 如在一般的情況下 與用戶名,假設 576 00:28:06,320 --> 00:28:10,110 我也說只能有1 Zamyla在世界上,只有一個加布。 577 00:28:10,110 --> 00:28:13,730 我可以並處的獨特性 約束對字符串也一樣,如果我想要的。 578 00:28:13,730 --> 00:28:15,550 所以不是一個糟糕的想法。 579 00:28:15,550 --> 00:28:16,500 >> 聽眾:更安全。 580 00:28:16,500 --> 00:28:17,874 >> DAVID J.馬蘭:更安全,為什麼呢? 581 00:28:17,874 --> 00:28:20,705 聽眾:你不能分辨出哪 是,如在該用戶。 582 00:28:20,705 --> 00:28:22,580 DAVID J.馬蘭:OK,你 不能告訴用戶哪些 583 00:28:22,580 --> 00:28:24,380 是所以有 隱私方面的, 584 00:28:24,380 --> 00:28:27,810 特別是如果該標識可能 出現的URL。 585 00:28:27,810 --> 00:28:29,960 這麼肯定,那可能這種工作了。 586 00:28:29,960 --> 00:28:30,640 其他的想法? 587 00:28:30,640 --> 00:28:31,383 是嗎? 588 00:28:31,383 --> 00:28:34,316 >> 聽眾:它更容易 在一個int執行操作。 589 00:28:34,316 --> 00:28:35,940 DAVID J.馬蘭:這是真正的踢球者。 590 00:28:35,940 --> 00:28:38,850 這只是更有效率, 或更容易為計算機, 591 00:28:38,850 --> 00:28:40,431 對整數進行操作。 592 00:28:40,431 --> 00:28:40,930 對不對? 593 00:28:40,930 --> 00:28:43,905 一個int是保證 是32位,而Zamyla 594 00:28:43,905 --> 00:28:47,660 是幾個字符長,加布里埃爾 是幾個字符, 595 00:28:47,660 --> 00:28:51,930 達文波特是很長的,所以它的 沒有特別有效的是使用 596 00:28:51,930 --> 00:28:55,860 要比較的字符串值,並期待 對於字段,更新領域, 597 00:28:55,860 --> 00:28:57,790 如果你能逃脫 只用一個整數。 598 00:28:57,790 --> 00:28:59,090 只有32位。 599 00:28:59,090 --> 00:29:02,570 這樣的用戶名,也通過這種方式, 不必是唯一的, 600 00:29:02,570 --> 00:29:05,040 雖然他們也許應該 是,甚至在這種方式也 601 00:29:05,040 --> 00:29:07,520 用戶可以被允許 改變他或她的用戶名。 602 00:29:07,520 --> 00:29:10,810 >> 現在讓我們離開這個作為 識別用戶的主要手段。 603 00:29:10,810 --> 00:29:13,510 這是告訴數據庫 繼續優化自己 604 00:29:13,510 --> 00:29:17,065 等等的ID查找窗口是超級快。 605 00:29:17,065 --> 00:29:19,620 AI,可怕的命名,只是 指自動遞增, 606 00:29:19,620 --> 00:29:21,500 這是校驗 框,我們需要檢查 607 00:29:21,500 --> 00:29:24,614 指定的ID字段 自動更新對我來說, 608 00:29:24,614 --> 00:29:26,530 然後我要去 滾動到這裡權 609 00:29:26,530 --> 00:29:29,279 坦白說,我真的沒有興趣 在任意多個域。 610 00:29:29,279 --> 00:29:30,630 當然不是今天。 611 00:29:30,630 --> 00:29:33,770 >> 所以,我要回去在這裡, 到第一列,其中 612 00:29:33,770 --> 00:29:35,830 我需要指定用戶名 和散列,讓我們 613 00:29:35,830 --> 00:29:38,080 至少集中於 第二個現在。 614 00:29:38,080 --> 00:29:41,498 INT可能不是正確的判罰, 還等什麼更有意義吧? 615 00:29:41,498 --> 00:29:42,741 >> 聽眾:文本。 616 00:29:42,741 --> 00:29:43,824 DAVID J.馬蘭:再說一遍嗎? 617 00:29:43,824 --> 00:29:44,710 聽眾:文本。 618 00:29:44,710 --> 00:29:44,980 DAVID J.馬蘭:文本? 619 00:29:44,980 --> 00:29:45,590 OK,我聽到的文字。 620 00:29:45,590 --> 00:29:46,090 還有什麼? 621 00:29:46,090 --> 00:29:50,520 622 00:29:50,520 --> 00:29:53,860 樣的,我們有一大堆的選擇 這是文字上的。 623 00:29:53,860 --> 00:29:55,990 所以,什麼時候,為什麼,做 你使用其中的一些? 624 00:29:55,990 --> 00:29:59,560 好吧CHAR,相反你可能會 想,是不是一個單一的字符。 625 00:29:59,560 --> 00:30:01,550 它的字符的特定數目。 626 00:30:01,550 --> 00:30:04,600 因此,如果我們知道,所有的用戶名 必須像八個字, 627 00:30:04,600 --> 00:30:08,490 作為用於在年齡較大的共同 電腦系統,我可​​以說的char 628 00:30:08,490 --> 00:30:09,830 然後我可以在這裡說,8。 629 00:30:09,830 --> 00:30:12,930 這時候,第三列變 適用的創建表的時候。 630 00:30:12,930 --> 00:30:15,450 >> 但是,這是一種煩人 因為有些人可能 631 00:30:15,450 --> 00:30:17,660 希望有一個較長的用戶名 超過八個字符, 632 00:30:17,660 --> 00:30:19,743 有些人可能會想 具有更短的用戶名, 633 00:30:19,743 --> 00:30:22,210 那麼,為什麼自己奉獻 到一個特定號碼? 634 00:30:22,210 --> 00:30:24,710 為什麼不能有一個變量 字符數量和公正 635 00:30:24,710 --> 00:30:28,580 說,一個名稱的最大長度 是的,我不知道,像64個字符。 636 00:30:28,580 --> 00:30:31,780 我想不出任何朋友誰 有超過64個字符的名稱, 637 00:30:31,780 --> 00:30:34,810 即使那是太短,你可以 當然碰到它隨意。 638 00:30:34,810 --> 00:30:37,330 >> 這樣的varchar是可變 字符數。 639 00:30:37,330 --> 00:30:41,010 文字是不是一個壞的本能,和 排序坦言,做什麼它說, 640 00:30:41,010 --> 00:30:45,460 但一個文本字段可以是 像65000字節最少。 641 00:30:45,460 --> 00:30:50,790 這可能是矯枉過正了 場,而事實上,是的,65,535。 642 00:30:50,790 --> 00:30:53,740 這可能是矯枉過正了 名字,所以我們會堅持,通常情況下, 643 00:30:53,740 --> 00:30:56,910 用VARCHAR處理的文本 場和哈希,太。 644 00:30:56,910 --> 00:30:59,990 哈希,事實證明,我們可以做一個 VARCHAR以及之類的東西, 645 00:30:59,990 --> 00:31:03,080 但我們今天不會集中在 加密那裡和數字 646 00:31:03,080 --> 00:31:05,210 我們實際上可能 要使用它的長度。 647 00:31:05,210 --> 00:31:07,430 >> 但讓​​我失望向右滾動。 648 00:31:07,430 --> 00:31:11,280 你只能有一個 為表主索引, 649 00:31:11,280 --> 00:31:16,380 但我想申請任何這些, 現在,用戶名,你會說什麼? 650 00:31:16,380 --> 00:31:21,980 什麼用戶名應該是基於一個模糊 這四個選項的理解? 651 00:31:21,980 --> 00:31:23,340 只是他們的名字? 652 00:31:23,340 --> 00:31:24,140 >> 聽眾:獨特的。 653 00:31:24,140 --> 00:31:25,100 >> DAVID J.馬蘭:所以唯一的,對不對? 654 00:31:25,100 --> 00:31:28,190 所以,事實證明,不僅可以 你告訴一個數據庫,提前, 655 00:31:28,190 --> 00:31:30,380 這是主要的方式 的識別領域。 656 00:31:30,380 --> 00:31:32,990 你也可以說這是 將是一個唯一的字段。 657 00:31:32,990 --> 00:31:34,700 它不會是 我依靠的東西, 658 00:31:34,700 --> 00:31:38,490 但我想數據庫 基本上有,如果條件下,使 659 00:31:38,490 --> 00:31:42,340 如果我曾經試圖註冊 兩個用戶具有相同的名稱, 660 00:31:42,340 --> 00:31:44,360 數據庫平出 不會讓我。 661 00:31:44,360 --> 00:31:47,490 我可能有一些額外的代碼 在PHP中,防止為多, 662 00:31:47,490 --> 00:31:50,640 但數據庫也可以確保 這是永遠不會發生的。 663 00:31:50,640 --> 00:31:53,370 >> 現在,作為一個在旁邊,特別是作為 你想想最後的項目, 664 00:31:53,370 --> 00:31:57,030 記住它索引而進行全 文字實際上是相當有用的。 665 00:31:57,030 --> 00:32:01,080 如果你有一個更大的數據庫,而不是用 幾十個,但與數百或數千 666 00:32:01,080 --> 00:32:05,270 甚至上百萬的領域,你可以 還提前告知數據庫 667 00:32:05,270 --> 00:32:07,980 這是一場我要去 要搜索了很多。 668 00:32:07,980 --> 00:32:10,520 也許它的用戶名, 也許它的生物,如果你 669 00:32:10,520 --> 00:32:13,750 做一個類似Facebook的網站, 具有該用戶的允許的段落 670 00:32:13,750 --> 00:32:16,799 保存,如果你想 提前告知數據庫 671 00:32:16,799 --> 00:32:20,090 我將要尋找在這個領域 很多,但它不一定是唯一的, 672 00:32:20,090 --> 00:32:22,800 您可以指定我創建一個索引。 673 00:32:22,800 --> 00:32:27,990 或者,你也可以說讓我做 排序的任意搜查的命令一樣 674 00:32:27,990 --> 00:32:30,420 或控制樓喜歡你 可能在文字處理, 675 00:32:30,420 --> 00:32:34,184 所以你可以看任意字符串 和子在這個領域。 676 00:32:34,184 --> 00:32:36,600 換句話說,我們得到 在學期點 677 00:32:36,600 --> 00:32:40,720 在這裡你不必擔心 如何高效實現的事情。 678 00:32:40,720 --> 00:32:44,540 你只需要了解什麼 設計決策做出讓你 679 00:32:44,540 --> 00:32:48,470 使用了正確的工具 貿易,以充分利用功能 680 00:32:48,470 --> 00:32:50,380 其他人都為你打造的。 681 00:32:50,380 --> 00:32:54,240 所以要回顧一下,主要應該只 有一個,你只能有一個, 682 00:32:54,240 --> 00:32:59,630 它就是你承諾的東西 用來識別領域唯一。 683 00:32:59,630 --> 00:33:02,710 獨特的是在精神上剛相似,但 你可能只是偶爾使用它, 684 00:33:02,710 --> 00:33:04,530 但你希望數據庫強加於人。 685 00:33:04,530 --> 00:33:08,050 指數只是手段搶先 加快速度,在未來 686 00:33:08,050 --> 00:33:10,230 這樣我可以搜索 物在該區域。 687 00:33:10,230 --> 00:33:13,700 然後全文一般是 段落或短文,或大機構 688 00:33:13,700 --> 00:33:16,270 在那裡,你的文字 也可能希望 689 00:33:16,270 --> 00:33:19,420 通配符像明星的等價物。 690 00:33:19,420 --> 00:33:19,920 右。 691 00:33:19,920 --> 00:33:22,580 >> 所以這是一種 很多的一次。 692 00:33:22,580 --> 00:33:25,220 讓我們來看看,如果我們不能提取 這樣的一些特徵 693 00:33:25,220 --> 00:33:29,540 然後建立一些 相當簡單,但功能強大。 694 00:33:29,540 --> 00:33:31,380 所以其中的其他 你的設計決策 695 00:33:31,380 --> 00:33:34,005 最終將會有沿 存儲引擎的線條。 696 00:33:34,005 --> 00:33:37,370 而讓我補提這個 在期待最後的項目, 697 00:33:37,370 --> 00:33:42,020 與期待讓我們 say--沒有讓我們做到這一點。 698 00:33:42,020 --> 00:33:43,820 讓我們來打造這個小 應用程序第一次。 699 00:33:43,820 --> 00:33:48,070 我要進入我的終端 窗口,並在這裡不 700 00:33:48,070 --> 00:33:52,500 只有counter.php,這是我們現在要 擺脫為不再有密切關係, 701 00:33:52,500 --> 00:33:54,570 但我們有一大堆 目錄和這個的 702 00:33:54,570 --> 00:33:58,080 將是在精神上非常相似 什麼,你會在看到問題設置7。 703 00:33:58,080 --> 00:34:00,980 >> 因此,我們有三個目錄 包括公共和模板, 704 00:34:00,980 --> 00:34:05,040 也正是我們離開的 我們的整個MVC模式(星期一)。 705 00:34:05,040 --> 00:34:09,290 並回顧一下,在公眾還將會持續下去 我希望用戶在任何文件實際 706 00:34:09,290 --> 00:34:12,969 V能夠參觀 通過URL瀏覽器。 707 00:34:12,969 --> 00:34:13,502 模板。 708 00:34:13,502 --> 00:34:14,710 我們沒有把模板是什麼? 709 00:34:14,710 --> 00:34:17,070 什麼樣的東西? 710 00:34:17,070 --> 00:34:21,659 沒有太多,但一對夫婦 至少在星期一的文件。 711 00:34:21,659 --> 00:34:22,619 是啊。 712 00:34:22,619 --> 00:34:23,100 >> 聽眾:頁眉和頁腳? 713 00:34:23,100 --> 00:34:24,516 >> DAVID J.馬蘭:頁眉和頁腳。 714 00:34:24,516 --> 00:34:26,679 所以,我們今天類似的東西了。 715 00:34:26,679 --> 00:34:30,330 我們有幾個文件,但 頁腳我明白了,頭喔, 716 00:34:30,330 --> 00:34:31,909 然後一堆其他文件。 717 00:34:31,909 --> 00:34:35,482 因此,這是等價 在V MVC視圖,其中, 718 00:34:35,482 --> 00:34:37,690 再次,將是一個多一點 明確在問題設置7, 719 00:34:37,690 --> 00:34:40,380 但是這僅僅是一個文件夾,我 投入了很多我的美學。 720 00:34:40,380 --> 00:34:42,840 我的很多的HTML,我的很多形式。 721 00:34:42,840 --> 00:34:46,899 同時,包括,是另一 有這三個文件目錄 722 00:34:46,899 --> 00:34:48,440 讓我們來快速瀏覽一下這些。 723 00:34:48,440 --> 00:34:51,699 >> 我要繼續前進 開放config.php文件。 724 00:34:51,699 --> 00:34:54,610 事實證明,很多 就像前面的名詞, 725 00:34:54,610 --> 00:34:57,850 你犀利包括 CS50點h行駛pset7。 726 00:34:57,850 --> 00:35:00,780 在今天的例子,你會 做的是,等效 727 00:35:00,780 --> 00:35:03,600 有需要聲明 有效地 728 00:35:03,600 --> 00:35:05,340 包括以下幾行。 729 00:35:05,340 --> 00:35:08,225 所以要清楚,這是 一個名為config.php文件。 730 00:35:08,225 --> 00:35:09,350 並注意它在做什麼。 731 00:35:09,350 --> 00:35:11,970 它顯然是在做什麼 神秘,打開錯誤信息 732 00:35:11,970 --> 00:35:13,680 所以,你可以看到他們在瀏覽器中。 733 00:35:13,680 --> 00:35:15,860 它,那麼,顯然 需要其他兩個文件 734 00:35:15,860 --> 00:35:19,530 所以這是像的#include在C中, 然後這一塊我們也看到, 735 00:35:19,530 --> 00:35:22,720 我們已經依靠,這開啟 該購物車一樣的功能。 736 00:35:22,720 --> 00:35:25,610 >> 這意味著cookie將 可以來回發送。 737 00:35:25,610 --> 00:35:27,290 那麼,為什麼這很有趣? 738 00:35:27,290 --> 00:35:32,460 那麼,如果我們回到這個 目錄並打開,例如 739 00:35:32,460 --> 00:35:33,741 constance.php。 740 00:35:33,741 --> 00:35:38,840 請注意,PHP不支持常量, 它不是很喜歡的#define在C. 741 00:35:38,840 --> 00:35:41,290 相反,你從字面上 說的定義,並通知 742 00:35:41,290 --> 00:35:44,110 我已經預先存儲 四個常數在這個文件中。 743 00:35:44,110 --> 00:35:47,020 一個是今天的數據庫,為 我的密碼,我的用戶名, 744 00:35:47,020 --> 00:35:48,690 和服務器的名稱。 745 00:35:48,690 --> 00:35:51,644 因此,這些實際上將是 在問題非常相似設置7。 746 00:35:51,644 --> 00:35:54,560 最後,這就是我 會得到一些不錯的功能 747 00:35:54,560 --> 00:35:59,000 從工作人員,在functions.php文件 是一串代碼,我們已經寫了, 748 00:35:59,000 --> 00:36:01,040 我偷了一些這方面的 從問題設置7 749 00:36:01,040 --> 00:36:05,920 今天,是做了一堆東西 讓我們只看其中一個 750 00:36:05,920 --> 00:36:07,270 特別是。 751 00:36:07,270 --> 00:36:09,720 此功能在這裡, 查詢時,將是 752 00:36:09,720 --> 00:36:13,600 我們調用PHP函數 為了執行SQL。 753 00:36:13,600 --> 00:36:16,070 剛才我們使用 phpMyAdmin的,但是這只是 754 00:36:16,070 --> 00:36:18,720 對於那種學習的目的 和診斷目的 755 00:36:18,720 --> 00:36:20,494 而忘記了你的數據庫集。 756 00:36:20,494 --> 00:36:22,660 當你真正使用 數據庫,你的人, 757 00:36:22,660 --> 00:36:24,100 顯然不會 被拔了網 758 00:36:24,100 --> 00:36:25,740 頁面每次有人註冊。 759 00:36:25,740 --> 00:36:29,870 你會寫代碼, 插入和刪除用戶的需求, 760 00:36:29,870 --> 00:36:32,490 而我們要做到這一點 由查詢功能的方式。 761 00:36:32,490 --> 00:36:35,360 如果我現在向下滾動,有 將是一些更多的功能。 762 00:36:35,360 --> 00:36:37,170 重定向是要 是我們寫了一個函數 763 00:36:37,170 --> 00:36:40,160 為您,讓您 向用戶發送到另一個URL, 764 00:36:40,160 --> 00:36:43,780 和渲染是一個函數,很喜歡 我們看到在週一,實際呈現 765 00:36:43,780 --> 00:36:48,000 一個模板,但更多關於這些的 形式pset7自己的穿行。 766 00:36:48,000 --> 00:36:50,500 現在,讓我們繼續前進,做到這一點。 767 00:36:50,500 --> 00:36:54,860 >> 讓我進入我的演講表 看到有目前沒有 768 00:36:54,860 --> 00:36:59,640 在這裡,只是還沒有,讓我也去 進入我的公開目錄,其中 769 00:36:59,640 --> 00:37:02,780 這裡只有一個文件,index.php文件。 770 00:37:02,780 --> 00:37:06,920 這個文件看起來是超級簡單 此刻,它看起來就像這樣。 771 00:37:06,920 --> 00:37:09,110 很像我們如何 週一不放過。 772 00:37:09,110 --> 00:37:11,945 我需要這個文件, config.php中,這是在 773 00:37:11,945 --> 00:37:15,160 一個包括目錄,該目錄 在點點,我的父母, 774 00:37:15,160 --> 00:37:17,650 然後它只是呈現這個文件。 775 00:37:17,650 --> 00:37:18,960 所以,這是什麼文件? 776 00:37:18,960 --> 00:37:24,700 >> 讓我們在我的模板中打開 form.php的,我們會看到這一點。 777 00:37:24,700 --> 00:37:28,500 超級簡單的,顯然這種形式是 要通過$ _GET或$ _POST提交。 778 00:37:28,500 --> 00:37:29,320 快速完整性檢查。 779 00:37:29,320 --> 00:37:33,760 780 00:37:33,760 --> 00:37:35,690 從字面上直觀地搜索文件。 781 00:37:35,690 --> 00:37:36,610 方法等於職位。 782 00:37:36,610 --> 00:37:39,280 因此,它不會使用的URL,如 谷歌確實,這將排序隱藏 783 00:37:39,280 --> 00:37:41,030 背後的信息 場景和它的 784 00:37:41,030 --> 00:37:43,580 要提交到 所謂register.php文件, 785 00:37:43,580 --> 00:37:45,660 這就是文件 我們還沒有寫 786 00:37:45,660 --> 00:37:47,610 但是,這是怎麼回事 樣子是這樣的。 787 00:37:47,610 --> 00:37:52,670 >> 如果我去到一個單獨的頁面,這是 哪些本地主機/ index.php的樣子。 788 00:37:52,670 --> 00:37:56,930 又一次,在服務器的 只是假設的index.php。 789 00:37:56,930 --> 00:37:57,910 輸入。 790 00:37:57,910 --> 00:37:59,870 所以這就是我們 在和我想要做的 791 00:37:59,870 --> 00:38:02,450 是能夠鍵入東西 像大衛,然後 792 00:38:02,450 --> 00:38:08,050 我的電話號碼,這會說 617-555-1212現在,註冊 793 00:38:08,050 --> 00:38:09,910 現在找不到register.php。 794 00:38:09,910 --> 00:38:11,440 所以,我需要實現這一點。 795 00:38:11,440 --> 00:38:13,320 因此,讓我們迅速掀起 這樣的事情了。 796 00:38:13,320 --> 00:38:18,640 讓我進入我的公開目錄 做register.php的gedit中, 797 00:38:18,640 --> 00:38:22,300 現在我要繼續前進, 啟動PHP模式,就像我們在週一, 798 00:38:22,300 --> 00:38:25,430 並關閉PHP的標籤,並 讓我們做一些事情。 799 00:38:25,430 --> 00:38:28,336 >> 所以一個,我知道,從 寫過這種形式, 800 00:38:28,336 --> 00:38:29,960 我要檢查以下幾點。 801 00:38:29,960 --> 00:38:35,670 如果是空的,無論用戶 鍵入的名稱字段中,然後 802 00:38:35,670 --> 00:38:39,860 我會說些什麼 像道歉失踪的名字。 803 00:38:39,860 --> 00:38:42,380 道歉,同時, 沒有一個內置的PHP的東西, 804 00:38:42,380 --> 00:38:45,970 這是我們寫了一個函數 在functions.php中的pset7 805 00:38:45,970 --> 00:38:47,940 這樣您就可以訪問它。 806 00:38:47,940 --> 00:38:53,830 否則,如果其他領域 為空,數,那麼我 807 00:38:53,830 --> 00:38:58,370 要道歉 用戶說缺數。 808 00:38:58,370 --> 00:38:59,320 保存該文件。 809 00:38:59,320 --> 00:39:02,640 >> 現在,讓我們回到我的瀏覽器, 回到論壇再試一次。 810 00:39:02,640 --> 00:39:04,070 註冊。 811 00:39:04,070 --> 00:39:05,090 行。 812 00:39:05,090 --> 00:39:06,730 什麼都沒有發生,這是很好的。 813 00:39:06,730 --> 00:39:08,120 我沒有得到一個錯誤信息。 814 00:39:08,120 --> 00:39:11,651 但如果相反,讓我們重新加載此 頁面,並且不提供任何東西。 815 00:39:11,651 --> 00:39:12,150 該死的。 816 00:39:12,150 --> 00:39:15,350 817 00:39:15,350 --> 00:39:17,140 做到這一點。 818 00:39:17,140 --> 00:39:18,810 註冊。 819 00:39:18,810 --> 00:39:20,350 我做了什麼錯? 820 00:39:20,350 --> 00:39:24,860 如果為空,$ _ POST名。 821 00:39:24,860 --> 00:39:26,350 再說一遍? 822 00:39:26,350 --> 00:39:27,670 >> 哦,當然。 823 00:39:27,670 --> 00:39:30,919 我忘了最重要的部分,它 是需要(“../包括/ config.php文件”)。 824 00:39:30,919 --> 00:39:34,210 825 00:39:34,210 --> 00:39:36,460 我需要有訪問 抱歉功能, 826 00:39:36,460 --> 00:39:37,770 所以,什麼也沒有發生。 827 00:39:37,770 --> 00:39:39,460 該功能實際上並不存在。 828 00:39:39,460 --> 00:39:40,640 因此,讓我們試試這個了。 829 00:39:40,640 --> 00:39:42,350 讓我們重新加載頁面,點擊註冊。 830 00:39:42,350 --> 00:39:43,060 行。 831 00:39:43,060 --> 00:39:43,770 它就在那裡。 832 00:39:43,770 --> 00:39:45,700 因此,輸出我們 這裡看到的是結果 833 00:39:45,700 --> 00:39:47,685 中調用一個道歉 功能,超級簡單, 834 00:39:47,685 --> 00:39:50,060 它只是打印出什麼 我把它作為一個參數。 835 00:39:50,060 --> 00:39:51,370 >> 好吧,讓我們的合作。 836 00:39:51,370 --> 00:39:54,240 讓我們來為我的名字 像大衛,註冊, 837 00:39:54,240 --> 00:39:56,890 失踪人數確定讓我們 提供這一點。 838 00:39:56,890 --> 00:39:58,650 617-555-1212。 839 00:39:58,650 --> 00:39:59,250 註冊。 840 00:39:59,250 --> 00:39:59,750 行。 841 00:39:59,750 --> 00:40:02,760 所以,一切都很好了,只是沒有 有趣的事情正在發生。 842 00:40:02,760 --> 00:40:06,000 所以,現在讓我們做更多的東西 有趣的發生是這樣的。 843 00:40:06,000 --> 00:40:09,980 讓我進入phpMyAdmin的,讓我們 其實創建一個名為users表, 844 00:40:09,980 --> 00:40:12,330 我要去給它3 列,我會很快 845 00:40:12,330 --> 00:40:16,250 創建ID,然後 名字,然後數, 846 00:40:16,250 --> 00:40:18,832 和ID字段我 要離開為int。 847 00:40:18,832 --> 00:40:20,790 名稱字段我要去 離開為varchar, 848 00:40:20,790 --> 00:40:23,257 我們會說64,有些武斷。 849 00:40:23,257 --> 00:40:25,090 我要去數 做,你知道嗎? 850 00:40:25,090 --> 00:40:27,350 我們正在進入 支持美國的數字在這裡, 851 00:40:27,350 --> 00:40:31,510 所以我打算做的事 像焦炭,然後10個字符 852 00:40:31,510 --> 00:40:34,540 最大的區號 然後七位數。 853 00:40:34,540 --> 00:40:37,870 然後在這裡,我要 指定自動增加這個領域, 854 00:40:37,870 --> 00:40:40,550 使之成為一個主鍵, 我要繼續前進,不 855 00:40:40,550 --> 00:40:42,240 檢查任何其他的盒子。 856 00:40:42,240 --> 00:40:48,030 >> 所以,當我現在終於單擊保存, 我回到我的用戶表, 857 00:40:48,030 --> 00:40:52,270 這是什麼樣子,如果我 現在點擊新標籤結構。 858 00:40:52,270 --> 00:40:54,550 所以這一點,要清楚, 僅僅是phpMyAdmin的的方法 859 00:40:54,550 --> 00:40:58,570 說法數據庫表 有一個ID,名字,和一個數 860 00:40:58,570 --> 00:41:02,040 這些特定的配置 我們會忽略其餘字段 861 00:41:02,040 --> 00:41:03,140 還有現在。 862 00:41:03,140 --> 00:41:04,810 >> 所以,現在我該怎麼想呢? 863 00:41:04,810 --> 00:41:09,060 所以,如果我現在去到我 源代碼,如果一切正常 864 00:41:09,060 --> 00:41:11,190 我想請執行以下查詢。 865 00:41:11,190 --> 00:41:14,970 插入,而我正好可以 用戶說我不嚴格 866 00:41:14,970 --> 00:41:18,620 需要那些背蜱,如果是 不是一個危險的詞像用戶。 867 00:41:18,620 --> 00:41:22,810 我要說的名字, 號,然後在這裡我 868 00:41:22,810 --> 00:41:24,960 不會硬編碼 數字值的呢。 869 00:41:24,960 --> 00:41:26,760 我打算把兩個問號。 870 00:41:26,760 --> 00:41:29,320 這是一個約定 在許多語言 871 00:41:29,320 --> 00:41:31,730 如果你想擁有其中 佔位符的字符串 872 00:41:31,730 --> 00:41:34,105 你要使用的問題 商標,其原因我們將 873 00:41:34,105 --> 00:41:36,370 再來聊聊 安全性,並且在這裡 874 00:41:36,370 --> 00:41:39,420 我要通過這些 兩個字段的名稱後, 875 00:41:39,420 --> 00:41:44,850 然後發布號, 現在保存文件。 876 00:41:44,850 --> 00:41:47,090 >> 而現在我要去 再往這裡是一個超級 877 00:41:47,090 --> 00:41:55,690 簡單地說rendersuccess.php,這 將是另一個模板。 878 00:41:55,690 --> 00:41:57,380 我要創造非常快。 879 00:41:57,380 --> 00:42:06,270 Geditsuccess.php,我只是去 說H1的成功在該文件中。 880 00:42:06,270 --> 00:42:06,990 行。 881 00:42:06,990 --> 00:42:11,312 所以,現在,讓我們回到 瀏覽器,在那裡我參觀之前。 882 00:42:11,312 --> 00:42:14,270 讓我們繼續前進,並確認我寫的 大衛,我寫了一個電話號碼, 883 00:42:14,270 --> 00:42:15,390 註冊。 884 00:42:15,390 --> 00:42:16,100 該死的。 885 00:42:16,100 --> 00:42:17,420 我做了什麼錯? 886 00:42:17,420 --> 00:42:20,850 所以,我看到一個錯誤在這裡,你 在您的SQL語法錯誤。 887 00:42:20,850 --> 00:42:24,900 讓我跳回到gedit中,讓 我回去register.php, 888 00:42:24,900 --> 00:42:28,830 並沒有我忽略了什麼 重要的是最後一次? 889 00:42:28,830 --> 00:42:29,722 我需要這個。 890 00:42:29,722 --> 00:42:32,930 你想知道比其他 拜讀過,但我需要這個。 891 00:42:32,930 --> 00:42:35,596 >> 所以,現在讓我們回去,這 是要看到在瀏覽器有用 892 00:42:35,596 --> 00:42:37,680 這就是為什麼在config.php 我們吐出的錯誤。 893 00:42:37,680 --> 00:42:41,770 讓我們繼續前進,刷新, 點擊繼續,取得成功。 894 00:42:41,770 --> 00:42:47,060 所以,現在讓我去到我 這裡的數據庫,然後單擊用戶, 895 00:42:47,060 --> 00:42:51,680 和瀏覽,而現在通知我 有大衛在我的數據庫在這裡。 896 00:42:51,680 --> 00:42:55,810 現在,技術上這個網站是 還沒有在公共互聯網上, 897 00:42:55,810 --> 00:42:57,890 所以我不能有其他 人們把這裡 898 00:42:57,890 --> 00:43:01,120 但如果我現在想,對於 舉例來說,給自己發送了一條短信。 899 00:43:01,120 --> 00:43:03,920 讓我們去上肢體這裡 看看這個實際工作。 900 00:43:03,920 --> 00:43:07,331 我要繼續前進 並刪除該行 901 00:43:07,331 --> 00:43:09,080 我們將這種模糊 出在視頻購買 902 00:43:09,080 --> 00:43:11,900 所以我們沒有 整個互聯網發短信我, 903 00:43:11,900 --> 00:43:17,270 我們現在會去到 瀏覽器,我們就去了演講 904 00:43:17,270 --> 00:43:22,040 我們會輸入不同 數字在這裡,註冊,取得成功。 905 00:43:22,040 --> 00:43:25,550 >> 所以,現在,我自己的號碼是大概在 數據庫中,現在最有趣的部分。 906 00:43:25,550 --> 00:43:28,774 讓我們實際使用PHP做 編程的東西, 907 00:43:28,774 --> 00:43:30,940 無論是從命令 行或從其他地方, 908 00:43:30,940 --> 00:43:32,773 而現在我只是 要保持簡單 909 00:43:32,773 --> 00:43:36,230 而我要進入我的 在此目錄中,並做到以下幾點。 910 00:43:36,230 --> 00:43:44,920 gedit中的腳本讓我們說,我們將 把它叫做文本,#!/用戶/斌/ env的PHP, 911 00:43:44,920 --> 00:43:46,700 就像我們看到的最後一次。 912 00:43:46,700 --> 00:43:47,950 PHP。 913 00:43:47,950 --> 00:43:55,055 >> 現在我該怎麼辦要求 包括config.php文件, 914 00:43:55,055 --> 00:43:57,360 但這樣做可能 導致一定的誤差。 915 00:43:57,360 --> 00:44:03,960 現在我要繼續前進,說 行查詢,從用戶選擇的明星, 916 00:44:03,960 --> 00:44:08,149 現在在這裡,我會做一個技術 從最後一次為每行的行。 917 00:44:08,149 --> 00:44:09,690 而我要做的事情很簡單。 918 00:44:09,690 --> 00:44:19,090 printf的假設名字是這樣的, 和數量是這樣的,反斜線ñ。 919 00:44:19,090 --> 00:44:23,320 而現在,我要通過 行引用引文結束的名字, 920 00:44:23,320 --> 00:44:28,140 和行報價引文結束數, 現在讓我們繼續 921 00:44:28,140 --> 00:44:31,430 和我的終端窗口 CHMOD此一+ X,使 922 00:44:31,430 --> 00:44:33,970 這個腳本調用可執行文件的文本。 923 00:44:33,970 --> 00:44:36,080 現在,讓我們運行文本。 924 00:44:36,080 --> 00:44:37,590 >> 好了,進步。 925 00:44:37,590 --> 00:44:39,960 所以,我現在已經寫了 命令行腳本, 926 00:44:39,960 --> 00:44:43,300 在一個名為PHP,即語言, 由於需要線 927 00:44:43,300 --> 00:44:46,380 可以訪問所有這些配置 我指定的常量。 928 00:44:46,380 --> 00:44:48,177 數據庫等的名稱。 929 00:44:48,177 --> 00:44:50,260 其實,只是要清楚 這不是僥倖, 930 00:44:50,260 --> 00:44:54,730 讓我繼續前進,登記, 真快,別人喜歡搶 931 00:44:54,730 --> 00:44:58,890 並給他的555-1212號。 932 00:44:58,890 --> 00:45:01,557 >> 而現在,如果我運行腳本 再次,注意電源 933 00:45:01,557 --> 00:45:03,140 是我們正在做的數據庫。 934 00:45:03,140 --> 00:45:07,680 現在我馬上看到什麼 另外兩行是在我的數據庫。 935 00:45:07,680 --> 00:45:10,699 所以,現在讓我們嘗試做一些事情 甚至裡面票友, 936 00:45:10,699 --> 00:45:12,740 這是我們的一部分 事先沒有測試, 937 00:45:12,740 --> 00:45:15,910 所以我最後一次這樣做 事情發生了可怕的出錯, 938 00:45:15,910 --> 00:45:17,120 我們有視頻的效果。 939 00:45:17,120 --> 00:45:18,286 >> 事實上,是的,搞笑的一邊。 940 00:45:18,286 --> 00:45:20,480 所以最後一次,在一個 講課就像兩年前, 941 00:45:20,480 --> 00:45:23,230 我們決定,我決定了,要 這一切都將是一個偉大的想法 942 00:45:23,230 --> 00:45:28,150 動態生成的電子郵件 類,使用整個數據庫CS50 943 00:45:28,150 --> 00:45:33,390 學生,誰給了我們他們的數字 和他們的手機運營商,你 944 00:45:33,390 --> 00:45:36,290 可能還記得pset0, 怎麼講道理,事實證明 945 00:45:36,290 --> 00:45:40,650 我在我的程序中有一個小錯誤,並 在2012年做了幾個錯誤,我想。 946 00:45:40,650 --> 00:45:43,997 >> 由此,一個我曾經for循環 究竟做了這種事情, 947 00:45:43,997 --> 00:45:46,580 遍歷數據庫, 從數據庫中獲取的名稱, 948 00:45:46,580 --> 00:45:49,940 從數據庫的名稱,然後在每個 該循環迭代我發了封電子郵件。 949 00:45:49,940 --> 00:45:54,130 而不是發送一個電子郵件,但是,我 發送一個電子郵件的第一次迭代, 950 00:45:54,130 --> 00:45:58,200 和兩個郵件第二次迭代,發 三封郵件,第二次迭代,這 951 00:45:58,200 --> 00:46:01,230 你可能還記得我們 漸近符號的討論 952 00:46:01,230 --> 00:46:06,400 不好這個大O,如:n的平方 為我發送了多少短信, 953 00:46:06,400 --> 00:46:08,560 但它甚至沒有電子郵件 這是短信。 954 00:46:08,560 --> 00:46:12,070 >> 如你所知,上座率不 超級朝著結束的學期高 955 00:46:12,070 --> 00:46:15,360 所以我認為這將是可愛的 的時候說,“你為什麼不上課嗎?” 956 00:46:15,360 --> 00:46:17,880 在短信我 發送給全班同學, 957 00:46:17,880 --> 00:46:22,140 而這是有趣的喜歡的50% 類,但另外50%,其中一些人 958 00:46:22,140 --> 00:46:26,102 嚇壞了,我送難以置信 歉意的甜蜜音符 959 00:46:26,102 --> 00:46:28,560 工作人員道歉 已經錯過了剛剛​​的演講 960 00:46:28,560 --> 00:46:29,530 這一次,對不對? 961 00:46:29,530 --> 00:46:32,790 962 00:46:32,790 --> 00:46:34,030 >> 這樣就會可怕地歪。 963 00:46:34,030 --> 00:46:37,030 因此,在這樣的精神,讓我們試試這個 再次,只是用我的電話號碼。 964 00:46:37,030 --> 00:46:41,940 事先,在functions.php中, 我在這裡寫了這個功能。 965 00:46:41,940 --> 00:46:44,250 這就是所謂的文本,它 需要三個參數。 966 00:46:44,250 --> 00:46:46,360 一個數字,載體,並發送信息。 967 00:46:46,360 --> 00:46:50,390 >> 我使用一個switch語句,其 奇妙的PHP取字符串,不只是 968 00:46:50,390 --> 00:46:53,350 整數,而我並沒有實現 這所有的一切支持, 969 00:46:53,350 --> 00:46:55,370 我剛剛做了AT&T和Verizon。 970 00:46:55,370 --> 00:46:57,610 因為事實證明 與這些運營商 971 00:46:57,610 --> 00:47:00,570 他們有郵件短信網關, 讓你可以確實 972 00:47:00,570 --> 00:47:05,529 發送電子郵件到一個地址 就像在vtext.com電話號碼 973 00:47:05,529 --> 00:47:08,070 而如果用戶還沒有被阻止 消息,它會通過 974 00:47:08,070 --> 00:47:09,340 是一條短信。 975 00:47:09,340 --> 00:47:13,270 >> 現在要做到這一點,我將要加 一個字段的真快,以我的數據庫。 976 00:47:13,270 --> 00:47:15,470 我要進入 我的結構,我 977 00:47:15,470 --> 00:47:21,880 要繼續前進,並添加 字段在表的末端。 978 00:47:21,880 --> 00:47:25,227 讓我們單擊Go,我 要調用這個載體 979 00:47:25,227 --> 00:47:27,310 而現在我要去 離開這個作為一個欄文本, 980 00:47:27,310 --> 00:47:29,320 但我們可以在未來的票友。 981 00:47:29,320 --> 00:47:31,961 我要趕緊去 進入我的表,我 982 00:47:31,961 --> 00:47:34,210 要擺脫搶的, 因為這是一個假的號碼, 983 00:47:34,210 --> 00:47:38,540 我要進入編輯在這裡和我 要手動更改我的運營商 984 00:47:38,540 --> 00:47:43,410 是Verizon公司,它 是的,現在在這裡。 985 00:47:43,410 --> 00:47:44,980 >> 讓我們做一個快速的完整性檢查。 986 00:47:44,980 --> 00:47:52,730 讓我們打開了我們的文字腳本,該腳本 看起來是這樣,運營商為%s。 987 00:47:52,730 --> 00:47:58,230 我們做了很多的錯誤 檢查比我在2012年,運營商。 988 00:47:58,230 --> 00:48:01,160 而現在,我要去 前進,重新運行該腳本。 989 00:48:01,160 --> 00:48:01,660 行。 990 00:48:01,660 --> 00:48:06,100 開利公司是Verizon公司,這意味著 現在希望我可以做這個。 991 00:48:06,100 --> 00:48:08,360 正確今年以來, 但願,我們開始吧。 992 00:48:08,360 --> 00:48:12,200 >> 所以這個循環裡面,我 將不僅有這個的printf, 993 00:48:12,200 --> 00:48:15,990 我還打算叫文字和 這個函數調用的用法 994 00:48:15,990 --> 00:48:19,670 是它需要一個數字,一個 載體,並發送信息。 995 00:48:19,670 --> 00:48:23,310 所以,讓我們來看看,數量要 是行報價引文結束“號,” 996 00:48:23,310 --> 00:48:31,660 行報價引文結束“航母” 最後一個是消息。 997 00:48:31,660 --> 00:48:36,250 不要搞砸了,今年分號。 998 00:48:36,250 --> 00:48:36,780 >> 行。 999 00:48:36,780 --> 00:48:38,280 手指交叉。 1000 00:48:38,280 --> 00:48:39,970 讓我們來看看,如果這個工程。 1001 00:48:39,970 --> 00:48:41,720 好吧,就這樣。 1002 00:48:41,720 --> 00:48:43,000 開始了。 1003 00:48:43,000 --> 00:48:47,380 讓我們來解鎖手機, 用你的手指,該死的。 1004 00:48:47,380 --> 00:48:50,300 未定義的變量可 - 哦 等待,等待,等待,真正的快速。 1005 00:48:50,300 --> 00:48:51,340 真正的快,真正的快速。 1006 00:48:51,340 --> 00:48:53,380 這是完全值得的。 1007 00:48:53,380 --> 00:48:57,710 讓我搶,我搶,嗯,哦。 1008 00:48:57,710 --> 00:48:59,965 謝謝你的文字有 從別人開始。 1009 00:48:59,965 --> 00:49:04,770 1010 00:49:04,770 --> 00:49:11,650 讓我繼續前進,真正的開放 快速,dropbox.php /郵件在了這裡。 1011 00:49:11,650 --> 00:49:12,660 待機。 1012 00:49:12,660 --> 00:49:14,455 完全值得的。 1013 00:49:14,455 --> 00:49:17,430 下載。 1014 00:49:17,430 --> 00:49:18,560 OK,源src8m。 1015 00:49:18,560 --> 00:49:19,700 行。 1016 00:49:19,700 --> 00:49:21,380 >> 在這裡需要多一個線。 1017 00:49:21,380 --> 00:49:24,530 哦,還有這是,這是在的新生 即時消息,它在寄存器中的三個。 1018 00:49:24,530 --> 00:49:28,820 哦,你好,馬戈,非常感謝你。 1019 00:49:28,820 --> 00:49:31,130 OK,我在這裡失踪的這條線。 1020 00:49:31,130 --> 00:49:33,010 所以讓我趕緊搶 這行代碼, 1021 00:49:33,010 --> 00:49:36,200 其中包括郵件或庫 其實我是想用, 1022 00:49:36,200 --> 00:49:38,300 我要趕緊 返回到功能, 1023 00:49:38,300 --> 00:49:42,337 我要去的這頂 文件並要求該文件為好, 1024 00:49:42,337 --> 00:49:45,420 現在我要真正過我 當我回去的命令手指 1025 00:49:45,420 --> 00:49:49,530 行腳本,這是內部 今天的本地主機目錄。 1026 00:49:49,530 --> 00:49:50,610 運行文本。 1027 00:49:50,610 --> 00:49:52,720 輸入。 1028 00:49:52,720 --> 00:49:53,220 郵件。 1029 00:49:53,220 --> 00:49:53,719 待機。 1030 00:49:53,719 --> 00:49:58,850 1031 00:49:58,850 --> 00:49:59,600 待機。 1032 00:49:59,600 --> 00:50:01,680 郵件。 1033 00:50:01,680 --> 00:50:02,290 哦,好吧。 1034 00:50:02,290 --> 00:50:03,870 開始了。 1035 00:50:03,870 --> 00:50:06,880 >> 郵件獲取新的PHP郵件。 1036 00:50:06,880 --> 00:50:09,970 難道我這樣做對嗎? 1037 00:50:09,970 --> 00:50:11,067 該死的。 1038 00:50:11,067 --> 00:50:12,150 To--哦,等待,等待,等待。 1039 00:50:12,150 --> 00:50:12,649 支持。 1040 00:50:12,649 --> 00:50:15,820 1041 00:50:15,820 --> 00:50:18,630 我保證,這是 將是太值了。 1042 00:50:18,630 --> 00:50:20,340 地址。 1043 00:50:20,340 --> 00:50:24,390 這就是為什麼我不做了 課前右例子。 1044 00:50:24,390 --> 00:50:26,350 唉。 1045 00:50:26,350 --> 00:50:27,910 下列收件人失敗。 1046 00:50:27,910 --> 00:50:31,500 1047 00:50:31,500 --> 00:50:33,040 讓我們嘗試最後一件事。 1048 00:50:33,040 --> 00:50:40,660 從SMTP,添加地址設置, 地址的確是。 1049 00:50:40,660 --> 00:50:43,980 讓我們嘗試在地址的最後一部分。 1050 00:50:43,980 --> 00:50:47,210 唉,我真的很傷心,現在。 1051 00:50:47,210 --> 00:50:47,854 謝謝。 1052 00:50:47,854 --> 00:50:50,270 不過,我真的很感激所有 文本你已經發送。 1053 00:50:50,270 --> 00:50:53,130 1054 00:50:53,130 --> 00:50:56,320 你有這個大衛。 1055 00:50:56,320 --> 00:50:59,310 你吹吧。 1056 00:50:59,310 --> 00:51:01,720 讓我們離開它那裡, 我們將解決在星期一。 1057 00:51:01,720 --> 00:51:04,290 到時候見。 1058 00:51:04,290 --> 00:51:08,090 >> DAVEN FARNHAM:現在深 思考了Daven法納姆。 1059 00:51:08,090 --> 00:51:11,340 1060 00:51:11,340 --> 00:51:17,590 如果一個二進制樹倒在森林中和 周圍沒有人到C它 - [笑著]。 1061 00:51:17,590 --> 00:51:18,998