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 デイビット·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 数分後、彼が決めた これで自身最大1。 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 このURLと、ここでこの劇に向かう。 25 00:01:13,970 --> 00:01:18,810 だから、前置きなしに、今日の私たち Webプログラミングでこの外観を続ける、 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ファイルを吐き出すことによって、またはA 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はインタープリタ言語だし、そう あなたのWeb​​の主な機能の1 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 確かに統計的にで 少なくとも1人は知っている。 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 >> デイビット·J·マラン:パーフェクト。 72 00:03:24,530 --> 00:03:26,488 それは、変数あなたです クエリ文字列に入れて。 73 00:03:26,488 --> 00:03:29,910 だから、私たちの古い例では、 我々が持っていた時にGoogleに再実装 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 値は、本質的にtrueまたはfalseだった。 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 クッキーとセッション、しかし、 我々は効果的になりました表示されます。 104 00:05:07,430 --> 00:05:10,940 最後は、私たちが実装するために使用するものです ショッピングカートの概念。 105 00:05:10,940 --> 00:05:14,480 超簡単1、しかしリコール 私たちがここでこの例を持っていた、 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 右クリックまたはControlでやる Webページ上の任意の場所をクリックすると、 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 ちょうどユーザーとして コンピュータ、クッキーとは何でしょうか? 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 デイビット·J·マラン:OK、良い。 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 >> あなたのように考えることができ、クッキー、 のような一種の、デジタルハンド 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 念のシフト その何もキャッシュされませんされます。 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 私たちが突いたとき、私はFacebookと思う 当時のインスペクタの周りに、 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 そして、ところで、PATH = /、その ちょうどこのクッキーがなければならないことを意味 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 これは、サーバーかのようにFacebookの、 あるいは我々の場合アプライアンスでは、 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 サーバーは、どのように知っているん 私は1時間を訪れたこと? 201 00:09:58,020 --> 00:10:01,730 >> 私は再びそれを行うかどうか、どのようにサーバーを行います 私はそれを2回訪問したことを知っていますか? 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 Googleやアドワーズ広告など、彼ら 自社製品のいずれかを呼び出す 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 提供している真ん中の男があること それらのウェブサイトのすべての3つの広告まで、 234 00:11:58,130 --> 00:12:02,110 それがあることが判明 クッキーは、ドメインあたりの金額です。 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 Harvard.eduウェブの両方に存在する ページやFacebook.comのWebページ、 241 00:12:21,710 --> 00:12:26,850 この真ん中の男は確かにあなたが誰であるかを知っている なぜならこれらのクッキーが共有されているの 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 上のほとんどの任意のWebページにアクセスしてください 本当にインターネットとそれ 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 そしてあなたはクロームまたはIEに行くことに決める または何とクッキーをオフにする? 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 [OK]をクリックします。 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 デイビット·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 あなたが誰であるか覚えの方法がありません、 したがって、Webブラウザではありません 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 購入するとイー·トレードのようなウェブサイト 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 >> 月曜日に、私たちは1年生のIMについて話しました とどのようにバージョンそのウェブサイトのいずれかで、 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ユーザa番号ファイルなら、 290 00:14:41,750 --> 00:14:44,400 またはあなたがGoogle Appsのなら ユーザーはGoogleスプレッドシート、 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 スプレッドシートやGoogleスプレッドシート、 あなたが言語を使用できることです 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 かなり手動でそれを使用する必要はありません あなたはGoogleの一般的かもしれませんが 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は、少なくとも4つを有する あなたが活用することができますステートメント。 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 そのWebサイトまたはWebサーバー、 あなたは宇宙のために払っている可能性があります。 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 Financeというウェブサイト、 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 GoogleにとってGOOG、それ好きになるでしょう Googleの現在の株価をあなたにお返し 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 だから、最初の1 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 ここで次のURLを参照してくださいつもり phpMyAdminにはlocalhost / 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 使用した数値やGoogle スプレッドシートは、ウィンドウを開く 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 その結果、データベースは、最終的には、aは 一つ以上のテーブルを組み合わせ、ある 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 ハッカー版から の問題は、2つのセット 383 00:19:27,070 --> 00:19:29,480 その内部に6行があります。 384 00:19:29,480 --> 00:19:32,720 すべてのベリンダの一つ ウェイダウンZamylaためのものと、 385 00:19:32,720 --> 00:19:35,980 それらの左側に気付く ユーザー名は、1のようなユニークな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 だから、あなたはここで何を参照してください。 すべての6つの暗号化されたバージョン 390 00:19:49,470 --> 00:19:52,950 問題から私たちのパスワードを 2のハッカーエディションを設定してください。 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ことで、そう 列、列の1 425 00:21:34,190 --> 00:21:37,950 名前なので、ここで名前= "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 私はgoofed。 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 デイビット·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 1未満、高速 第二確かに、この 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 私は本当に何ゲイブの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 だから今私は、[移動]をクリックしてみましょう。 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 唯一のゲイブは、今ではないということです データベースには、明らかに彼のIDが何ですか? 474 00:23:48,960 --> 00:23:49,820 >> まあそれは7です。 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 私はそれが自動的に事前設定だ このようにIDを割り当てる 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 番号は、それは本当にありませんこれらの日です 行うための物ですが、APIとしてのFacebook、 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 Mark Zuckerbergはの、 例えば、3個である 489 00:24:22,390 --> 00:24:23,890 彼はサイトの作者だったので。 490 00:24:23,890 --> 00:24:27,610 物語が進むにつれて、彼が作成 2テストアカウント、ユーザーは1と2、 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 偶数整数を使用するから、その 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、大きな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 とのために、私が先に行くと、作成してみましょう 私自身、講義中database-- 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 ちょうど3つの列を行う 最初に、[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 最初の列の名前は何ですか、 第2列の、名前、 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、その後、ユーザー名は、一つであった その後ハッシュは別だった。 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 そして今のところちょうどint型で行きましょう。 530 00:26:16,070 --> 00:26:18,160 32ビット値、私はしないでください 私は現実的に考える 531 00:26:18,160 --> 00:26:21,484 40億以上のものを持っているつもり アカウント内のユーザー、私のサービスで、 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 intはしなければならない? 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 それがnullにすることはできません。 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 そしてあなたの、あなた自身を最適化 RAMとハードディスクの容量、 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 デイビット·J·マランは:もう一度言う? 573 00:28:01,200 --> 00:28:02,283 読者:IDはユニークです? 574 00:28:02,283 --> 00:28:04,400 デイビット·J·マラン:ID ユニークですが、suppose-- 575 00:28:04,400 --> 00:28:06,320 一般的にはケースとして ユーザ名と、仮定し 576 00:28:06,320 --> 00:28:10,110 私も一つだけが存在し得ると述べ 世界で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 >> デイビット·J·マラン:より安全な、なぜですか? 581 00:28:17,874 --> 00:28:20,705 読者:あなたが言うことができない ユーザのように、これは。 582 00:28:20,705 --> 00:28:22,580 デイビット·J·マラン:OK、あなた これをユーザーに伝えることはできません 583 00:28:22,580 --> 00:28:24,380 これはとてもあります それへのプライバシーの側面、 584 00:28:24,380 --> 00:28:27,810 特に多分IDがあれば 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 デイビット·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型が保証され Zamylaのに対し、32ビットであること 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 上の少なくとも焦点 今のところ第1。 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 デイビット·J·マランは:もう一度言う? 617 00:29:43,824 --> 00:29:44,710 聴衆:テキスト。 618 00:29:44,710 --> 00:29:44,980 デイビット·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 だから我々はすべてのユーザー名がわかっている場合 8文字のようにする必要があり、 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 3列目になったときです 表の作成時に該当する。 630 00:30:12,930 --> 00:30:15,450 >> しかし、それは迷惑なのようなものだ 一部の人々は可能性があるため、 631 00:30:15,450 --> 00:30:17,660 長いユーザー名を持ちたい 8文字より、 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 それはのためにおそらく行き過ぎだ フィールド、および実際には、うん、65535。 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 何が曖昧に基づいてユーザー名必要があります これらの4つのオプションの理解? 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 >> デイビット·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 私が今までに登録しようとした場合に 同じ名前を持つ2人のユーザー、 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 あなたのような、またはコントロールF、 ワードプロセッサでかもしれない、 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 だから要約するには、プライマリのみべき 、1を持って、あなただけの1を持つことができます 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 >> だから我々は3つのディレクトリを持っている 、公共およびテンプレートが含まれている 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 IN訪問することができる 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 >> デイビット·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 一方、別のある、含み これらの3つのファイルを持つディレクトリ 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 あなたは鋭い含ま pset7とCS50ドット時間。 726 00:34:57,850 --> 00:35:00,780 今日の例では、つもりだ その同等のものを行うには 727 00:35:00,780 --> 00:35:03,600 必要とwith文 その効果 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 それは明らかに、その後、だ 2他のファイルを必要とする 734 00:35:15,860 --> 00:35:19,530 これは、C言語での#includeのようなものです その後、我々は見たこの1、 735 00:35:19,530 --> 00:35:22,720 そして私たちが頼ってきた、これがオンになり 機能性のようなそのショッピングカート。 736 00:35:22,720 --> 00:35:25,610 >> これはクッキーの意志を意味し 前後に送ること。 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がサポート定数をしていることに注意してください、 それは、Cでかなりの#defineのようではありません 741 00:35:38,840 --> 00:35:41,290 代わりに、文字通り 定義されていると言う、と予告 742 00:35:41,290 --> 00:35:44,110 私は、予め記憶されたこと このファイル内の4つの定数。 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 1つのファイル、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 >> 私のテンプレートで開くしてみましょう 指定すれ、我々はこれを表示されます。 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を使用することはないだろう Googleはそれが非表示の並べ替えになるだろう、い 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 >> 私は別のページに行けばこれがある 何のlocalhost / 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 >> だから1、私は知っているから、 そのフォームを書いた、 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 それは我々が書いた機能だ pset7ためのfunctions.phpで 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 [OK]をクリックします。 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 [OK]をクリックします。 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 欠番OKレッツ あまりにも、それを提供しています。 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 [OK]をクリックします。 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のに行こう、としてみましょう 実際には、ユーザーと呼ばれるテーブルを作成します 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 ので、私は何かをするつもりだ charとその後10文字のような 852 00:40:31,510 --> 00:40:34,540 市外局番マックス その後7桁。 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 私は2つの疑問符を置くつもりです。 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 私はそれらを渡すつもりだ 2つのフィールドは、名前を投稿し、 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のスクリプトは、我々はよ、の言わせて 、テキスト、#!/ユーザーは/ bin / 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の者の名前がこれです言​​わせて、 その数は、この、バックスラッシュnである。 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のこのA + 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 >> [OK]を、そう進行。 925 00:44:37,590 --> 00:44:39,960 だから私は今書いたA コマンドラインスクリプト、 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 今、私はすぐに何を見てきました 他の2行は、私のデータベース内にある。 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 前回だから、中 2年前のように講義、 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 >> それによって、私はループそのために持っていた1 事のちょうどこの種でしたが、 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 しかし、その代わりに1電子メールを送信するのは、私 1メール最初の反復を送った、 950 00:45:54,130 --> 00:45:58,200 二つの電子メール送信された2回目の反復、 3電子メール2回目の反復、どの 951 00:45:58,200 --> 00:46:01,230 あなたは私たちから思い出すかもしれませんように 漸近記法についての議論 952 00:46:01,230 --> 00:46:06,400 nの二乗のような悪いのこの大きなO、 私が送っどのように多くのメッセージである、 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 テキストメッセージ内のI クラス全体に送られ、 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 彼らは、SMSゲートウェイに電子メールを持っている それによってあなたが実際にすることができ 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 ベライゾンであるためには、それ 、そして今ここに超えている。 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 [OK]をクリックします。 990 00:48:01,660 --> 00:48:06,100 キャリアは意味ベライゾン、ある 今うまくいけば私はちょうどこれを行うことができます。 991 00:48:06,100 --> 00:48:08,360 正しく今年、 うまくいけば、ここに私達は行く。 992 00:48:08,360 --> 00:48:12,200 >> だから、このforループの内側に、私は今 これは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 >> [OK]をクリックします。 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 未定義の変数may--ああ 待って、待って、待って、本当に速い。 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 [OK]をクリックします。 1016 00:49:19,700 --> 00:49:21,380 >> ここにもう1行が必要です。 1017 00:49:21,380 --> 00:49:24,530 ああそこにそれは1年生でだ、である IMS、それは3時にレジスタにあります。 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 [OK]を、ああ。 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ファーナム:そして今、ディープ Davenファーナムによって思考。 1059 00:51:08,090 --> 00:51:11,340 1060 00:51:11,340 --> 00:51:17,590 バイナリツリーは、森の中にある場合と、 誰も周りのC it-- [笑い]にはありません。 1061 00:51:17,590 --> 00:51:18,998