1 00:00:00,000 --> 00:00:01,940 >> [音楽再生] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVIDマラン:これはCS 50であり、そして これは週9の始まりです。 4 00:00:14,620 --> 00:00:18,240 そして、何私たちが今日やるだろうと思ってすることはありません 唯一先週の章を閉じる 5 00:00:18,240 --> 00:00:22,670 我々は、サーバーに焦点を当てた材料 PHPとSQLを使用したサイドのWebプログラミング、 6 00:00:22,670 --> 00:00:23,549 一部のデータベースのもの。 7 00:00:23,549 --> 00:00:25,590 我々は少しの話だろう セキュリティ今日その後 8 00:00:25,590 --> 00:00:29,590 クライアント側のプログラミングへの移行 JavaScriptの言語として知られている。 9 00:00:29,590 --> 00:00:31,330 しかし、最初に、いくつかの償還。 10 00:00:31,330 --> 00:00:35,030 >> あなたはそれを上に思い出すかもしれ 水曜日、私が着手 11 00:00:35,030 --> 00:00:37,550 そのウェブサイトを書き込む ユーザの入力にかかった 12 00:00:37,550 --> 00:00:41,120 その後格納されているHTMLフォームによる そのユーザ入力名前、電話 13 00:00:41,120 --> 00:00:43,124 数字、および携帯電話 データベース内のキャリア。 14 00:00:43,124 --> 00:00:45,540 そして私は少しのコマンドを持っていた PHPで書かれた行のスクリプト 15 00:00:45,540 --> 00:00:47,956 そのは反復処理になっていた データベース内の行の上 16 00:00:47,956 --> 00:00:49,400 テキストメッセージを送信します。 17 00:00:49,400 --> 00:00:53,870 いくつかの、いくつかの試みにもかかわらず、私たち 年末までにその作業を取得しませんでした。 18 00:00:53,870 --> 00:00:57,820 >> だから私は働いて、この週全体費やし そのコード上のポイントを過ぎて私たちを取得する 19 00:00:57,820 --> 00:01:01,220 我々は中断したところ、それによってすべて 私は水曜日の終わりまでになった 20 00:01:01,220 --> 00:01:05,500 このテキスト·メッセージはなかった 私は苦労したようマーゴから、 21 00:01:05,500 --> 00:01:09,940 別のテキストメッセージに続いて 同級生、あなたはこのデビッドを持っている。 22 00:01:09,940 --> 00:01:14,030 このいずれかが続く、 素晴らしく心強い。 23 00:01:14,030 --> 00:01:15,840 行くに保たれ、非常に心強い。 24 00:01:15,840 --> 00:01:20,960 私はほとんどthen--までそれを持って、 それは我々が水曜日に終わったノートです。 25 00:01:20,960 --> 00:01:25,850 その後実際に、おそらく私のお気に入り、 一瞬後に、これが入って来た。 26 00:01:25,850 --> 00:01:27,000 くそーストリームライブ。 27 00:01:27,000 --> 00:01:31,080 >> だから、今日、私たちは迅速にこの問題を解決 私は以来、何をやったかを見てください。 28 00:01:31,080 --> 00:01:35,440 したがって、このコードのすべてが利用可能です オンライン先週の、週8から、 29 00:01:35,440 --> 00:01:36,300 ソースコード。 30 00:01:36,300 --> 00:01:39,425 そして、あなたは、私が経験したことがわかります そして私は実際に少し物事をクリーンアップ。 31 00:01:39,425 --> 00:01:42,080 私は他のカップルを導入 SQLデータベースの特徴。 32 00:01:42,080 --> 00:01:45,300 例えば、よりもむしろ ただのvar char型のキャリアを作る 33 00:01:45,300 --> 00:01:47,310 私は先週、その場でやったと思うように。 34 00:01:47,310 --> 00:01:49,820 私の代わりとしてそれを定義した 列挙何と呼ばれています。 35 00:01:49,820 --> 00:01:53,310 >> そして、あなたのいくつかはこれを見たかもしれない 私たちは探求としてC.列挙型は、実際にはある 36 00:01:53,310 --> 00:01:56,820 Cの機能のことができます。 定数の全体の束を列挙 37 00:01:56,820 --> 00:01:59,640 自動の値を割り当てる、 一つ、二つ、三つ、四つのような 38 00:01:59,640 --> 00:02:01,330 ハードコード番号しなくても。 39 00:02:01,330 --> 00:02:04,780 だから、SQLがあればそれによって、同じことをサポートしています あなたが唯一のデータベースフィールドを持っている 40 00:02:04,780 --> 00:02:09,389 有限の1に撮りたい 値は、あなたは文字通りそれを指定することができます 41 00:02:09,389 --> 00:02:13,120 私は4のためにそこに行ったように 米国の人気携帯電話キャリア。 42 00:02:13,120 --> 00:02:13,819 >> だから私はそれをした。 43 00:02:13,819 --> 00:02:16,610 そして、私は、変更の数を作った よく、最も重要なの 44 00:02:16,610 --> 00:02:20,090 メールがリコールための作業を取得することでした、 このプログラムは、どの頼っていること 45 00:02:20,090 --> 00:02:23,470 一般的に電子メールに呼ばれる ただでSMSゲートウェイ、 46 00:02:23,470 --> 00:02:27,670 そのベライゾンを言うの空想の方法、および AT&T、およびその他の人々は、サーバーをサポート 47 00:02:27,670 --> 00:02:30,740 これにより、それが受信した場合 電子メールは、SMSに変換 48 00:02:30,740 --> 00:02:33,290 とテキストを送信します 誰かの携帯電話へのメッセージ。 49 00:02:33,290 --> 00:02:37,010 だから私はこれを正しく行った場合、 ここに新しく改良されたフォームがある 50 00:02:37,010 --> 00:02:39,259 それは話をする予定です 新規で改良されたコードを、それ 51 00:02:39,259 --> 00:02:40,300 あなたがオンラインで遊ぶことができます。 52 00:02:40,300 --> 00:02:44,140 そして、それはうまくいけば、私を行います 一瞬で電話ビープ音。 53 00:02:44,140 --> 00:02:47,240 >> だから最初、私は自分の名前を入力するつもりです。 54 00:02:47,240 --> 00:02:51,400 第二に、私はつもりはない この今回行う。 55 00:02:51,400 --> 00:02:53,920 私は、Elementを点検するつもりです。 56 00:02:53,920 --> 00:02:56,710 そして、これはただです 小さな事ので、私にはありません 57 00:02:56,710 --> 00:02:59,250 ポストプロダクションの時間を作る 私は前回と同じように働く。 58 00:02:59,250 --> 00:03:02,300 今、私の電話番号があります。 59 00:03:02,300 --> 00:03:03,560 >> 私はベライゾンを選択します。 60 00:03:03,560 --> 00:03:10,260 そしてここで、それでは、このマイクをオンにしてみましょう ここで、ここで自分の携帯電話でこれを目指しています。 61 00:03:10,260 --> 00:03:13,130 私は、[登録]をクリックするつもりです これうまくいけべき 62 00:03:13,130 --> 00:03:14,530 データベースにそれを置く。 63 00:03:14,530 --> 00:03:16,780 今私はに行くつもりです コマンドラインプログラム、その 64 00:03:16,780 --> 00:03:20,825 リコールは、ドットスラッシュと呼ばれていた テキスト、およびあなたの指を渡ります。 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 ここに私達は行く。 67 00:03:26,527 --> 00:03:27,501 >> [フォンへこみ] 68 00:03:27,501 --> 00:03:28,962 >> [拍手] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVIDマラン:this--よりだからもっと楽しく 私はそれに入る場合には、もちろん、楽しい。 71 00:03:34,940 --> 00:03:38,004 我々しかし、もしそれが、私が考えた、より楽しい これらの映画の瞬間の一つを作成 72 00:03:38,004 --> 00:03:40,420 ここで何かのように本当に 悪いが、世界で起こっている 73 00:03:40,420 --> 00:03:42,860 そして、すべてのNSAの人々のような 携帯電話は、ビープ音を開始 74 00:03:42,860 --> 00:03:44,860 テキストメッセージ付き この事実にそれらを警告する。 75 00:03:44,860 --> 00:03:47,026 だから私は、私たちがしようと思った ここで同じことを再現する、 76 00:03:47,026 --> 00:03:49,610 データベースを使用しないことにより、 私の代わりに事前に 77 00:03:49,610 --> 00:03:51,490 このようになりますプログラムを書いた。 78 00:03:51,490 --> 00:03:53,660 >> これはindex.php--です と私はオンラインこのコードを置く 79 00:03:53,660 --> 00:03:56,710 well--と明らかに ただ、指定すれレンダリング 80 00:03:56,710 --> 00:04:00,990 我々のMVCスタイルのパラダイムを使用して 問題のあるセットで詳しくについて話す 81 00:04:00,990 --> 00:04:01,650 7。 82 00:04:01,650 --> 00:04:02,910 そのフォームは非常に単純です。 83 00:04:02,910 --> 00:04:06,634 それは、に提出するだろう 郵送here.phpと呼ばれるファイル。 84 00:04:06,634 --> 00:04:09,300 そして、それは明らかに尋ねるために起こっている 名前、電話番号のために、 85 00:04:09,300 --> 00:04:11,400 その後の、いわゆるビア それはだ、メニューを選択 86 00:04:11,400 --> 00:04:14,250 あなたには、少なくとも4つを提供するつもり 米国の人気携帯電話のキャリア、 87 00:04:14,250 --> 00:04:17,470 そして、あなたが効果的にできるようにする こちらをクリックして出席を取る。 88 00:04:17,470 --> 00:04:20,471 >> そしてここで、その間に起こっている 前回からのコードの一部を借りる。 89 00:04:20,471 --> 00:04:22,553 そして、あなたはちょうどこの脱脂した場合、 あなたはそこだということがわかります 90 00:04:22,553 --> 00:04:23,900 エラーチェックの全体の束。 91 00:04:23,900 --> 00:04:26,640 しかし、末尾の美しさはということです 今日は、データベースへの書き込みをしていない。 92 00:04:26,640 --> 00:04:29,130 私たちは、それをシンプルに保つことだと ただ、うまくいけば、発送 93 00:04:29,130 --> 00:04:32,190 関数Iを介してテキストメッセージ ここ数日のコールにわたって書いた 94 00:04:32,190 --> 00:04:36,270 関数内のテキスト、。 PHP、 どのオンライン再び使用可能になった。 95 00:04:36,270 --> 00:04:38,210 >> ので、もしあなたがこの中では参加したいと思います。 96 00:04:38,210 --> 00:04:40,190 私たちは何を格納するつもりはない。 97 00:04:40,190 --> 00:04:43,809 リアルタイムでここに次のURLを参照してください。 98 00:04:43,809 --> 00:04:46,850 まだそれを提出したが、してみましょうしないでください 我々はこれらの映画のいずれかを持つことができる場合を参照してください。 99 00:04:46,850 --> 00:04:49,830 瞬間、みんなの携帯電話 ただ、うまくいけば、ビープ音開始 100 00:04:49,830 --> 00:04:53,580 2011年とは異なり、この年に一度 どこにこれが恐ろしくゆがんで行きました。 101 00:04:53,580 --> 00:04:58,910 そして、あなたはそのアドレスに行く一度、 あなたは、スーパー簡単なフォームが表示されるはずです 102 00:04:58,910 --> 00:05:03,884 その名前を持っている場合、携帯電話 番号、携帯電話キャリア 103 00:05:03,884 --> 00:05:06,175 そこにリストに一致する、行く 先に、フォームに必要事項を記入。 104 00:05:06,175 --> 00:05:07,880 しかし、単にまだ提出ヒットしない。 105 00:05:07,880 --> 00:05:10,850 >> フォームはこのように見えるだろう。 106 00:05:10,850 --> 00:05:13,660 先に行くと入力 お名前、電話番号。 107 00:05:13,660 --> 00:05:17,670 OOPは、誰かが先にカーブのだろう。 108 00:05:17,670 --> 00:05:18,170 それはOKです。 109 00:05:18,170 --> 00:05:19,340 [OK]を、誰もがフォームを記入だ。 110 00:05:19,340 --> 00:05:21,400 これは上で動作するはずです あまりに電話、あなたがしたい場合。 111 00:05:21,400 --> 00:05:23,695 すべての権利、あなたのマークに、行く、セットされます。 112 00:05:23,695 --> 00:05:24,195 ここにヒット。 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 何? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 いいえ。 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 私は、私がテストし、神に誓う この複数回、今日。 119 00:05:40,250 --> 00:05:41,720 あなたはそれを得たか。 120 00:05:41,720 --> 00:05:43,145 >> [VOICESを介在] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVIDマラン:OK、ユーザーエラー、おそらく。 123 00:05:49,560 --> 00:05:50,550 すなわち、2つのです。 124 00:05:50,550 --> 00:05:53,300 これは、中2のために働いた 4,3、数百。 125 00:05:53,300 --> 00:05:55,940 [OK]を、それは良いことだ。 126 00:05:55,940 --> 00:05:58,520 5人のうち4人用 方法については、正しさ。 127 00:05:58,520 --> 00:05:59,810 >> だから、トラブル·イン·ハリウッド? 128 00:05:59,810 --> 00:06:02,727 だからおそらく、あなたを見ずに 画面、なぜそれがエラーの発生したかもしれません? 129 00:06:02,727 --> 00:06:05,518 それは我々がちょうどあったことをおそらく あまりにも多くの接続をしようとし 130 00:06:05,518 --> 00:06:08,110 ハーバード大学のメールサーバーへのすべてで 同じIPアドレスからの回。 131 00:06:08,110 --> 00:06:10,740 私はちょうど私がしなかったので推測している テストの贅沢を持っている 132 00:06:10,740 --> 00:06:13,220 一部では、このコード 事前に300人 133 00:06:13,220 --> 00:06:16,040 今のことを実現する 少なくともべきであること 134 00:06:16,040 --> 00:06:18,250 今回仕事を頂いております。 135 00:06:18,250 --> 00:06:22,880 >> すべての権利、なぜこれが全てです 何が起こっているのかに、より密接に? 136 00:06:22,880 --> 00:06:24,900 さて最初に、迅速な 発表のカップル。 137 00:06:24,900 --> 00:06:29,350 だから、1、あなたはチャンに参加したい場合、および ニック、そして昼食時に他人今週の金曜日、 138 00:06:29,350 --> 00:06:32,400 そこにいつものURLでRSVPを行います。 139 00:06:32,400 --> 00:06:35,650 あなたが集中して考えている場合 中またはCSにおける二次をやって、 140 00:06:35,650 --> 00:06:38,941 あなたは二年生だかどうか、または新入生、 あるいはジュニアやシニア、この時点で 141 00:06:38,941 --> 00:06:42,490 まだコースを絞ることができ、 実現するエンジニアリングスクール、その 142 00:06:42,490 --> 00:06:45,620 無料でベンのために収集され、 ジェリーのアイスクリームとアドバイス 143 00:06:45,620 --> 00:06:48,910 この水曜日直後にクラス CSビルの午後4:00で 144 00:06:48,910 --> 00:06:49,771 マクスウェルドーキンで。 145 00:06:49,771 --> 00:06:51,520 これは速すぎる場合 画面上に、ちょうど行く 146 00:06:51,520 --> 00:06:55,260 のためcs50.harvard.eduする Facebookのイベントへのリンク 147 00:06:55,260 --> 00:06:57,140 あなたはより多くの詳細を見ることができます。 148 00:06:57,140 --> 00:07:01,390 >> 一方、私は修正したいと思った 1他の事は私は水曜日にgoofed。 149 00:07:01,390 --> 00:07:04,400 マルコIDと判明 Facebook上3はありませんでした。 150 00:07:04,400 --> 00:07:05,230 それは4だった。 151 00:07:05,230 --> 00:07:08,330 彼はより多くのテストを持っていたが判明 私が思い出すよりも占めています。 152 00:07:08,330 --> 00:07:12,400 しかし、これは機会のように感じたもの 行うには、このようなURLをプルアップすることです。 153 00:07:12,400 --> 00:07:16,680 >> だから、Facebookが持っていることが判明 API、アプリケーションプログラミングインターフェイス、 154 00:07:16,680 --> 00:07:20,070 それによってあなたメカニズムはある プログラム的にデータを要求することができます 155 00:07:20,070 --> 00:07:24,480 フェイスブックで、マシンを取り戻す 読み取り可能な情報ではなく、ウェブページ 156 00:07:24,480 --> 00:07:28,690 ちょうど生のテキスト、何か JavaScriptのオブジェクト表記法と呼ばれる。 157 00:07:28,690 --> 00:07:32,150 そして、私はこれを実際に訪問し、あれば URL、およびデフォルトでは、ズームイン、 158 00:07:32,150 --> 00:07:34,960 これが公にマルコです アクセス可能な情報。 159 00:07:34,960 --> 00:07:37,430 >> 興味深い細部 ここだけという彼のIDです 160 00:07:37,430 --> 00:07:40,670 確かに4番、あるI とすぐに私はこれをしなかったとしても実現。 161 00:07:40,670 --> 00:07:44,260 あなたが知っている場合は、このを自分で行うことができます 自分のFacebookのユーザー名は、1つを持っている場合。 162 00:07:44,260 --> 00:07:45,440 ちょうどそこにトップにそれを入力します。 163 00:07:45,440 --> 00:07:46,640 そして、これのどれもプライベートではない。 164 00:07:46,640 --> 00:07:48,670 私はちょうどさえこれをやっている シークレットモードで。 165 00:07:48,670 --> 00:07:49,900 だから私もログインしていないよ。 166 00:07:49,900 --> 00:07:54,440 そして、あなたはその私を見ている どうやらユーザ番号6454だった 167 00:07:54,440 --> 00:07:56,480 ではないFacebookの、上 このごろあまりにも悪い。 168 00:07:56,480 --> 00:07:59,900 だから、とにかく、あなたもわかります そこに追加情報。 169 00:07:59,900 --> 00:08:02,150 >> かつ有用な側面 そのことをあなたということです 170 00:08:02,150 --> 00:08:06,890 独自のソフトウェアを書くことができ、その 何とかこのようなデータを統合 171 00:08:06,890 --> 00:08:08,170 独自のアプリケーションに変換する。 172 00:08:08,170 --> 00:08:10,650 あなたはユーザーに権限を与えることができます あなたのウェブサイトにログインし、 173 00:08:10,650 --> 00:08:14,190 独自のカスタムユーザー名を使用していないし、 パスワードが、おそらく自分のFacebookのログイン 174 00:08:14,190 --> 00:08:16,170 さらには情報を得る 彼らの友人についての、 175 00:08:16,170 --> 00:08:18,740 彼らはそのような、または類似のを承認した場合。 176 00:08:18,740 --> 00:08:21,430 そのため、あまりにも、そのCS50に注意してください 独自のAPIのいくつかを持っています、 177 00:08:21,430 --> 00:08:24,620 コー​​スカタログデータ用1、 ダイニングでの抱擁メニューの一部 178 00:08:24,620 --> 00:08:26,730 ホールの全て 建物や場所 179 00:08:26,730 --> 00:08:30,930 キャンパス内に我々としてもためのAPIを持っている あなたは、同様に照会し、得ることができることを 180 00:08:30,930 --> 00:08:35,520 あなたが統合することができ、バックテキストデータ PHP、またはJavaScriptへの、あるいは、 181 00:08:35,520 --> 00:08:38,320 しかしあまり一般的ではないが、 C言語ベースの最終的なプロジェクト。 182 00:08:38,320 --> 00:08:41,190 >> 実際、先に決勝 プロジェクトは、いくつかのマイルストーンである。 183 00:08:41,190 --> 00:08:42,980 あなたは先日弊社からのメールを得た。 184 00:08:42,980 --> 00:08:45,761 提案することを実現する 今度の月曜日原因です。 185 00:08:45,761 --> 00:08:49,010 それは必ずしも拘束力がないですが、あなた あなたの教授仲間を受信する必要がない 186 00:08:49,010 --> 00:08:51,260 作る前に承認 その後何らかの変更。 187 00:08:51,260 --> 00:08:54,280 その後先にある 他のマイルストーンの数。 188 00:08:54,280 --> 00:08:56,542 >> だからあまりにも、あなたをいじめるために、 いくつかの可能性を、 189 00:08:56,542 --> 00:08:58,250 私達はの束を持っている これらの色相電球。 190 00:08:58,250 --> 00:09:01,190 そして君たちのいくつかは、現在いくつかを持っている あなたの寮の部屋でこれらの同様。 191 00:09:01,190 --> 00:09:02,920 そして、彼らはあまりにも、APIを持っています。 192 00:09:02,920 --> 00:09:07,300 だから、それらのバイナリ電球週間リコール 前のあのダン·ブラッドリーとアンセル 193 00:09:07,300 --> 00:09:08,780 ダフは、私たちのために作成しました。 194 00:09:08,780 --> 00:09:12,560 彼らはにソフトウェアインタフェースを使用 現時点ではこの電球、 195 00:09:12,560 --> 00:09:15,232 電気に接続されている その後無線経由 196 00:09:15,232 --> 00:09:17,690 小さなことに接続されている 、ここに橋を下と呼ばれる 197 00:09:17,690 --> 00:09:21,280 少しルータ独自の様 この特定のデバイスに。 198 00:09:21,280 --> 00:09:26,540 >> 私はどのように知っていればそれが判明 我々はすべてが今そうであるように、HTTPメッセージを送信し、 199 00:09:26,540 --> 00:09:31,670 私はこのようなメッセージを送ることができます オンまたはオフにそれを回すためにこの電球 200 00:09:31,670 --> 00:09:34,000 または、任意の数の実行 その上に他の操作。 201 00:09:34,000 --> 00:09:36,110 それが得られないだことに注意してください、それが投稿していない。 202 00:09:36,110 --> 00:09:37,760 プットと呼ばれる別の1があります。 203 00:09:37,760 --> 00:09:39,630 他のいくつかのような動詞が実際にあります。 204 00:09:39,630 --> 00:09:42,920 しかし、パスがあります気づく APIを大幅に削減する、新しい開発者を大幅に削減する、 205 00:09:42,920 --> 00:09:44,990 状態をスラッシュ、1スラッシュ、光を大幅に削減。 206 00:09:44,990 --> 00:09:49,060 >> それは明らかにちょうどです パスその会社、フィリップス、 207 00:09:49,060 --> 00:09:51,640 あなたがヒットする必要がありました HTTP要求に 208 00:09:51,640 --> 00:09:55,010 あなたが状態を変更したい場合 HTTP 1.1を使用して電球の。 209 00:09:55,010 --> 00:09:56,380 その後、空白行に気づく。 210 00:09:56,380 --> 00:10:00,170 その後、最後にどのように見えるか ある種の配列の一種で、 211 00:10:00,170 --> 00:10:04,730 これが再び呼び出されようとしている JavaScriptのオブジェクト表記、またはジェイソン。 212 00:10:04,730 --> 00:10:08,000 そして、何あなたがここで見ることはということです 3キーと値のペアがあります。 213 00:10:08,000 --> 00:10:09,115 >> つのキーがオンと呼ばれています。 214 00:10:09,115 --> 00:10:10,990 どうやら、その値 真であることを行っている。 215 00:10:10,990 --> 00:10:13,612 明るさは128であり、これ int型のいくつかの種類である。 216 00:10:13,612 --> 00:10:15,820 その後遷移時間はある どうやらゼロ、 217 00:10:15,820 --> 00:10:17,970 それがために起こっているどのくらい この事をオンにするために取る。 218 00:10:17,970 --> 00:10:19,890 >> だから、今、この電球がオフになっています。 219 00:10:19,890 --> 00:10:22,880 しかし、私は正確にしましょう​​this--行う場合 私は少しチートシートに行く 220 00:10:22,880 --> 00:10:25,200 ダンはで設定することを advance--と私は行くよ 221 00:10:25,200 --> 00:10:27,920 先に行くと、コピーする 次のコマンドを実行。 222 00:10:27,920 --> 00:10:30,200 カール、あなたのいくつかのように CS50に集められたかもしれない 223 00:10:30,200 --> 00:10:35,080 話し合うTelnetなどのようなユーティリティである あなたがHTTP要求をシミュレートすることができ、 224 00:10:35,080 --> 00:10:36,360 特に置きます。 225 00:10:36,360 --> 00:10:39,710 私はこのデータを送信することができ、 特に私たちだけ 226 00:10:39,710 --> 00:10:43,430 特に先ほど見ました こっちにこのURLへ。 227 00:10:43,430 --> 00:10:46,310 その後カールは、処理するために起こっている 必要なすべてのヘッダー 228 00:10:46,310 --> 00:10:47,600 そこの構文解析。 229 00:10:47,600 --> 00:10:54,700 >> だから私がしなければならないすべては、このことをコピーしている その後、ターミナルウィンドウとEnterキーを押します。 230 00:10:54,700 --> 00:10:56,000 と電球が点灯します。 231 00:10:56,000 --> 00:10:59,060 そして、これはすべて通過している 私のコンピュータをワイヤレス 232 00:10:59,060 --> 00:11:01,960 何とかダウンブリッジに、どの この電球と話している。 233 00:11:01,960 --> 00:11:02,960 私は他の何かを行うことができます。 234 00:11:02,960 --> 00:11:07,050 私はこの事を行うことができます 例えば赤行く。 235 00:11:07,050 --> 00:11:11,040 私は、インスタンスのために作ることができます この事は緑行く。 236 00:11:11,040 --> 00:11:12,220 私はそれが青に行くことができます。 237 00:11:12,220 --> 00:11:14,760 >> これらの各々に気付く インスタンスは、私が変わってきたことのすべて 238 00:11:14,760 --> 00:11:18,540 いわゆる色相値である 実際にいくつかの色を与える。 239 00:11:18,540 --> 00:11:20,320 だから私は、同様に、この1を貼り付けてみましょう。 240 00:11:20,320 --> 00:11:21,000 今では青です。 241 00:11:21,000 --> 00:11:24,672 >> あなたも手の込んだ行うことができます 物事がのが緑に行こうwhere--。 242 00:11:24,672 --> 00:11:26,630 そして、私はこれを行うことができ 私自身のコードを持つコース。 243 00:11:26,630 --> 00:11:30,670 しかし、たとえAPI自体 ファンキーな操作をサポートしています 244 00:11:30,670 --> 00:11:35,510 このような、今わざわざれる 次の30秒間たち。 245 00:11:35,510 --> 00:11:39,170 >> だから、あなたがかもしれないの一つ味だ APIとは、これは関係する 246 00:11:39,170 --> 00:11:40,010 電球。 247 00:11:40,010 --> 00:11:42,510 CS50は、カップルを持っていることに注意してください グーグルグラスのペアあなたが希望の場合 248 00:11:42,510 --> 00:11:45,380 に沿って何かに取り組むのが好き これらのライン、ArduinoのUNOS、どの 249 00:11:45,380 --> 00:11:48,670 小さな小さなコンピュータである、 本質的に、少し回路基板上 250 00:11:48,670 --> 00:11:50,470 あなたが接続できる ワイヤーや他のもの 251 00:11:50,470 --> 00:11:52,732 へと実際に制御 あなたの本当の世界の環境。 252 00:11:52,732 --> 00:11:54,940 その後いくつかあります 我々が持っているの新しいおもちゃ。 253 00:11:54,940 --> 00:11:59,294 この1つは文字通りちょうど到着 メールで先日、ミオの腕章。 254 00:11:59,294 --> 00:12:01,710 そして、私はそれがへの道だと思った プロジェクトについてのあなたが興奮する 255 00:12:01,710 --> 00:12:03,720 あなたが使用する可能性のある このハードウェアだろう 256 00:12:03,720 --> 00:12:08,900 この短いクリップを再生することで 彼らは人々をいじめるために使用すること 257 00:12:08,900 --> 00:12:10,500 我々は今、将来に住んでいること。 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [音楽再生] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVIDマラン:だから、わずか数週間で、あなた あまりにCS50フェアで、そのクールなことができます。 262 00:13:37,109 --> 00:13:39,150 我々の別のデバイス 私たちがしていることの束を持っている 263 00:13:39,150 --> 00:13:42,090 プロジェクトのために貸し出して幸せ モーションコントローラと呼ばれている。 264 00:13:42,090 --> 00:13:45,030 これは小さなUSBデバイスである あなたがコンピュータに接続すること 265 00:13:45,030 --> 00:13:47,520 あなたと対話することができます あなたのラップトップ、MacやPC、 266 00:13:47,520 --> 00:13:51,570 あなたは、XboxのKinectのように持っていたかのように そして実際にははるかに物理的な動きを作る 267 00:13:51,570 --> 00:13:54,509 のような私たちは、この中で参照してください。 未来のビジョン。 268 00:13:54,509 --> 00:13:56,505 >> [音楽再生] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVIDマラン:だからあなたが持っている場合でも、 どのようにそのようなことは考えていない 271 00:15:06,260 --> 00:15:10,050 おそらく発明さや仕事することができた ハードウェアレベルで、どんなに。 272 00:15:10,050 --> 00:15:13,520 でも、CS50のわずか数ヶ月後に、 とプログラミングの理解 273 00:15:13,520 --> 00:15:19,460 より一般的には、ウェブプログラミングより 最近では、その後もAPI、およびHTTP、 274 00:15:19,460 --> 00:15:21,830 あなたが経由でアクセスする必要があります ソフトウェアAPIを使用の場合 275 00:15:21,830 --> 00:15:24,680 これらのいずれかを借りたいです 実際に話をするデバイス 276 00:15:24,680 --> 00:15:27,180 と心配する必要はありません 基本となる実装 277 00:15:27,180 --> 00:15:30,220 完全に詳細、 レイヤリングのこの概念と一致 278 00:15:30,220 --> 00:15:33,610 私たちがした抽象化 学期全体で見られる。 279 00:15:33,610 --> 00:15:37,990 >> だから、また週末に、 ニュースのカップルの部分を見ました。 280 00:15:37,990 --> 00:15:40,640 あなたあればセミナーに行く、最初に行く 何かを学びたい 281 00:15:40,640 --> 00:15:42,160 トピックの任意の数の詳細。 282 00:15:42,160 --> 00:15:43,340 そこのURLを参照してください。 283 00:15:43,340 --> 00:15:45,890 この1つはに送信されました あなたが知っているチャン、によって私、 284 00:15:45,890 --> 00:15:47,850 誰が象の私達の軍隊を印刷だ。 285 00:15:47,850 --> 00:15:49,910 次のように、それは見出した。 286 00:15:49,910 --> 00:15:51,280 私は新しいテレビの恐怖だ。 287 00:15:51,280 --> 00:15:54,301 私は怖いなぜこれをオンにする あなたもなるだろうし、上のもの。 288 00:15:54,301 --> 00:15:56,050 だから我々は、今でている 学期内のポイント、 289 00:15:56,050 --> 00:15:58,860 あまりにも、あなたはどこを持っている場合でも、 理解のわずかな 290 00:15:58,860 --> 00:16:02,620 ウェブがどのように動作するかの、およびHTTP、 やセキュリティ、このようなこと 291 00:16:02,620 --> 00:16:03,980 あなたの目をキャッチする開始する必要があります。 292 00:16:03,980 --> 00:16:07,450 しかし、また、あなたは理解するでしょう これらの事はしているか否か 293 00:16:07,450 --> 00:16:08,430 実際の脅威。 294 00:16:08,430 --> 00:16:10,940 >> だから私は、いくつか抜粋しました ここにこの記事から。 295 00:16:10,940 --> 00:16:12,540 次のように話がある。 296 00:16:12,540 --> 00:16:14,300 私は今の所有者だ 新しいスマートテレビ、どの 297 00:16:14,300 --> 00:16:18,470 ストリーミングを提供することを約束 マルチメディアコンテンツ、ゲーム、アプリ、 298 00:16:18,470 --> 00:16:21,450 ソーシャルメディア、およびインターネット ブラウジング、あまりにもああ、テレビ。 299 00:16:21,450 --> 00:16:24,410 唯一の問題は、私は今だということです それを使用することを恐れて、著者は述べています。 300 00:16:24,410 --> 00:16:29,592 あなたを介して読めば、あなたは、あまりにも、だろう お使いのテレビのための46ページプライバシーポリシー。 301 00:16:29,592 --> 00:16:31,800 このデータの量 事は驚異的である収集します。 302 00:16:31,800 --> 00:16:35,710 それは、どこで、いつ、どのように、そしてログに記録します あなたがテレビを使用してどのくらいの時間のために。 303 00:16:35,710 --> 00:16:38,190 それは、クッキーを追跡設定し、 我々は議論してきたように、 304 00:16:38,190 --> 00:16:40,560 そしてビーコンは、設計された あなたが持っているときを検出する 305 00:16:40,560 --> 00:16:43,185 特定のコンテンツを見たか 特定の電子メールメッセージ 306 00:16:43,185 --> 00:16:45,230 あなたのテレビでメールをチェックしたい場合。 307 00:16:45,230 --> 00:16:48,430 これは、アプリを記録します 使用する、あなたが訪問したWebサイト、 308 00:16:48,430 --> 00:16:52,280 そしてあなたがコンテンツと対話する方法、 あなたのスマートテレビを経由してすべてのことをやって。 309 00:16:52,280 --> 00:16:55,470 またそれは、creepier yet-- それは私のaddition--だ 310 00:16:55,470 --> 00:16:58,140 カメラに内蔵されています 顔認識を持つ。 311 00:16:58,140 --> 00:17:01,010 >> 目的は、提供することです TV用ジェスチャーコントロール 312 00:17:01,010 --> 00:17:05,490 とにログインすることができます あなたの顔を使用してアカウントをパーソナライズ。 313 00:17:05,490 --> 00:17:08,940 逆さまに、イメージがある テレビに保存されている代わりに、アップロードされた 314 00:17:08,940 --> 00:17:09,940 企業のサーバーへ。 315 00:17:09,940 --> 00:17:12,520 下がり気味で、インターネット 接続は全体のテレビを作る 316 00:17:12,520 --> 00:17:14,811 誰がハッカーに対して脆弱 能力を示した 317 00:17:14,811 --> 00:17:16,700 マシンの完全な制御を取る。 318 00:17:16,700 --> 00:17:20,880 >> それではなかったかのように、もっと厄介 十分にスマート、マイクです。 319 00:17:20,880 --> 00:17:23,599 TVは声を誇っています 認識特徴 320 00:17:23,599 --> 00:17:26,859 それは視聴者が制御することができます 音声コマンドで画面。 321 00:17:26,859 --> 00:17:30,290 しかし、サービスが付属しています むしろ不吉な警告。 322 00:17:30,290 --> 00:17:33,030 もしそののでご注意ください あなたの話された言葉は、 323 00:17:33,030 --> 00:17:36,210 個人情報や機密その他 情報は、その情報 324 00:17:36,210 --> 00:17:40,310 キャプチャされたデータの間になります そして第三者に送信​​される。 325 00:17:40,310 --> 00:17:40,870 それを得たか。 326 00:17:40,870 --> 00:17:45,860 個人情報や機密言ってはいけない お使いのテレビの前でもの。 327 00:17:45,860 --> 00:17:47,280 >> だから、これは本当のために実際にある。 328 00:17:47,280 --> 00:17:50,530 そして、それはあなたかどうかを確認するためではないのは難しい テレビ用ベストバイなどに行く 329 00:17:50,530 --> 00:17:51,030 これらの日。 330 00:17:51,030 --> 00:17:52,540 彼らはいくつかの方法で、すべてのスマートだ。 331 00:17:52,540 --> 00:17:54,740 そして、彼らは取得している 賢く、creepier。 332 00:17:54,740 --> 00:17:57,490 そして、彼らは単にデータを収集している 私たちが話をした方法で、 333 00:17:57,490 --> 00:18:01,840 その後、HTTP経由でアップロードするか、 一部のサーバーにいくつかの他のプロトコル。 334 00:18:01,840 --> 00:18:05,720 >> だから、これは楽しい記事であった このオンラインウェブサイトで 335 00:18:05,720 --> 00:18:08,940 ここで、これは話を 特定のバグや誤解コード 336 00:18:08,940 --> 00:18:11,340 私たちは実際に結び付けることができていることを 先週の議論に。 337 00:18:11,340 --> 00:18:15,730 したがって、この見出しのようにだった 以下の、物語はここに、 338 00:18:15,730 --> 00:18:18,720 ジョシュBreckmanはのために働いた 契約を上陸させた会社 339 00:18:18,720 --> 00:18:22,390 コンテンツ管理を開発する システム、またはそれらが呼び出さだとしてCMS、 340 00:18:22,390 --> 00:18:24,380 かなり大規模な政府のウェブサイトのために。 341 00:18:24,380 --> 00:18:27,300 関与プロジェクトの多くは コンテンツ管理システムを開発 342 00:18:27,300 --> 00:18:29,840 従業員がなるように 構築し、維持することができる 343 00:18:29,840 --> 00:18:31,877 刻々と変化する 自分のサイトのコンテンツ。 344 00:18:31,877 --> 00:18:34,210 観光のためにかなりよく行きました ライブ行く数日後。 345 00:18:34,210 --> 00:18:37,020 しかし、6日目に、物事はそれほどうまくいった。 346 00:18:37,020 --> 00:18:39,500 上のコンテンツのすべて ウェブサイトは完全に消えていた。 347 00:18:39,500 --> 00:18:42,950 そして、すべてのページがデフォルトにつながった、 コンテンツのWebページを入力してください。 348 00:18:42,950 --> 00:18:43,810 おっと。 349 00:18:43,810 --> 00:18:46,080 ジョシュはに呼ばれた 調査し、気づいた 350 00:18:46,080 --> 00:18:49,390 特に厄介その1 外部IPアドレスは持っていた 351 00:18:49,390 --> 00:18:53,380 になっとのすべてを削除 システム上のコンテンツ。 352 00:18:53,380 --> 00:18:56,290 >> IPアドレスが属していなかった 一部の海外ハッカー曲がっへ 353 00:18:56,290 --> 00:18:58,340 便利破壊に 政府の情報。 354 00:18:58,340 --> 00:19:05,190 それは、googlebot.comすることを決議 Googleの非常に自身のウェブクロールスパイダー。 355 00:19:05,190 --> 00:19:06,010 おっと。 356 00:19:06,010 --> 00:19:09,150 研究のビットの後にスクランブル 周りnoncorruptバックアップを見つけるために、 357 00:19:09,150 --> 00:19:10,180 ジョシュは、問題を発見した。 358 00:19:10,180 --> 00:19:12,700 >> ユーザーがコピーしたと 1からいくつかのコンテンツを貼り付ける 359 00:19:12,700 --> 00:19:15,670 を含む別のページ、 ハイパーリンクの編集 360 00:19:15,670 --> 00:19:17,577 ページのコンテンツを編集します。 361 00:19:17,577 --> 00:19:20,160 通常、これはではありません 外部ユーザからの問題だろう 362 00:19:20,160 --> 00:19:24,320 名前とパスワードを入力する必要があり、 しかし、CMS認証システム、 363 00:19:24,320 --> 00:19:27,520 ログインシステム、 考慮されていませんでした 364 00:19:27,520 --> 00:19:30,980 洗練されたハッキン​​グ グーグルスパイダーのテクニック。 365 00:19:30,980 --> 00:19:31,700 おっと。 366 00:19:31,700 --> 00:19:33,610 >> 結局のところ、Googleは クモは使用しません 367 00:19:33,610 --> 00:19:36,950 それができることを意味し、クッキー、 簡単のためにチェックを回避 368 00:19:36,950 --> 00:19:39,840 falseに設定されたCookieに記録されます。 369 00:19:39,840 --> 00:19:42,620 それはまたに注意を払わない JavaScriptは、これは通常どおり 370 00:19:42,620 --> 00:19:45,170 プロンプトとユーザをリダイレクト 誰がログインしていません。 371 00:19:45,170 --> 00:19:48,610 しかし、すべての従うん それが見つかったすべてのページ上のハイパーリンク、 372 00:19:48,610 --> 00:19:51,700 を有するものを含む タイトルにページを削除します。 373 00:19:51,700 --> 00:19:52,650 おっと。 374 00:19:52,650 --> 00:19:56,070 >> だから、これはそれ以上において何を意味している テクニカルしかし、かなりアクセス可能な用語? 375 00:19:56,070 --> 00:19:58,340 それはちょうどことを意味します 彼らのウェブサイトを通じて、 376 00:19:58,340 --> 00:20:02,287 彼らはこの1とは異なり、URLをなかったこと あなたは7を設定し、問題に表示されることがあります。 377 00:20:02,287 --> 00:20:04,620 問題でリコールは7を設定 または問題で知っている7を設定 378 00:20:04,620 --> 00:20:06,411 あなたが挑戦していること、 とりわけ、 379 00:20:06,411 --> 00:20:08,570 ユーザーに代わって株式を売却する。 380 00:20:08,570 --> 00:20:14,010 しかし、方法によって、その機能を実装 のユーザーのハイパーリンクを経由して取得 381 00:20:14,010 --> 00:20:16,880 インターフェース、おそらく しない賢いアイデア 382 00:20:16,880 --> 00:20:20,300 あなたのサイトが何らかの形であれば理由 アクセス可能ないずれかの人間による 383 00:20:20,300 --> 00:20:23,577 誰が周りにクリックするか、または買うだ Googleのスパイダーやボットなどの 384 00:20:23,577 --> 00:20:26,160 彼らが呼ばれているようにそれはちょうどだ インデックスにしようとしてウェブをクロール 385 00:20:26,160 --> 00:20:29,060 検索エンジン、ウェブ、 彼らは非常に簡単にできた 386 00:20:29,060 --> 00:20:31,340 URLのこの種を取得経由ヒット。 387 00:20:31,340 --> 00:20:33,770 そしてそれは、機能的だ 同等に、この場合には、 388 00:20:33,770 --> 00:20:37,000 グーグルの全株式を売却。 389 00:20:37,000 --> 00:20:40,030 >> 今率直に言って、それは完全だ 愚かな、そのCMS 390 00:20:40,030 --> 00:20:43,240 使用するJavaScriptとクッキー ログイン·システムを実装する 391 00:20:43,240 --> 00:20:47,100 として、そのサーバ側をしていない 君たちはPSETでやると意志7-- 392 00:20:47,100 --> 00:20:49,940 现在があります file--いつも、いつも、 393 00:20:49,940 --> 00:20:52,789 常にセキュリティがあるべき サーバ側で行われ、 394 00:20:52,789 --> 00:20:56,080 ないクライアント側で、このためなど 記事は示唆しているとあなた自身かもしれない 395 00:20:56,080 --> 00:20:59,600 それは、いくつかの点で参照 、ユーザにとって些細な良いか悪いか、 396 00:20:59,600 --> 00:21:02,860 単にJavaScriptをオフにする クッキーは言うまでもありません。 397 00:21:02,860 --> 00:21:06,020 だから、あなたの毎日WTFです。 398 00:21:06,020 --> 00:21:07,970 >> 1、より多くのものがあります だけの種類の怖いです、 399 00:21:07,970 --> 00:21:11,360 私はあればそれを言及します 人生の教訓としてのみ。 400 00:21:11,360 --> 00:21:14,850 あなたがアプリケーションを使用するたびに Snapchatなどのように呼び出す 401 00:21:14,850 --> 00:21:19,380 それはこれらの写真だけ続くと言う 5秒、10秒、またはその他もろもろ。 402 00:21:19,380 --> 00:21:21,680 彼らは、つまり短命だ 絶対にしない場合。 403 00:21:21,680 --> 00:21:25,670 デジタルで、方法はありませんように、 ビデオのいくつかのフォームを実装するために、 404 00:21:25,670 --> 00:21:30,150 または、画像、またはテキストの共有など そのもう一方の端の受け手 405 00:21:30,150 --> 00:21:31,660 何とかデータを保存することはできません。 406 00:21:31,660 --> 00:21:34,300 >> 最も素朴な方法で、誰 自分の携帯電話を取ることができる。 407 00:21:34,300 --> 00:21:36,850 そして、彼らは10秒のウィンドウを持っている いくつかのスナップを見ながら 408 00:21:36,850 --> 00:21:39,410 単にいくつかの他の電話を取るために 明らかに、それを撮影する。 409 00:21:39,410 --> 00:21:41,660 だから、保存することができます デジタルで何かそのように。 410 00:21:41,660 --> 00:21:44,620 皆さんの中に取る方法を知っている お使いの携帯電話上のスクリーンショット。 411 00:21:44,620 --> 00:21:49,290 実際には、あなたがこれを知らない場合は、 、少なくともSnapchatを実現 412 00:21:49,290 --> 00:21:51,040 そして私は他のと思う アプリケーションこれらの日、 413 00:21:51,040 --> 00:21:53,720 少なくとも、もしあなたを伝える 受信者が実際にあります 414 00:21:53,720 --> 00:21:55,310 あなたの画像のスクリーンショットを撮影し。 415 00:21:55,310 --> 00:22:00,870 >> しかし、さらに悪いことに、これはsnappeningだった、 誰かが最近それを造語として、 416 00:22:00,870 --> 00:22:04,680 ここで、約10万 スナップはリリースされていた 417 00:22:04,680 --> 00:22:09,310 トレントファイルと呼ばれるもので さまざまなウェブサイト上で、最終的には。 418 00:22:09,310 --> 00:22:12,000 これらは全体の束を含んでいた プライベートメッセージや投稿の。 419 00:22:12,000 --> 00:22:15,210 それは、それらのほとんどは良性判明 あなたが期待するかもしれないものではないので。 420 00:22:15,210 --> 00:22:17,580 しかし、人々は持っていたので、 サードパーティのウェブサイトを使用し、 421 00:22:17,580 --> 00:22:20,270 彼らのSnapchatでログイン ユーザー名とパスワード、次に 422 00:22:20,270 --> 00:22:23,470 彼らのスナップのすべてを保存する この第三者のウェブサイト上で。 423 00:22:23,470 --> 00:22:26,130 そして、それは、その第三者だった ハッキングされたウェブサイト、 424 00:22:26,130 --> 00:22:30,710 これだけで、誰かが方法を考え出した意味 それらの画像のすべて10万プラスを取得するには 425 00:22:30,710 --> 00:22:33,822 自分のハードドライブに その後の共有のため。 426 00:22:33,822 --> 00:22:36,030 率直に言って、ここでも、それはソートだ 愚かなことSnapchatの 427 00:22:36,030 --> 00:22:39,360 そのような方法で実装されている 第三者が傍受の並べ替えることができます 428 00:22:39,360 --> 00:22:43,310 データとそれはあなたに縛られないことだ 電話機上で動作する独自のアプリケーション。 429 00:22:43,310 --> 00:22:46,947 しかし、ここで、あまりにも、これらのことを実現 物事は、驚きであなたを捕まえるべきではありません 430 00:22:46,947 --> 00:22:49,030 または少なくともそこにすべき ここでの人生の教訓である。 431 00:22:49,030 --> 00:22:52,220 あなたが技術的にたい場合 詳細は、そこにそのURLにアクセスしてください。 432 00:22:52,220 --> 00:22:53,570 それは、今日のスライドであります。 433 00:22:53,570 --> 00:23:00,960 すべての権利、上の任意の質問 CSでの今日の人生の教訓? 434 00:23:00,960 --> 00:23:02,710 その電源をオフにします。 435 00:23:02,710 --> 00:23:04,970 まったく何? 436 00:23:04,970 --> 00:23:06,301 まったく何? 437 00:23:06,301 --> 00:23:09,050 私がチェックする多くの人々を持っている 今ではSnapchatか何か。 438 00:23:09,050 --> 00:23:11,690 >> すべての権利なので、SQL、 構造化照会言語。 439 00:23:11,690 --> 00:23:12,509 それではこれをラップしてみましょう。 440 00:23:12,509 --> 00:23:14,300 また、たとえ 私達はちょうどスクラッチしている 441 00:23:14,300 --> 00:23:16,310 この表面 言語は、私たちはあなたにあげる 442 00:23:16,310 --> 00:23:18,930 言語の十分な PSET 7の形で 443 00:23:18,930 --> 00:23:22,140 あなたは、いくつかに取り組むことができるように、 かなり共通の機能。 444 00:23:22,140 --> 00:23:24,912 しかし、いくつかありますが実現 私たちはあなたのことを必要としないもの、 445 00:23:24,912 --> 00:23:27,120 しかし、彼らはするつもりだ 重要な最終的なプロジェクトを来る 446 00:23:27,120 --> 00:23:30,760 確かに実際作る来る 実際のユーザーとウェブサイト 447 00:23:30,760 --> 00:23:32,040 この設計上の決定です。 448 00:23:32,040 --> 00:23:34,460 >> それは内と判明 MySQLデータベース、あなた 449 00:23:34,460 --> 00:23:37,460 のような選択肢の束を持っている あなたの列のデータ型 450 00:23:37,460 --> 00:23:41,670 と他のものは、あなたも持っている いわゆるストレージの選択 451 00:23:41,670 --> 00:23:44,570 すべてのデータのためのエンジン、 ファイルシステムの種類、 452 00:23:44,570 --> 00:23:46,700 あなたが精通している場合には、 すべてのデータのために。 453 00:23:46,700 --> 00:23:48,830 どのような形式では、最終的に格納されている? 454 00:23:48,830 --> 00:23:53,300 そして、最も一般的なのは、おそらく、されている MyISAMとInnoDBは、技術用語 455 00:23:53,300 --> 00:23:56,060 我々は唯一気だろうと 1が持っている限り 456 00:23:56,060 --> 00:23:58,500 一つは持っていません 以下の機能。 457 00:23:58,500 --> 00:24:00,390 >> あなたが持っていると仮定し 少し寮の冷蔵庫。 458 00:24:00,390 --> 00:24:03,030 そして、あなたとあなたと仮定する ルームメイト、この冷蔵庫を共有し、 459 00:24:03,030 --> 00:24:04,682 たとえばミルクの本当に好きです。 460 00:24:04,682 --> 00:24:07,140 これは、実際には、どのように 物語は帰り道、私に言われました 461 00:24:07,140 --> 00:24:10,890 私はコースを取った日に CS 161オペレーティングシステムと呼ばれて 462 00:24:10,890 --> 00:24:12,580 同様にこのトピックを探ります。 463 00:24:12,580 --> 00:24:13,760 だから、この冷蔵庫を持っている。 464 00:24:13,760 --> 00:24:14,630 あなたは牛乳の外出。 465 00:24:14,630 --> 00:24:17,000 そして、あなたはあなたのルームメイトの、帰宅 まだクラスまたは何で、 466 00:24:17,000 --> 00:24:19,208 そしてあなたは私が行くよ決める 外に出て、いくつかの牛乳を得る。 467 00:24:19,208 --> 00:24:22,630 あなたは冷蔵庫を閉じるように、ロックアップ 寮の部屋は、通りの向こう側に行く 468 00:24:22,630 --> 00:24:25,330 CVSやどこ、とgetへ 行にいくつかの牛乳を購入する。 469 00:24:25,330 --> 00:24:28,960 >> 一方、あなたのルームメイトは家を取得します クラスから、寮の部屋に入った、 470 00:24:28,960 --> 00:24:31,802 、冷蔵庫を開いても実現 ooph、私たちは牛乳の外出。 471 00:24:31,802 --> 00:24:33,760 そこで彼または彼女が閉じ 冷蔵庫とその後起こる 472 00:24:33,760 --> 00:24:35,610 他のCVSに移動するには、 であることを起こるもの 473 00:24:35,610 --> 00:24:38,470 1ブロック先に他のCVSから 広場で、ラインに入った 474 00:24:38,470 --> 00:24:40,230 そこにいくつかの牛乳を得るために。 475 00:24:40,230 --> 00:24:42,524 さて、もちろん、数分 後で、あなたの両方が、取り戻す 476 00:24:42,524 --> 00:24:44,690 可能なすべての最悪 成果が起こっている。 477 00:24:44,690 --> 00:24:45,792 あなたの両方は、牛乳を持っている。 478 00:24:45,792 --> 00:24:47,500 そして、あなたは本当にありません 牛乳のような多くのこと。 479 00:24:47,500 --> 00:24:49,625 ので、それらの一つだけである いくつかの点で酸味に行く。 480 00:24:49,625 --> 00:24:55,941 だから今は、過剰な量を持っている 冷蔵庫に牛乳のすべての理由のため? 481 00:24:55,941 --> 00:24:57,072 >> [聞こえない] 482 00:24:57,072 --> 00:24:59,780 DAVIDマラン:ええ、あなたはしませんでした 何らかの形で相互に通信する 483 00:24:59,780 --> 00:25:00,904 あなたはミルクを得ていたこと。 484 00:25:00,904 --> 00:25:04,320 最も単純な中のSO 人間界での方法、 485 00:25:04,320 --> 00:25:08,390 どのようにこの愚かを避けるかもしれません そのような出来事からシナリオ 486 00:25:08,390 --> 00:25:09,750 あなたは一つだけで終わること。 487 00:25:09,750 --> 00:25:10,840 それらをテキスト、はい良い。 488 00:25:10,840 --> 00:25:12,877 しかし、どのように他? 489 00:25:12,877 --> 00:25:13,460 ポストイットノート。 490 00:25:13,460 --> 00:25:14,626 DAVIDマラン:付箋。 491 00:25:14,626 --> 00:25:17,150 通信の任意の形式 それはあなたのルームメイトに伝えます 492 00:25:17,150 --> 00:25:18,670 ミルク用の冷蔵庫に入っていません。 493 00:25:18,670 --> 00:25:20,440 私は自分自身で補充に行くつもりです。 494 00:25:20,440 --> 00:25:22,770 だから、何とか必要 このリソースをロックします。 495 00:25:22,770 --> 00:25:27,180 だから我々は、我々は一種の缶this--行うことができます 物語を台無しとCSストーリーに変わる 496 00:25:27,180 --> 00:25:30,360 それとして同じようにと考える いくつかの値を格納する変数。 497 00:25:30,360 --> 00:25:32,570 そして、今、 牛乳の値は、ゼロである 498 00:25:32,570 --> 00:25:35,410 あなたはしたくないもの その変数を検査するルームメイト 499 00:25:35,410 --> 00:25:38,730 その後、決定彼または彼女自身を作る その変数の状態に基づいて 500 00:25:38,730 --> 00:25:42,430 あなたがの過程にいる場合には その変数の状態を変更する。 501 00:25:42,430 --> 00:25:46,140 >> だから我々のSQLの行のいずれかを PSET 7仕様であなたを与える 502 00:25:46,140 --> 00:25:47,310 ここにこの1である。 503 00:25:47,310 --> 00:25:49,740 そして、我々は巨大なを費やすことはありません それについて話した時間。 504 00:25:49,740 --> 00:25:55,100 あなたがしようとしている場合しかし、それは、結局のところ CS50ファイナンスにいくつかの株式を購入する 505 00:25:55,100 --> 00:25:58,000 あなたがすでに持っていること あなた、いくつかの株式 506 00:25:58,000 --> 00:26:01,750 番号を行うことができるようにする 瞬時に一緒に物事の。 507 00:26:01,750 --> 00:26:04,360 次のことができるようにしたい 効果的に、高レベルで、 508 00:26:04,360 --> 00:26:06,700 私がしたい場合は、すべての権利を確認する 無料のより多くの株式を購入するために、 509 00:26:06,700 --> 00:26:08,780 ペニーストック我々 スペックで約話し、 510 00:26:08,780 --> 00:26:10,660 私が最初に確認したい どのように多くの株式を私が持っている。 511 00:26:10,660 --> 00:26:11,810 そして、それは5だと仮定します。 512 00:26:11,810 --> 00:26:14,600 そして、私がしたいとします 私は最終的に、10より多くを購入 513 00:26:14,600 --> 00:26:17,069 株式の15株を持っていると思います。 514 00:26:17,069 --> 00:26:18,360 だから私は2質問をしなければならない。 515 00:26:18,360 --> 00:26:20,230 変数の状態は何ですか? 516 00:26:20,230 --> 00:26:21,470 行の状態は何ですか? 517 00:26:21,470 --> 00:26:22,970 私は現在、どのように多くの株式を持っていますか? 518 00:26:22,970 --> 00:26:24,636 その後、先に行くと、それを更新したいと思います。 519 00:26:24,636 --> 00:26:27,720 だから、アナログだ あなたが行を確認することを牛乳で、 520 00:26:27,720 --> 00:26:30,730 その後、あなたはそれを更新したい あなたは10株を購入したい場合のため、 521 00:26:30,730 --> 00:26:32,521 あなたが変更したくない 10行、あなた 522 00:26:32,521 --> 00:26:35,300 5にそれを変更したい プラス10または、もちろん、15。 523 00:26:35,300 --> 00:26:40,030 >> このコード行は、ことが保証さ これら二つの概念のアイデア 524 00:26:40,030 --> 00:26:42,810 一緒にまたは全く起こる。 525 00:26:42,810 --> 00:26:46,920 他のユーザーを含め誰もいない、 同じウェブサイトにログインしたユーザーを、 526 00:26:46,920 --> 00:26:49,900 何とか中断することができます 行のチェック 527 00:26:49,900 --> 00:26:52,960 と行の更新、 あなたは意志あれば選択してアップデート。 528 00:26:52,960 --> 00:26:57,360 と構文は、スーパー明白ではありません しかし、長い間、この1行は、それがされている、 529 00:26:57,360 --> 00:27:01,150 これらの二つの操作が保証 変数をチェックしたり、行をチェックする 530 00:27:01,150 --> 00:27:04,660 そして行がアトミックに起こる更新します。 531 00:27:04,660 --> 00:27:06,849 >> ああ、ここで我々は再び行く。 532 00:27:06,849 --> 00:27:07,890 自分の携帯電話上のテキストメッセージ。 533 00:27:07,890 --> 00:27:09,954 それでは、このαを作ってみよう もう少し具体的な。 534 00:27:09,954 --> 00:27:12,120 あなたがわからないと仮定する 冷蔵庫を実装 535 00:27:12,120 --> 00:27:16,400 あなたが実装していない PSET 7実際の銀行、 536 00:27:16,400 --> 00:27:20,000 またはATM、現金自動預け払い マシン、それによってあなたを何とか 537 00:27:20,000 --> 00:27:22,960 力を与えることができるようにしたい ユーザーがお金を転送する 538 00:27:22,960 --> 00:27:24,500 一方の口座から別の。 539 00:27:24,500 --> 00:27:25,100 [OK]を、しがみつく。 540 00:27:25,100 --> 00:27:26,683 私はあなたに感謝し、今これをミュートするつもりです。 541 00:27:26,683 --> 00:27:30,450 だから我々はお金を移動したい 1口座番号から 542 00:27:30,450 --> 00:27:33,600 別のアカウントに 番号は、具体的に100ドル。 543 00:27:33,600 --> 00:27:37,690 だから、これは任意の一種である たとえば、それによってあなた、ATM、 544 00:27:37,690 --> 00:27:41,060 2 SQLを実行したい場合があります クエリは、1アカウントから差し引く、 545 00:27:41,060 --> 00:27:42,430 そして、他のアカウントに追加します。 546 00:27:42,430 --> 00:27:46,766 しかし、あなたはこれらのことを確認したい 2行は起こらない、またはまったく両方。 547 00:27:46,766 --> 00:27:48,640 あなたが何かをしたくない 中断ばかり。 548 00:27:48,640 --> 00:27:51,440 あなたは、いくつかのスマートな悪者にはありません 何とかバンク·オブ·アメリカに立っ 549 00:27:51,440 --> 00:27:53,270 前面に2台のATMを持つ 彼の何とか 550 00:27:53,270 --> 00:27:55,270 ソートの中で入力する 同時にコマンド、 551 00:27:55,270 --> 00:28:01,230 うまくいけば、代わりに200ドルを控除しようとしている 100ドルと貸方だけ持つ100ドルの。 552 00:28:01,230 --> 00:28:04,450 要するに、あなたはこれをしたい あなたが期待するとおりに動作します。 553 00:28:04,450 --> 00:28:06,540 >> そして、あなたのやり方 SQLデータベースでこれです 554 00:28:06,540 --> 00:28:09,350 あなたは何でそれを包む トランザクションと呼ばれる。 555 00:28:09,350 --> 00:28:14,290 文字通りSQLで、あなたはCS50のを呼び出すことができます 引用引用終わりスタートでクエリー機能 556 00:28:14,290 --> 00:28:15,370 トランザクション。 557 00:28:15,370 --> 00:28:18,640 その後、任意の数を実行することができます 後続のSQLクエリの、 558 00:28:18,640 --> 00:28:20,870 それらのどれも取らない データベースへの影響 559 00:28:20,870 --> 00:28:25,880 あなたは、クエリ引用引用終わりを呼び出すまで 再びPHPを使用している場合、コミット。 560 00:28:25,880 --> 00:28:29,810 そして、このように、あなたはそれを確保することができます あなたが持っている場合でも、1,000人のユーザーすべて 561 00:28:29,810 --> 00:28:32,080 あなたのデータベースを打つ 同時に、SQL 562 00:28:32,080 --> 00:28:34,540 これらのことをお約束します つのクエリは次のようになります 563 00:28:34,540 --> 00:28:36,740 次々権利を実装しました。 564 00:28:36,740 --> 00:28:40,330 だから、過剰の終わらない 牛乳や間違った量、最終的には、 565 00:28:40,330 --> 00:28:40,830 お金の。 566 00:28:40,830 --> 00:28:43,110 >> だから、これを覚えておく、 PSET 7用そんなにいない 567 00:28:43,110 --> 00:28:45,250 しかし、最終的なプロジェクトのための あなたが実際にしている場合は、 568 00:28:45,250 --> 00:28:49,690 データを移動しようとしている テーブル全体であなたがここかもしれないとして。 569 00:28:49,690 --> 00:28:53,980 しかし、おそらく、よりシンプルで 例を理解することは明白 570 00:28:53,980 --> 00:28:54,860 ここにこの1である。 571 00:28:54,860 --> 00:28:57,760 そして誰かがについて教えて電子メールで送信 このちょうど先日 572 00:28:57,760 --> 00:28:59,600 彼は同じようなオンラインの何かを見たとき。 573 00:28:59,600 --> 00:29:03,480 >> 私の知る限りそのように、ピン方式 この攻撃に対して脆弱ではありません。 574 00:29:03,480 --> 00:29:06,637 それも使用している場合は、私は全く分からない フードの下にSQLデータベース。 575 00:29:06,637 --> 00:29:08,470 しかし、ここでそれを使ってみましょう 議論のために。 576 00:29:08,470 --> 00:29:10,178 ここではその画面です ハーバードの人々は傾向がある 577 00:29:10,178 --> 00:29:13,620 自分でログインしたときに表示する ハーバードのID番号とそのピン。 578 00:29:13,620 --> 00:29:19,020 とピンシステムがあったと仮定し PHPで実装され、MySQLで 579 00:29:19,020 --> 00:29:22,000 データベース、誰かコード 年前に書かれたかもしれない 580 00:29:22,000 --> 00:29:23,270 次のようになります。 581 00:29:23,270 --> 00:29:25,230 まず、aは宣言する ユーザ名と呼ばれる変数。 582 00:29:25,230 --> 00:29:27,560 そして、ちょうどからそれを取得する のPOSTスーパーグローバル。 583 00:29:27,560 --> 00:29:30,140 その後、別の変数を取得する パスワードと呼ばれ、同じことを行う。 584 00:29:30,140 --> 00:29:33,080 そして、ちょうど実行 ここで、この長いクエリ、 585 00:29:33,080 --> 00:29:36,690 ユーザーがどこからスターを選択 ユーザー名は、そのような、そのような等しい 586 00:29:36,690 --> 00:29:38,510 とパスワードは、そのような、そのような等しい。 587 00:29:38,510 --> 00:29:40,660 >> カーリーていることに注意してください 私がここで使ってきた中括弧 588 00:29:40,660 --> 00:29:42,880 ちょうど行く、PHPに意味 先に代替 589 00:29:42,880 --> 00:29:45,400 これら二つの値 右が変数。 590 00:29:45,400 --> 00:29:50,090 彼らは厳密には必要ではないだが、 それらは微妙な構文エラーを回避する傾向がある。 591 00:29:50,090 --> 00:29:53,650 だから、これは完全に見えます 一見正しい。 592 00:29:53,650 --> 00:29:54,240 そして、それはある。 593 00:29:54,240 --> 00:29:56,680 あなたが実装することもできます このようにピン方式。 594 00:29:56,680 --> 00:30:00,460 >> しかし、スーパーと仮定 スマートかつ悪質な生徒 595 00:30:00,460 --> 00:30:03,020 彼または彼女のピンなどの入力これを。 596 00:30:03,020 --> 00:30:05,550 だから私は弾丸を削除しました ここでモックアップにサイン、 597 00:30:05,550 --> 00:30:08,760 そして私は実際に明らかにしてきた どのような彼または彼女はタイプすることがあります。 598 00:30:08,760 --> 00:30:10,350 そして、それは少し奇妙だ。 599 00:30:10,350 --> 00:30:13,850 しかし、どのような潜在的にあなたに飛び出す ユーザの入力に関する気になる、 600 00:30:13,850 --> 00:30:16,450 あなたは何見当がつかない場合でも、 SQLインジェクション攻撃は意味します。 601 00:30:16,450 --> 00:30:20,300 なぜこれがちょっと怪しいものですか? 602 00:30:20,300 --> 00:30:21,050 何それ? 603 00:30:21,050 --> 00:30:21,550 [聞こえない] 604 00:30:21,550 --> 00:30:24,260 DAVIDマラン:またはある 少し疑わしい。 605 00:30:24,260 --> 00:30:26,310 実際には、それは、SQLからキーワードです。 606 00:30:26,310 --> 00:30:28,105 だから、良い前兆はありません。 607 00:30:28,105 --> 00:30:29,980 そこにあるという事実 これらすべての単一引用符 608 00:30:29,980 --> 00:30:32,646 実際にthere--、最も簡単なの一つ 一部のデータベースを破るための方法 609 00:30:32,646 --> 00:30:35,880 オライリーのような名前を入力することである それはそれでアポストロフィを持って 610 00:30:35,880 --> 00:30:38,600 人間が書いたかした場合のため 舞台裏コード 611 00:30:38,600 --> 00:30:41,570 を考慮していないことがある ユーザーの中に単一引用符かもしれない 612 00:30:41,570 --> 00:30:45,060 入力、彼または彼女が使用していると 自分のコード内の単一引用符、 613 00:30:45,060 --> 00:30:46,040 悪い事が起こる可能性があります。 614 00:30:46,040 --> 00:30:47,870 >> 実際には、さらに悪いことに、これを検討してください。 615 00:30:47,870 --> 00:30:50,600 これは、再びコードだった場合 ハーバード年で、その誰か 616 00:30:50,600 --> 00:30:53,100 前ピンのために書いた システム、何に注目してください 617 00:30:53,100 --> 00:30:56,220 置換GETに約 ユーザ名とパスワードの入力 618 00:30:56,220 --> 00:30:59,780 再度ユーザーがいる場合 自分のユーザ名としてskroob 619 00:30:59,780 --> 00:31:03,960 その後、一つ、二つ、三つ、四つ、五つ、 1等号引用終わり引用符または引用 620 00:31:03,960 --> 00:31:04,660 引用1。 621 00:31:04,660 --> 00:31:07,220 とキー何に気づく ここにユーザーがいないです 622 00:31:07,220 --> 00:31:09,900 自分のパスワードを起動または 引用とのピン。 623 00:31:09,900 --> 00:31:12,610 そして、彼らはそれを終了していない 引用付きなぜなら、彼または彼女 624 00:31:12,610 --> 00:31:16,315 と仮定されている場合 プログラマは、とてもシャープではなかった 625 00:31:16,315 --> 00:31:18,690 彼らはそれらを持っているつもりされている 自分のコード内の単一引用符。 626 00:31:18,690 --> 00:31:19,860 >> だからここのコードです。 627 00:31:19,860 --> 00:31:23,820 と置換すること 今これです起こるかもしれません。 628 00:31:23,820 --> 00:31:26,350 そして、私は何を強調してきた そのユーザは入力した。 629 00:31:26,350 --> 00:31:28,480 だから、前、後。 630 00:31:28,480 --> 00:31:33,330 そして今、穏やかに気になる何に気づく このSQLコードの右半分はどうですか? 631 00:31:33,330 --> 00:31:36,300 それは、確かに、もう少し複雑だ 私たちが見てきたクエリより。 632 00:31:36,300 --> 00:31:38,550 しかし、これはおそらくできない あなたがいるなら良いこと 633 00:31:38,550 --> 00:31:42,240 選択され、選択の星を、と言って ユーザーの表からすべて 634 00:31:42,240 --> 00:31:46,630 ユーザ名はskroobに等しいと パスワードが1つ、2つ、3つ、4に等しい 635 00:31:46,630 --> 00:31:49,610 5または1 1に等しい。 636 00:31:49,610 --> 00:31:53,860 論理的な含意は何ですか おそらくその最後の節の? 637 00:31:53,860 --> 00:31:55,650 それはちょうど、常に本当だ。 638 00:31:55,650 --> 00:31:59,930 >> そして、我々はある種の推測しているので、 または試行錯誤によって考え出し 639 00:31:59,930 --> 00:32:02,760 そのプログラマは誰 書いたこのコードはしませんでした 640 00:32:02,760 --> 00:32:07,250 ヒトまたは悪い人を予想 同様に、単一引用符を入力し、 641 00:32:07,250 --> 00:32:10,350 我々は構文的にすることができます SQLクエリを完了 642 00:32:10,350 --> 00:32:12,260 無意味な何かを持つ しかし、何かその 643 00:32:12,260 --> 00:32:15,930 文法的に間違っています それは常にtrueと評価されます。 644 00:32:15,930 --> 00:32:19,130 したがって、このコードは、応答するために使用されている場合 質問trueまたはfalse必要があります 645 00:32:19,130 --> 00:32:22,930 このユーザーは、通過させる 答えは常に明らかになるだろう 646 00:32:22,930 --> 00:32:26,930 真であると、これは常に起こっているので、 データベースから何かを選択する 647 00:32:26,930 --> 00:32:29,280 もちろん、一つは常に1に等しいからである。 648 00:32:29,280 --> 00:32:30,360 >> だから、解決策は何ですか? 649 00:32:30,360 --> 00:32:33,290 さてPSET 7で、実際に私たち すべて一緒にこれを避ける。 650 00:32:33,290 --> 00:32:37,360 私たちはあなたのクエリ機能を与え、私たち 疑問符を使用することをお勧めします 651 00:32:37,360 --> 00:32:40,430 プレースホルダとして、類似した printfのの%sに精神で、 652 00:32:40,430 --> 00:32:43,710 しかし疑問符約キー何 あなたが実際に通って読めばここにある 653 00:32:43,710 --> 00:32:46,950 のfunctions.php、ここで私たちの クエリ機能は、実装されている 654 00:32:46,950 --> 00:32:52,780 これらのクエスチョンマークがエスケープされ、 それによって潜在的に危険なもの 655 00:32:52,780 --> 00:32:58,210 単一引用符をになっているように エスケープ単一引用符に変換する。 656 00:32:58,210 --> 00:33:00,590 >> だから、これは何です 本当にあれば何が起こっ 657 00:33:00,590 --> 00:33:04,850 CS50のクエリ機能や、任意の数を使用 サードパーティのライブラリを無料のもの 658 00:33:04,850 --> 00:33:06,000 同じことを行う。 659 00:33:06,000 --> 00:33:09,850 緑色で、この場合は問題ではありません ユーザーは、単一引用符で入力している場合 660 00:33:09,850 --> 00:33:12,070 クエリ理由 私たちが書いた関数である 661 00:33:12,070 --> 00:33:15,120 前にバックスラッシュを追加しよう そのような危険な引用。 662 00:33:15,120 --> 00:33:17,360 だから、これはでは、ありません 事実は、合法的になるだろう。 663 00:33:17,360 --> 00:33:20,910 これは見て狂っを入力するようなものです もちろん、行くのではないパスワード 664 00:33:20,910 --> 00:33:23,490 skroobの実際のパスワードであると。 665 00:33:23,490 --> 00:33:28,260 >> だから、CS50用の持ち帰りは、1である 絶対にいつも何かを使用 666 00:33:28,260 --> 00:33:30,860 CS50のクエリ機能のような または基礎ライブラリ、 667 00:33:30,860 --> 00:33:32,560 これは、PDOと呼ばれるように起こります。 668 00:33:32,560 --> 00:33:35,880 しかし、決して、決して、 このようなコードを実行することはありません 669 00:33:35,880 --> 00:33:39,472 エスケープやスクラブなし 彼らはあなたの入力を言うように。 670 00:33:39,472 --> 00:33:42,430 そして、あなたは、おそらくいくつかの点で意志 このようないくつかのウェブサイトに出くわす。 671 00:33:42,430 --> 00:33:46,060 実際には、ケースであると思われる 場所で、空港やホテルでのような 672 00:33:46,060 --> 00:33:48,880 彼らは、無料Wi-Fiを持っている場所 あなたがするにはログインする必要がありアクセス、 673 00:33:48,880 --> 00:33:51,010 これらのウェブサイトは常にある 恐ろしく実装しました。 674 00:33:51,010 --> 00:33:55,680 だからホームエクササイズでの楽しみの一種、 ていない悪質な目的以上 675 00:33:55,680 --> 00:33:59,170 道路上の楽しみ 運動、ただタイプすることです 676 00:33:59,170 --> 00:34:02,850 アポストロフィ、一重引用符、 いくつかのウェブサイト上のフォームに 677 00:34:02,850 --> 00:34:03,810 そして何が起こるかを参照してください。 678 00:34:03,810 --> 00:34:06,660 そして、サーバがクラッシュしたり与えた場合 あなたのエラーメッセージのいくつかの種類、 679 00:34:06,660 --> 00:34:09,690 それは非常によくものであってもよい 誰かがこれを予期していません。 680 00:34:09,690 --> 00:34:15,239 そして、あなたは、適切に警告すべき 当局とはそれ以上進みません。 681 00:34:15,239 --> 00:34:20,843 >> だから今あなたたちがうまくいけばべき ここでもう少しオタクユーモアを理解しています。 682 00:34:20,843 --> 00:34:24,120 >> [笑い] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVIDマラン:あなたがオタクだ知っている。 685 00:34:29,070 --> 00:34:30,944 次のいくつかのために 年、あなたは覚えているだろう 686 00:34:30,944 --> 00:34:33,520 誰が少しボビー表される ここでこの漫画の理由。 687 00:34:33,520 --> 00:34:36,760 だから我々として覚えておく コンテキストスイッチ1最後の時間 688 00:34:36,760 --> 00:34:38,770 JavaScriptに今日。 689 00:34:38,770 --> 00:34:41,600 私たちは、比較的少ない費やしてきた PHPの構文の時間 690 00:34:41,600 --> 00:34:43,440 それは実際だから Cに似たスーパー 691 00:34:43,440 --> 00:34:47,300 そして素敵なことに、JavaScriptがあまりにも C言語の構文に似ているスーパー 692 00:34:47,300 --> 00:34:49,639 同様に我々が表示されますように ちょっと、我々はよなど 693 00:34:49,639 --> 00:34:51,205 特に、今週後半を参照してください。 694 00:34:51,205 --> 00:34:54,080 あなたはこの言語で何ができるか、 しかし、すべてのより強力で、 695 00:34:54,080 --> 00:34:55,790 特にAPIと。 696 00:34:55,790 --> 00:34:56,960 >> しかし、最初のクイックツアー。 697 00:34:56,960 --> 00:35:00,450 JavaScriptで、ありますので1、 いいですなし主な機能はなく、。 698 00:35:00,450 --> 00:35:02,650 PHPと同じように、あなただけのコードを書くことができます。 699 00:35:02,650 --> 00:35:04,310 条件は次のようになり。 700 00:35:04,310 --> 00:35:07,100 とブール式かもしれない このようにするか、このように見える。 701 00:35:07,100 --> 00:35:09,530 スイッチが存在し、それら 次のようになります。 702 00:35:09,530 --> 00:35:10,970 4つのループは次のように見えます。 703 00:35:10,970 --> 00:35:12,390 ループは次のようになりながら。 704 00:35:12,390 --> 00:35:14,160 やる時々このように見える。 705 00:35:14,160 --> 00:35:16,850 その後アレイは、のように見える これはPHPと非常によく似ています。 706 00:35:16,850 --> 00:35:20,740 しかし、JavaScriptはあなたの中にことに気付く ドルとしない変数を宣言 707 00:35:20,740 --> 00:35:25,190 ていないデータ型ではなく、文字通り、署名 その前に変数のVARを言って。 708 00:35:25,190 --> 00:35:27,900 それはあまりにも緩く型付けされている それにはタイプがあり、 709 00:35:27,900 --> 00:35:29,729 しかし、あなたはそれらを明示的に宣言しない。 710 00:35:29,729 --> 00:35:31,520 その後の文字列は、 インスタンスは、見えるかもしれません 711 00:35:31,520 --> 00:35:34,350 このように、その文字列 この場合、複数呼び出される。 712 00:35:34,350 --> 00:35:35,410 その後オブジェクト。 713 00:35:35,410 --> 00:35:37,010 そして、これらの私たちは、長い前に、より多くのを見ることができます。 714 00:35:37,010 --> 00:35:41,470 その目的とするところは、おそらくの一つです 最も一般的に見られるデータ構造 715 00:35:41,470 --> 00:35:44,050 JavaScriptでベース プログラムはそれができるため、 716 00:35:44,050 --> 00:35:46,680 あなたは、任意関連付ける キーと値のペアだけ 717 00:35:46,680 --> 00:35:51,240 PHPの連想配列のように ちょうどあなた自身のハッシュテーブルのような 718 00:35:51,240 --> 00:35:54,042 私たちが実施されるように、または試みる 数週間前。 719 00:35:54,042 --> 00:35:56,250 それでは、実際に何を見てみましょう 我々は、JavaScriptで行うことができます。 720 00:35:56,250 --> 00:35:59,410 特に、これは 特徴の洗濯物のリスト 721 00:35:59,410 --> 00:36:02,300 ブラウザは、あることを持っていること 私たちはJavaScriptをフックすることができます 722 00:36:02,300 --> 00:36:05,470 以下の方法でウェブサイトへ。 723 00:36:05,470 --> 00:36:09,340 JavaScriptは、しばしば使用されている クライアントサイドのスクリプト言語。 724 00:36:09,340 --> 00:36:10,130 これは、コンパイルされていない。 725 00:36:10,130 --> 00:36:11,370 それはあまりにも解釈されます。 726 00:36:11,370 --> 00:36:15,740 しかし、実行されているPHPとは異なり、 サーバ上で、ウェブサーバにおいて、 727 00:36:15,740 --> 00:36:18,220 または深いの内側 クライアントは、JavaScript 728 00:36:18,220 --> 00:36:22,190 そのことで異なる 通常はブラウザで実行されます。 729 00:36:22,190 --> 00:36:26,060 >> ので、任意のJavaScriptコードは、あなたが書き込みを開始 PSET 8、またはあなたの最終的なプロジェクトのために、 730 00:36:26,060 --> 00:36:29,890 あるいは、現実の世界で一般的に起こっている 絶対に、サーバ上に保存する 731 00:36:29,890 --> 00:36:33,110 ドットHTMLやドット内 JavaScriptファイルのためのJS。 732 00:36:33,110 --> 00:36:35,770 しかし、ブラウザが起こっている そのJavaScriptをダウンロードする 733 00:36:35,770 --> 00:36:39,530 クロームの独自のインスタンスにコード、 またはIE、またはFirefox、または何でも。 734 00:36:39,530 --> 00:36:43,870 そしてコードは、実際に取得する予定です あなた自身のブラウザの内部で実行。 735 00:36:43,870 --> 00:36:46,560 ただ、これはよりリアルにするために、 それでは、具体的な形でこれを見てみましょう。 736 00:36:46,560 --> 00:36:50,120 >> 私たちは、このコードが何をするか分からない 本当にそれを読まず。 737 00:36:50,120 --> 00:36:52,670 しかし、私はFacebook.comへ行こう ログインせずに。 738 00:36:52,670 --> 00:37:00,440 私は要素を点検しに行くことを行こう、 それでは言わせて、ネットワークとページをリロード。 739 00:37:00,440 --> 00:37:04,150 そして、我々はsee--よ私はリロードシフトしましょう 新しいに対するすべての要求を取得するためのページです。 740 00:37:04,150 --> 00:37:08,850 そして非常に最初の 私が見るファイルは、CSS、CSSです。 741 00:37:08,850 --> 00:37:10,880 ここでは最初だ JavaScriptのファイル、および私が持っている 742 00:37:10,880 --> 00:37:14,600 ここにこれが何を考え、ない JavaScriptコードの一部である 743 00:37:14,600 --> 00:37:16,180 それはFacebookを利用して駆動します。 744 00:37:16,180 --> 00:37:18,400 それも、本当にありません に拡大するが明らかになった。 745 00:37:18,400 --> 00:37:20,260 それはまだ同じくらい無意味です。 746 00:37:20,260 --> 00:37:24,341 >> しかし、あなたはあります、でも、下方に表​​示されます これらのJavaScriptファイルの一層。 747 00:37:24,341 --> 00:37:24,840 おっと。 748 00:37:24,840 --> 00:37:25,440 それは、pingです。 749 00:37:25,440 --> 00:37:28,550 それでは少しダウンして行きましょう さらに、さらに、さらなる。 750 00:37:28,550 --> 00:37:29,894 1があります。 751 00:37:29,894 --> 00:37:31,238 1があります。 752 00:37:31,238 --> 00:37:31,880 1があります。 753 00:37:31,880 --> 00:37:35,820 >> そうであってもFacebookのも、背後にある シーンは、PHPの一部で書かれている 754 00:37:35,820 --> 00:37:39,100 そのとFacebookの独自のバージョン、 JavaScriptの膨大な量があります。 755 00:37:39,100 --> 00:37:41,330 実際には、任意の あなたがFacebook上でやるチャット、 756 00:37:41,330 --> 00:37:45,520 インラインタイムラインの更新のいずれか それは、リアルタイムですべてのことが起こる 757 00:37:45,520 --> 00:37:47,944 JavaScriptによって駆動される。 758 00:37:47,944 --> 00:37:48,444 うん? 759 00:37:48,444 --> 00:37:50,235 >> 読者:私はわからないんだけど これは、フェイスブックであれば、 760 00:37:50,235 --> 00:37:53,624 私はFacebookが開発していると考え 独自の社内のコード言語? 761 00:37:53,624 --> 00:37:54,540 DAVIDマラン:彼らはやった。 762 00:37:54,540 --> 00:37:58,110 私はの分散を言うだから、なぜです 実際に彼らはPHPと呼ばれるヒップホップ 763 00:37:58,110 --> 00:38:03,440 そのようなときに機能を追加 マークは、Facebookを実施し、 764 00:38:03,440 --> 00:38:04,710 それは、PHPで書かれています。 765 00:38:04,710 --> 00:38:07,370 その種の推移している フロントエンド言語の一種 766 00:38:07,370 --> 00:38:09,030 彼らは多くのために使用すること 彼らのコーディングが、それの 767 00:38:09,030 --> 00:38:11,870 だ言語ではなかった 数十億に特によくスケール 768 00:38:11,870 --> 00:38:12,630 人々の。 769 00:38:12,630 --> 00:38:15,300 だから彼らは自分を追加した 舞台裏の改善。 770 00:38:15,300 --> 00:38:17,049 そして、彼らは、任意の数を使用 他の言語の 771 00:38:17,049 --> 00:38:19,170 各種情報のため インフラストラクチャ。 772 00:38:19,170 --> 00:38:24,080 そうです、それはの分散だ 我々は今、PHPとして知っている。 773 00:38:24,080 --> 00:38:26,610 >> それでは見てみましょう 例のカップルで、 774 00:38:26,610 --> 00:38:28,890 私たちはここにJavaScriptを使用する方法の。 775 00:38:28,890 --> 00:38:32,530 今日のソースコードでは、我々が持っている ファイルの束、そのうちの最初の、 776 00:38:32,530 --> 00:38:34,090 それではDOMゼロと呼ばましょう。 777 00:38:34,090 --> 00:38:36,770 以下のようにDOMゼロに見えます。 778 00:38:36,770 --> 00:38:40,730 私はこのディレクトリに行こう とdomzero.htmlを開く、 779 00:38:40,730 --> 00:38:44,970 のトップは、doc型を持つ 宣言は、ここで言っては、HTML 5が付属しています。 780 00:38:44,970 --> 00:38:46,440 そして今、ここにHTMLタグです。 781 00:38:46,440 --> 00:38:47,540 ここではheadタグです。 782 00:38:47,540 --> 00:38:49,210 そして、ここで何が新しくなったのか、今日の。 783 00:38:49,210 --> 00:38:52,620 >> 我々は現在、スクリプトタグを持っている ページの頭の中。 784 00:38:52,620 --> 00:38:55,290 そして、これは明らかにしない 非常に少ない、しかし予告 785 00:38:55,290 --> 00:38:58,410 私が定義したので スクリプトは、JavaScript。 786 00:38:58,410 --> 00:39:01,050 そして余談ですが、この年として 一般的な誤解である、 787 00:39:01,050 --> 00:39:05,220 JavaScriptは絶対に何もしています Javaの言語で行うには 788 00:39:05,220 --> 00:39:08,010 あなたのいくつかは可能性があること APCSで学んだ。 789 00:39:08,010 --> 00:39:10,480 それは、マーケティングの以上であった 何よりもの事、 790 00:39:10,480 --> 00:39:12,980 のJava年前の便乗に乗って。 791 00:39:12,980 --> 00:39:17,300 とは何のが、JavaScript、何もしない Javaの、ちょうど同じように、とうるさく、 792 00:39:17,300 --> 00:39:18,480 紛らわしい名前。 793 00:39:18,480 --> 00:39:21,890 >> だからここにあなたが関数を宣言する方法です JavaScriptで、文字通りの機能を言う、 794 00:39:21,890 --> 00:39:24,556 その後関数の名前、 それがかかることがあり、任意の引数、 795 00:39:24,556 --> 00:39:25,530 ちょうどPHPで好きです。 796 00:39:25,530 --> 00:39:28,990 JavaScriptは、ほとんどの一つで判明 存在迷惑な機能はアラートです。 797 00:39:28,990 --> 00:39:31,392 これはその小さなウィンドウです ポップアップし、警告を表示します 798 00:39:31,392 --> 00:39:32,600 いくつかの情報である。 799 00:39:32,600 --> 00:39:33,766 これは、一般的には眉をひそめだ。 800 00:39:33,766 --> 00:39:35,980 しかし、私たちは私たちのようにそれを使用します ここで最初の練習。 801 00:39:35,980 --> 00:39:37,900 >> JavaScriptをいくつかの機能に注目してください。 802 00:39:37,900 --> 00:39:41,524 単一引用符や二重引用符 実際にはもう問題ではありません。 803 00:39:41,524 --> 00:39:43,690 単一引用符と二重 引用符は交換可能で、 804 00:39:43,690 --> 00:39:46,220 C言語で、あなたが使用する必要があり、一方、 文字列のための二重引用符、 805 00:39:46,220 --> 00:39:48,150 そしてあなたは、単一の2を持っている 文字のために引用している。 806 00:39:48,150 --> 00:39:51,150 JavaScriptの世界では、 多くの人々は、ほとんどの人 807 00:39:51,150 --> 00:39:54,970 文字列は一重引用符で囲んでください それは文体のことだという理由だけで。 808 00:39:54,970 --> 00:39:58,330 しかし、ここでプラス演算子は何ですか、 その私たちは前に見たことがない? 809 00:39:58,330 --> 00:39:59,836 >> 聴衆:連結。 810 00:39:59,836 --> 00:40:00,960 DAVIDマラン:連結。 811 00:40:00,960 --> 00:40:02,450 だから、Cがあってもこれを持っていません。 812 00:40:02,450 --> 00:40:04,820 PHPは、ドット演算子を持って これこれを行います。 813 00:40:04,820 --> 00:40:09,710 JavaScriptは、プラス演算子を持って これ紛らわしいだけでJavaのようなものです。 814 00:40:09,710 --> 00:40:11,440 今、何がここに起こっているのですか? 815 00:40:11,440 --> 00:40:14,260 >> ここで基本的なだからここだ その絵の理解 816 00:40:14,260 --> 00:40:17,010 私たちはカップルを投げた 日前戦場に出る。 817 00:40:17,010 --> 00:40:19,620 我々は、単純なを持っていたとき覚えている HTML形式のバージョン当ページ 818 00:40:19,620 --> 00:40:20,830 それだけでHello Worldの、言った。 819 00:40:20,830 --> 00:40:22,770 そして、我々は木を描いた 右側に、その 820 00:40:22,770 --> 00:40:27,320 長方形や線の束を持っていた 家系図のようにそれらを接続する。 821 00:40:27,320 --> 00:40:30,820 だから、いわゆるDOMだ またはドキュメントオブジェクトモデル。 822 00:40:30,820 --> 00:40:36,759 そして、それはあなたがアクセスできることが判明 構文とそのツリー内の長方形 823 00:40:36,759 --> 00:40:37,550 次のような。 824 00:40:37,550 --> 00:40:41,370 あなたは、文字通りある文書を、言う JavaScriptで特別なグローバル変数 825 00:40:41,370 --> 00:40:45,890 機能を有するプログラム あなたがアクセスできること、それに関連付けられた 826 00:40:45,890 --> 00:40:50,280 構造体に似ていますが、単純に ドットと、関数の名前を言う、 827 00:40:50,280 --> 00:40:52,390 IDによって要素を取得。 828 00:40:52,390 --> 00:40:55,460 >> 私が取得したい要素がある どうやら引用終わり名前を引用。 829 00:40:55,460 --> 00:40:57,150 そして私は、その値を取得したい。 830 00:40:57,150 --> 00:40:58,330 今、私たちは先に自分の取得している。 831 00:40:58,330 --> 00:41:00,038 私は何でもわからないんだけど これはすべてについてです。 832 00:41:00,038 --> 00:41:03,000 HTMLへレッツ早送りに 超簡単ですページ。 833 00:41:03,000 --> 00:41:05,370 >> 私が定義したことに注目してください Aここでダウンして形成する。 834 00:41:05,370 --> 00:41:07,940 私はそれをユニークに与えてくれたに注意してください 私たちが使用していないしたにも関わらず、ID、 835 00:41:07,940 --> 00:41:08,870 この属性の前に。 836 00:41:08,870 --> 00:41:11,300 しかし、これは、HTMLに存在しています。 837 00:41:11,300 --> 00:41:15,570 あなたが一意にいくつかのチャンクを識別することができます このような識別子を持つHTMLの。 838 00:41:15,570 --> 00:41:19,880 >> 通知は今this--は、HTML判明 その洗濯物のリストごとに、サポートしています 839 00:41:19,880 --> 00:41:22,490 先ほど、全体 イベントハンドラの束。 840 00:41:22,490 --> 00:41:25,060 そして、このイベントハンドラは、提出に述べています。 841 00:41:25,060 --> 00:41:28,730 このユーザーの提出について フォームは、次のコードを呼び出します。 842 00:41:28,730 --> 00:41:31,360 そしてそのコードは起こっている と呼ばれる、または実行される 843 00:41:31,360 --> 00:41:35,260 まさにこの、ギリシャ語である この関数は、戻り偽続く。 844 00:41:35,260 --> 00:41:37,360 他のすべてがすべき かなり精通している。 845 00:41:37,360 --> 00:41:42,050 >> ここでtext型、の入力がある IDは、この場合には、名前になるだろう。 846 00:41:42,050 --> 00:41:45,430 私たちは、実際のname属性を持っていない このtime--と送信ボタン。 847 00:41:45,430 --> 00:41:48,330 だから、結果のページは、このようになります。 848 00:41:48,330 --> 00:41:52,890 そして結果の動作、 あなたは、このようになり、表示されます。 849 00:41:52,890 --> 00:41:56,940 ページそれローカルホストこんにちは、言う デビッド、ほとんど美的 850 00:41:56,940 --> 00:41:58,340 ユーザーに挨拶する方法。 851 00:41:58,340 --> 00:41:59,950 しかし、実際に何が起こっているのですか? 852 00:41:59,950 --> 00:42:01,360 >> まあ、これが何であるかを検討してください。 853 00:42:01,360 --> 00:42:02,310 これは、テキストフ​​ィールドである。 854 00:42:02,310 --> 00:42:04,635 とによると ここでHTMLは、私はそれを与えてくれた 855 00:42:04,635 --> 00:42:07,350 一意の識別子 引用引用終わりnameと呼ばれる。 856 00:42:07,350 --> 00:42:09,770 一方、私が言ってきたとき ユーザーがこのフォームを送信 857 00:42:09,770 --> 00:42:13,820 Enterキーを押すか、クリックして登録 ボタン、グリートという関数を呼び出す 858 00:42:13,820 --> 00:42:15,410 その後falseを返します。 859 00:42:15,410 --> 00:42:16,870 それでは逆のものを考えてみましょう。 860 00:42:16,870 --> 00:42:20,590 私はSubmitをクリックしたときに、注意してください このページのURLは変更されません。 861 00:42:20,590 --> 00:42:22,420 ブラウザのアイコン スピニング起動しませんでした。 862 00:42:22,420 --> 00:42:27,050 私はどこにも行かなかったし、それはだ 文字通り、私はFalseを返すと言ったので。 863 00:42:27,050 --> 00:42:31,534 Falseの短絡や停止を返す フォームのデフォルトの動作。 864 00:42:31,534 --> 00:42:33,700 その後で私たちを残しように この1最後の質問。 865 00:42:33,700 --> 00:42:34,764 グリートは何をしますか? 866 00:42:34,764 --> 00:42:36,680 さて、どうやらグリート 呼び出された関数を呼び出す 867 00:42:36,680 --> 00:42:39,250 アラートは、1を渡し だ長い引数 868 00:42:39,250 --> 00:42:43,950 一緒に連結した結果 部分文字列の束、コンマスペースこんにちは、 869 00:42:43,950 --> 00:42:45,810 これは返し何でも。 870 00:42:45,810 --> 00:42:51,490 だから、文書はグローバルのようなものです そのツリーのルートに変数、 871 00:42:51,490 --> 00:42:55,560 特殊な関数を呼び出し、 そうでなければ、今の方法として知られている。 872 00:42:55,560 --> 00:42:57,650 だ機能 されている変数の内部 873 00:42:57,650 --> 00:42:59,640 代わりに、関数のメソッドを呼び出した。 874 00:42:59,640 --> 00:43:01,570 >> だから、IDによって要素を取得。 875 00:43:01,570 --> 00:43:03,940 あなたはどのような要素を行う そのIDで取得したい? 876 00:43:03,940 --> 00:43:06,970 引用終わり名前を引用し、 その後、具体的値。 877 00:43:06,970 --> 00:43:12,000 換言すれば、そのコードは、単に IDが名前であるテキストフ​​ィールドを見つける 878 00:43:12,000 --> 00:43:13,380 そして、その値を取得します。 879 00:43:13,380 --> 00:43:16,460 だから私はこれを変更した場合 そして、代わりにダビデのデーヴィンを言う 880 00:43:16,460 --> 00:43:20,670 そして我々は今、[送信]をクリックします デーヴィンための挨拶を持っている。 881 00:43:20,670 --> 00:43:22,890 >> ので、すべての罰金と良いすべての権利、。 882 00:43:22,890 --> 00:43:25,480 しかし、我々が作ることができるかどうか見てみましょう このほんの以来少しクリーナー 883 00:43:25,480 --> 00:43:28,190 これは次のようなコードを書くこと 一般的にはひんしゅくを買うされようとして。 884 00:43:28,190 --> 00:43:30,060 これは恐ろしい見に行くされている。 885 00:43:30,060 --> 00:43:32,330 しかし、最初は何ですか あなたがここで注意違い 886 00:43:32,330 --> 00:43:35,970 他にもこのバージョンで DOMのいずれかに変更することの名前は? 887 00:43:35,970 --> 00:43:41,110 構造的に異なる見えるもの 他の対このことについて? 888 00:43:41,110 --> 00:43:41,932 うん? 889 00:43:41,932 --> 00:43:43,890 読者:上のフォームです 今スクリプトの先頭に? 890 00:43:43,890 --> 00:43:46,570 DAVIDマラン:ええ、フォームが上になる いくつかの好奇心の理由で、スクリプトの。 891 00:43:46,570 --> 00:43:48,736 だから、最初のことだ それはあまりにも、私に飛び出し。 892 00:43:48,736 --> 00:43:50,990 そしてありがたいことに、少なくとも、 この部分は同じです。 893 00:43:50,990 --> 00:43:53,470 そう思えるだけだ 異なるようにすることはこれです。 894 00:43:53,470 --> 00:43:55,296 >> だからここにきちんと何だ JavaScriptの約2。 895 00:43:55,296 --> 00:43:57,420 そして、それはそれは一生懸命になります 一目見ただけで理解して、 896 00:43:57,420 --> 00:44:00,670 特に最後のプロジェクトの場合のために あなたは、オンラインのサンプル·コードを見ている 897 00:44:00,670 --> 00:44:04,200 それはいくつかに集約 基本的な構文上の特徴。 898 00:44:04,200 --> 00:44:06,230 ここで再びことである グローバル変数文書。 899 00:44:06,230 --> 00:44:09,540 ここで再びそのメソッドや関数である それは、IDによって要素を取得すると言います。 900 00:44:09,540 --> 00:44:11,570 今回私がしたい デモと呼ばれるIDを取得。 901 00:44:11,570 --> 00:44:12,490 それはどこにある? 902 00:44:12,490 --> 00:44:15,400 それは明らかだね ここでは、フォーム自体。 903 00:44:15,400 --> 00:44:20,010 >> そして今、私があれば、明らかにことに気付く その木からそのノードを取り戻す 904 00:44:20,010 --> 00:44:22,940 フォームを表し、 それ自体ではなく、テキストフ​​ィールド、 905 00:44:22,940 --> 00:44:26,970 それがあることを、そのフォームが判明 ツリーからノードや長方形、 906 00:44:26,970 --> 00:44:30,450 我々はプロパティを呼び出すだろうものを持って、 非常に、非常に、非常に似て 907 00:44:30,450 --> 00:44:35,390 Cの構造体への精神でそれはちょうどだ この矩形の内部データメンバ。 908 00:44:35,390 --> 00:44:38,300 >> だから私は、フォームを持っている ここで、私は取り付けています、 909 00:44:38,300 --> 00:44:44,650 または私はその送信時に、割り当てるよ ハンドラまたはむしろ上のプロパティを提出 910 00:44:44,650 --> 00:44:45,740 次の関数。 911 00:44:45,740 --> 00:44:49,000 そして、これは、はるかに、クレイジーです これまで構文的なもの。 912 00:44:49,000 --> 00:44:53,610 これは、JavaScriptでかつで判明 C言語でそのことについては、PHP、そして率直に言って、 913 00:44:53,610 --> 00:44:58,990 我々はそれをしないにもかかわらず、次のことができます 無名の、匿名、またはAKAラムダを追加 914 00:44:58,990 --> 00:45:03,000 名前を持たない関数 それにもかかわらず呼び出すことができます。 915 00:45:03,000 --> 00:45:07,050 >> それでは、私はここでやっている私が割り当てているされている この上で、プロパティを提出した 916 00:45:07,050 --> 00:45:14,330 、私のDOMツリーのこのノードの内部にある 関数、関数ポインタ可能ならば。 917 00:45:14,330 --> 00:45:16,310 その機能は全く持っていません 名前が、それはしません 918 00:45:16,310 --> 00:45:19,110 問題我々が表示されますので、 一瞬でそれを呼び出す方法。 919 00:45:19,110 --> 00:45:21,780 この関数が呼び出されると、 このコードは、その後、実行されます 920 00:45:21,780 --> 00:45:24,210 偽は、直前のように返されます。 921 00:45:24,210 --> 00:45:25,800 >> しかし、私は何をやったかに気づく。 922 00:45:25,800 --> 00:45:27,830 この時点で 物語は、私はフォームを持っている。 923 00:45:27,830 --> 00:45:30,190 これは、デモと呼ばれる固有のIDを持っている。 924 00:45:30,190 --> 00:45:33,740 ここでダウン、私はスクリプトタグを持っている それには、次のコードを実行します。 925 00:45:33,740 --> 00:45:37,720 これは、そのノード内に取り付け それへのツリーは、提出日です 926 00:45:37,720 --> 00:45:40,260 プロパティここにこの機能。 927 00:45:40,260 --> 00:45:44,310 そして、ちょうどブラウザがどのように動作するかの性質によって、 私は今、提出またはEnterキーを押します]をクリックすると、 928 00:45:44,310 --> 00:45:45,889 その関数が呼び出さ取得する予定です。 929 00:45:45,889 --> 00:45:48,680 それが原因名前を必要としません heckが、それが呼ばれるもの気遣う。 930 00:45:48,680 --> 00:45:52,540 それは今までに取得するつもりだ唯一の時間 私はフォームを送信するときであると呼ばれる。 931 00:45:52,540 --> 00:45:55,130 私のための必要はありません、 人間の開発者、 932 00:45:55,130 --> 00:45:57,330 実際にどこか他にそれを呼び出します。 933 00:45:57,330 --> 00:46:00,720 >> 今ちょうどティーザーとして、そのかのように 十分な曲げ気にしていなかった、 934 00:46:00,720 --> 00:46:03,330 私たちも、これを行うことができます 使用して、より不可解に見える 935 00:46:03,330 --> 00:46:05,850 超人気ライブラリはjQueryを呼んだ。 936 00:46:05,850 --> 00:46:08,760 事実jQueryとJavaScriptで しばしば混同されている。 937 00:46:08,760 --> 00:46:12,790 そして私たちが水曜日にやることはスタートです この言語と、これ​​らのライブラリを使用して 938 00:46:12,790 --> 00:46:16,030 ますます非同期構築する および動的なアプリケーション 939 00:46:16,030 --> 00:46:18,950 地図のようになっ アプリケーション、アプリケーション 940 00:46:18,950 --> 00:46:22,360 それが本当でウェブページを更新 時間、ずっとFacebookやGchat様 941 00:46:22,360 --> 00:46:27,130 やる、もはやに自分自身を閉じ込める GETまたはちょうど郵便で提出打撃 942 00:46:27,130 --> 00:46:27,630 一人で。 943 00:46:27,630 --> 00:46:29,055 だから私は水曜日にお会いします。 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [音楽再生] 946 00:46:35,550 --> 00:48:09,728