1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [주 8, 계속] 2 00:00:02,000 --> 00:00:04,000 [데이비드 J. Malan] [하버드 대학] 3 00:00:04,000 --> 00:00:08,000 [이 CS50 수 있습니다.] [CS50.TV] 4 00:00:08,000 --> 00:00:13,000 >> 이 CS50입니다,이 여기에 주 8의​​ 끝입니다. 5 00:00:13,000 --> 00:00:16,000 물론 우리는 이번 주 초에 태풍이 좀 많았다 6 00:00:16,000 --> 00:00:19,000 그래서 지금이 강의실에서 당신과 나, 정말입니다 7 00:00:19,000 --> 00:00:22,000 하지만 오늘은 PHP에 대한 우리의 대화를 계속 8 00:00:22,000 --> 00:00:25,000 및 웹 프로그래밍에 대한 자세한 일반적으로, 우리는 또한 아이디어를 소개 9 00:00:25,000 --> 00:00:29,000 데이터베이스, 특히 하나는 요즘 매우 인기가 MySQL을,라고 10 00:00:29,000 --> 00:00:34,000 때문에 그 확장 성뿐만 아니라 무료 및 오픈 소스 것 때문에 많은 부분 인치 11 00:00:34,000 --> 00:00:37,000 >> 하지만 먼저, 지난 시간을 그만 둔 곳을 살펴. 12 00:00:37,000 --> 00:00:40,000 우리는 여러 신입생 인스턴트 메시지의 예에서 찾고 있다는 리콜 13 00:00:40,000 --> 00:00:44,000 그리고 이건 나이 15 + 년 전으로 나온 건 무시 무시한 형태였다 14 00:00:44,000 --> 00:00:49,000 신입생 교내 스포츠 학교 등록에 대한 학생들 권한을 부여하기 위해 15 00:00:49,000 --> 00:00:52,000 실제로 Wigglesworth에 빠른가 더 이상 여행하지 않고도 16 00:00:52,000 --> 00:00:56,000 어떤 조교의 문 아래 종이 실제 조각을 슬라이드 할 수 있습니다. 17 00:00:56,000 --> 00:00:59,000 대신 우리는 온라인으로 모든 이동, 우리가 사용하는 데 필요한 그 일을 할 18 00:00:59,000 --> 00:01:03,000 몇 기술의, 어느, 우리는 HTML, 하이퍼 텍스트 마크 업 언어를 필요 19 00:01:03,000 --> 00:01:07,000 이는 다시는 구조적으로 웹 페이지를 만들되는이 마크 업 언어입니다. 20 00:01:07,000 --> 00:01:10,000 >> 규약에서 캐스 케이 딩 스타일 시트를 요즘 CSS의 비트를 사용하여 21 00:01:10,000 --> 00:01:16,000 우리는 약간 다른 구문을 사용하여 웹 페이지의 stylizations를 사용하여 상기하면, 22 00:01:16,000 --> 00:01:19,000 HTML은 그 구조에 대한 전부 였어 반면. 23 00:01:19,000 --> 00:01:21,000 우리는 또한 웹 프로그래밍 언어를 소개해야합니다. 24 00:01:21,000 --> 00:01:25,000 이 경우, 우리는 PHP를 사용하고, PHP 우리에게 허용 할 것이다 25 00:01:25,000 --> 00:01:28,000 동적으로 출력 콘텐츠에뿐 아니라 같은 프로그래밍 일을 26 00:01:28,000 --> 00:01:33,000 이메일을 보내는 등 우리가 지난 주에 남긴 그 사람 메모에있는 경우이었다. 27 00:01:33,000 --> 00:01:35,000 >> 이를위한 코드는 2 부분에 있던 것을 기억합니다. 28 00:01:35,000 --> 00:01:38,000 하나는, 우리는 froshims3.php을했다 29 00:01:38,000 --> 00:01:42,000 이 방법은 그 내부에 HTML 양식 크게 마크 업했습니다 30 00:01:42,000 --> 00:01:45,000 스타일 속성에서 여기까지 CSS의 작은 비트 31 00:01:45,000 --> 00:01:48,000 폼 자체는 페이지에서,하지만 그 뒷일은 중심 될 수 있도록 32 00:01:48,000 --> 00:01:51,000 우리는 대표 폼 입력, 텍스트 필드, 체크 박스를 가지고 33 00:01:51,000 --> 00:01:55,000 어떤 라디오 버튼, 선택 메뉴 및 제출 버튼. 34 00:01:55,000 --> 00:02:01,000 그리고이 양식을 통해, 우리는 분명히 register3.php라는 한 파일에 제출 35 00:02:01,000 --> 00:02:04,000 어떤 자체는 같은 뭔가를 조금 보았다. 36 00:02:04,000 --> 00:02:08,000 이제 register3.php, 리콜에 코드의 대부분은 이메일에 대한 모든했습니다. 37 00:02:08,000 --> 00:02:11,000 그것은 확실하게 제출 된 양식의 검증 약간 했어요 38 00:02:11,000 --> 00:02:14,000 필드가 실제로 예상했다 그 제공되었는지. 39 00:02:14,000 --> 00:02:18,000 그런 다음 우리는 약간 새로운 구문을 사용하여 몇 가지 PHP 함수를 호출 40 00:02:18,000 --> 00:02:20,000 그것은 C.에서 차용 할지라도 41 00:02:20,000 --> 00:02:24,000 >> 이 화살표 연산자는 우리가 객체 지향 프로그래밍이라는 것을 사용을 할 수 있습니다. 42 00:02:24,000 --> 00:02:27,000 우리는 여기 자세히 그에 갈거야,하지만 지금 알 수 없습니다 43 00:02:27,000 --> 00:02:31,000 그것은, 객체와 연관된 기능을 갖는 방법 44 00:02:31,000 --> 00:02:34,000 우리는 C.에서 본대로 이것은, 구조의 특별한 유형입니다 45 00:02:34,000 --> 00:02:37,000 하지만 지금은 단지이 사용하는 올바른 구문입니다 신앙에 걸릴 46 00:02:37,000 --> 00:02:41,000 이 PHPMailer 라이브러리와 같은 라이브러리를 사용하는 경우. 47 00:02:41,000 --> 00:02:44,000 그리고이 파일의 끝 부분에서 우리는 동적으로 이메일을 생성 한 48 00:02:44,000 --> 00:02:47,000 내 jharvard@cs50.net 계정에 불려 갔어 그 49 00:02:47,000 --> 00:02:50,000 내 jharvard@cs50.net 계정에서, 50 00:02:50,000 --> 00:02:54,000 우리는이 스포츠에 등록 된 것을 따라 사용자 정보를. 51 00:02:54,000 --> 00:02:57,000 그것은 신입생 인스턴트 메시지 사이트가 모든 년 전에 무슨 짓을했는지 꽤 많이 있습니다 52 00:02:57,000 --> 00:03:00,000 제가 구현 때, 다른 언어로 부여 53 00:03:00,000 --> 00:03:02,000 하지만 어쩌면 당신이 가지고있는 능력을 보여줍니다 54 00:03:02,000 --> 00:03:05,000 지금 당신은뿐만 아니라 프로그램 자신을 표현 할 수있는 55 00:03:05,000 --> 00:03:08,000 C와 같은 언어로 낮은 수준에 있지만, 훨씬 더 높은 수준의 56 00:03:08,000 --> 00:03:11,000 실제로 해결하는 이메일과 같은이 매우 실제 응용 프로그램과 57 00:03:11,000 --> 00:03:13,000 진짜 세계 문제. 58 00:03:13,000 --> 00:03:16,000 >> 지금, 물론,이 스크립트가 일부를 생성하는 데 사용하는 경우에도 59 00:03:16,000 --> 00:03:20,000 실제로 계정입니다 jharvard@cs50.net에서 동적으로 이메일 60 00:03:20,000 --> 00:03:23,000 난에 대한 액세스 권한이 있는지, 보내 매우 조심하게 61 00:03:23,000 --> 00:03:26,000 실제로 자신의 아르 계정에서 메일에만 62 00:03:26,000 --> 00:03:30,000 일이 인생에 뜨거운 물을 약간에 타는 않도록. 63 00:03:30,000 --> 00:03:35,000 그 말과 함께 모두 다른 문제를 해결하는 전환 지금 보자, 64 00:03:35,000 --> 00:03:37,000 유지 상태의. 65 00:03:37,000 --> 00:03:39,000 자,이 사실은 무엇을 의미합니까? 66 00:03:39,000 --> 00:03:42,000 HTTP,이 하이퍼 텍스트 전송 프로토콜, 67 00:03:42,000 --> 00:03:45,000 실제로 무국적 프로토콜입니다,이 의미있는 무엇인가 68 00:03:45,000 --> 00:03:48,000 당신은 Google.com 같은 것을 뽑아 입력 한 다음 Enter 쳤을 때 69 00:03:48,000 --> 00:03:51,000 일반적으로 브라우저는 다음 회전 아이콘이 어떤 종류의가 있습니다 70 00:03:51,000 --> 00:03:54,000 일부 웹 페이지에 결과는 다운로드 중 71 00:03:54,000 --> 00:03:57,000 그리고 그 작은 아이콘이 회전 중지하고 실제로 제안하는 72 00:03:57,000 --> 00:04:02,000 HTTP는 서버에 어떤 연결 고리를 완료하고 그게 다라고. 73 00:04:02,000 --> 00:04:05,000 HTTP는 유지하지 않는 의미에서 상태 비 저장입니다 74 00:04:05,000 --> 00:04:08,000 같은 방식으로 스카이프 (Skype)의 서버에 영구 연결합니까 75 00:04:08,000 --> 00:04:11,000 또는 Gchat 그래요 HTTP와 때문에 76 00:04:11,000 --> 00:04:15,000 가정 한 번 당신이 있어요 웹 페이지를 가져 오는 한 것입니다. 77 00:04:15,000 --> 00:04:18,000 >> 이제 페이스 북과 Google지도와 같은 사이트에 현실에서 이러한 일 78 00:04:18,000 --> 00:04:21,000 그리고 트위터와 같은 더 많은 역 동성이있어 상기 79 00:04:21,000 --> 00:04:25,000 그 아이콘이 회전 중지 후에도 당신은 실제로 더 많은 업데이트를 받아보실 수 있습니다 80 00:04:25,000 --> 00:04:29,000 서버, 더 많은 트위터, 페이스 북에 대한 자세한 상태 업데이트와 같은에서. 81 00:04:29,000 --> 00:04:33,000 그러나 우리는 두 주에 대한 얘기하자있는 기술을 사용하는 그 82 00:04:33,000 --> 00:04:36,000 아약스 자바 스크립트라는 언어를 사용으로 알려진, 83 00:04:36,000 --> 00:04:38,000 하지만 하루의 끝에서, HTTP는 여전히 상태 비 저장입니다. 84 00:04:38,000 --> 00:04:42,000 그런데도 당신은 어떻게 든 사용자에 대한 일을 기억하려는 경우 85 00:04:42,000 --> 00:04:44,000 그들은 서버에서 연결이 끊어 후에도 86 00:04:44,000 --> 00:04:47,000 PHP는 당신에게 이런 짓을 할 수있는 방법을 여유가 않습니다 87 00:04:47,000 --> 00:04:52,000 우리가 마지막으로 본으로 인해, PHP는 슈퍼 전역 변수의 번호를 가지고 88 00:04:52,000 --> 00:04:55,000 그리고 전역, 다시, 특별 전역 변수입니다 89 00:04:55,000 --> 00:04:59,000 그는 웹 서버와 PHP 자체로 당신에게 전달있어. 90 00:04:59,000 --> 00:05:02,000 >> 당신은 거기에 값을 넣어 아무것도 할 필요가 없습니다 91 00:05:02,000 --> 00:05:05,000 우리가 지금까지 본 적이 슈퍼 전역 변수들, GET과 POST 아르 92 00:05:05,000 --> 00:05:08,000 양식 필드는 당신을 위해 자동으로 넣어있는 곳입니다 93 00:05:08,000 --> 00:05:11,000 뿐만 아니라 우리가 아직 보지 않은 다른 사람의 몇. 94 00:05:11,000 --> 00:05:17,000 $ _SERVER의 내부 서버 자체에 관한 특별한 변수가 있습니다. 95 00:05:17,000 --> 00:05:22,000 프로토콜, HTTP 또는 HTTPS는 사용 했나요 IP 주소, 어떻게 96 00:05:22,000 --> 00:05:25,000 , 어떤 요청 방법을 당신이 사용하고 같은, 그래서 흥미로운있어 않았다 97 00:05:25,000 --> 00:05:29,000 육즙이 서버에 대한 자세한 내용과 사실, 거기에 사용자뿐만 아니라. 98 00:05:29,000 --> 00:05:33,000 이런 일이 쿠키가 저장되어이라는 곳 $ _COOKIE가 있어요. 99 00:05:33,000 --> 00:05:36,000 우리는 오늘 쿠키에 스스로 시간을 할애하지 않습니다 100 00:05:36,000 --> 00:05:40,000 하지만 쿠키는 단지 정보의 작은 조각입니다 지금 알고 101 00:05:40,000 --> 00:05:43,000 웹 서버가 웹 브라우저에 심는 수 102 00:05:43,000 --> 00:05:46,000 과에는 RAM 또는 컴퓨터의 하드 드라이브를 켜 103 00:05:46,000 --> 00:05:49,000 정보는 예를 들어, 사용자에 대한 자신의 사용자 이름을 저장하는 방법 104 00:05:49,000 --> 00:05:52,000 그들이 입력 모든 사람들이 로그인 시간이나 일부가되지 않도록 105 00:05:52,000 --> 00:05:55,000 고유 번호 또는 해당 사용자에 대한 식별자 106 00:05:55,000 --> 00:05:58,000 당신은에 대한 질문의 동일한 종류를 훼방하지 않도록 107 00:05:58,000 --> 00:06:00,000 미래의 환경 설정,하지만 관심의 대부분 108 00:06:00,000 --> 00:06:02,000 지금 $ _session입니다. 109 00:06:02,000 --> 00:06:07,000 >> 다른 이들처럼, PHP에 의해 자동으로 전달되며,이 자동 전역, 110 00:06:07,000 --> 00:06:10,000 당신은 PHP 기반의 웹 사이트를 쓸 때 111 00:06:10,000 --> 00:06:13,000 당신이 원하는 무엇이든, 문자열, 정수를 저장할 수 있습니다 112 00:06:13,000 --> 00:06:16,000 부동 점, 값, 배열, 객체, 113 00:06:16,000 --> 00:06:20,000 정말 당신이 원하는 무엇이든, 그리고 당신이하는 방식에 저장할 수 있습니다 114 00:06:20,000 --> 00:06:23,000 그 사용자는 이제 다음을 방문하는 경우에도 115 00:06:23,000 --> 00:06:26,000 지금 현재 5 분 거리에서 분 돌아 오는 이유 116 00:06:26,000 --> 00:06:28,000 그들은 다른 링크를 클릭하기 전에 시간이 걸릴 117 00:06:28,000 --> 00:06:32,000 PHP는 그 세션 전역에 쓴대로 있는지 확인합니다 118 00:06:32,000 --> 00:06:37,000 분 또는 5 분 전에 아직 거기에 사용자를 반환하면 될 것입니다. 119 00:06:37,000 --> 00:06:40,000 그리고 후드 밑에 전역은에 의해 구현된다 120 00:06:40,000 --> 00:06:44,000 그런 쿠키라고하지만, 지금, 그냥 추상화입니다 121 00:06:44,000 --> 00:06:47,000 상기는 쇼핑 카트의 프로그래밍 상응의 일종 이죠. 122 00:06:47,000 --> 00:06:50,000 무슨 말씀을, 프로그래머, 그에 넣어 123 00:06:50,000 --> 00:06:53,000 전역 연관 배열이 분 후 일부 뿐이지 124 00:06:53,000 --> 00:06:59,000 당신은을 삭제하거나 사용자가 모두 자신의 브라우저를 종료 할 때까지.까지 125 00:06:59,000 --> 00:07:02,000 >> 의이 일이 실제로 사용하는 방법에 대한 예를 살펴 보자. 126 00:07:02,000 --> 00:07:07,000 코드의 오늘의 조각들 counter.php에서 127 00:07:07,000 --> 00:07:09,000 우리는 다음 줄이 있습니다. 128 00:07:09,000 --> 00:07:13,000 이 파일의 시작에서 우리는 지금 재미 아르 푸른 의견의 무리가 있습니다. 129 00:07:13,000 --> 00:07:15,000 그러나 13 호선에서 우리는, 새로운 줄이 130 00:07:15,000 --> 00:07:18,000 session_start, 그 실제로 말씀 정확히 않습니다. 131 00:07:18,000 --> 00:07:20,000 이 세션을 시작합니다. 132 00:07:20,000 --> 00:07:25,000 그렇게 클 전역 $ _session을 사용 할 수 있습니다, 그게만큼 간단합니다. 133 00:07:25,000 --> 00:07:30,000 우리가 라인 16를보고 진행라면,이 웹 페이지가 무슨 짓을할지 알아 보도록하자. 134 00:07:30,000 --> 00:07:35,000 (isset은 ($ _SESSION [ "카운터"])가 진행하는 경우 135 00:07:35,000 --> 00:07:39,000 카운터 변수 및 저장, 소문자 카운터, 136 00:07:39,000 --> 00:07:42,000 $ _SESSION [ "카운터"]. 137 00:07:42,000 --> 00:07:45,000 이 카운터라는 지역 변수를 선언 할 듯 138 00:07:45,000 --> 00:07:48,000 그것은 자동 전역 속에 무엇이든의 사본을 만들고 내부에있는 139 00:07:48,000 --> 00:07:52,000 위치에 세션이라는 '카운터. " 140 00:07:52,000 --> 00:07:56,000 다른, 분명히이 작은 지역 변수를 카운터 0으로 초기화됩니다. 141 00:07:56,000 --> 00:08:01,000 >> 하지만 몇 줄 이상 26 고지에서 해당 카운터 세션의 사본, 142 00:08:01,000 --> 00:08:06,000 그 핵심은, 현재의 값을 더한 1 새 값을 할당이 있습니다. 143 00:08:06,000 --> 00:08:09,000 즉,이 파일은 업데이트 할 것 같습니다 144 00:08:09,000 --> 00:08:13,000 세션 전역의 내부 저장된 카운터 145 00:08:13,000 --> 00:08:16,000 1을 증가하지만,하여 먼저 이전 값의 복사본을 유지 146 00:08:16,000 --> 00:08:20,000 지역 변수에 저장하여, $ 카운터라고 147 00:08:20,000 --> 00:08:22,000 그리고 여기 남아 알아 보자. 148 00:08:22,000 --> 00:08:24,000 그것은 꽤 많은 단지 HTML 밝혀집니다. 149 00:08:24,000 --> 00:08:29,000 이 페이지의 하단에서 우리는이 사이트를 방문한 라인 37에서 볼 150 00:08:29,000 --> 00:08:33,000 시간 카운터 번호, 몇 재미있는 기능이있다 그래서. 151 00:08:33,000 --> 00:08:36,000 하나는, 이것은 분명히 변수이지만, 그냥 넣어 충분하지 않습니다 152 00:08:36,000 --> 00:08:39,000 귀하의 HTML 인해 코스의 본문에 $ 카운터 153 00:08:39,000 --> 00:08:43,000 그것은 귀하의 HTML을 PHP 중 단지이 있다면 HTML입니다 거라 생각합니다. 154 00:08:43,000 --> 00:08:48,000 당신은 그대로 화면에 인쇄 할 $가 카운터 싶습니다. 155 00:08:48,000 --> 00:08:51,000 >> 대신 PHP 모드로 하락하여 156 00:08:51,000 --> 00:08:55,000 구문이 조각을 우리는 동적으로 여기에 값을 삽입 할 수 있습니다 157 00:08:55,000 --> 00:08:58,000 우리가 지난 번에 무슨 짓을했는지에 대한 정신에서 매우 유사 158 00:08:58,000 --> 00:09:00,000 문자열에 값을 삽입. 159 00:09:00,000 --> 00:09:04,000 사실,이 문자 그대로 같이 말을위한 속기 표기법입니다 160 00:09:04,000 --> 00:09:12,000 인쇄 (카운터 $) 또는 printf (% s의, 카운터) 같은, 161 00:09:12,000 --> 00:09:14,000 또는, 당신은 온라인 또는 교과서에서 보셨을 수 있으므로, 162 00:09:14,000 --> 00:09:17,000 에코라는 PHP의 함수가 있습니다 163 00:09:17,000 --> 00:09:20,000 이는 같은 일을 수행하고, 그 모든 단지 더 이상 숨이 차는 방법입니다 164 00:09:20,000 --> 00:09:25,000 말하는 00:09:28,000 한 사건에서는 해둘 필요는 없다 166 00:09:28,000 --> 00:09:30,000 물음표 후 단어 PHP. 167 00:09:30,000 --> 00:09:34,000 이 우리가 잠시 전에 본 것을 다시에 대한 속기 표기법입니다 168 00:09:34,000 --> 00:09:37,000 이는 어떤 값을 울리는 있습니다. 169 00:09:37,000 --> 00:09:39,000 >> 이 최종 결과는 실제로 알아 보자. 170 00:09:39,000 --> 00:09:43,000 저 우리 counter.php 파일에 이상 가자 171 00:09:43,000 --> 00:09:47,000 우리는 다윗이 그냥 코드를 연주하여 실수를했다는 표시됩니다. 172 00:09:47,000 --> 00:09:50,000 그는이 일을 망쳐 놨다는 어떤 해결책을 가자의, 173 00:09:50,000 --> 00:09:54,000 그리고 오류가 줄 37, 거기 갔다 보인다. 174 00:09:54,000 --> 00:09:59,000 이 페이지의 상단에 따르면이 사이트 0 명 번 방문했습니다. 175 00:09:59,000 --> 00:10:02,000 자, 이제 앞서 가자, 브라우저 상단의를 클릭 176 00:10:02,000 --> 00:10:05,000 , 아이콘을 다시로드, 내가 새로 고침을 클릭합니다 177 00:10:05,000 --> 00:10:12,000 지금은 사이트 1 회, 2, 3, 4, 5, 6, 7, 8을 방문했습니다. 178 00:10:12,000 --> 00:10:16,000 우리가이 페이지의 소스 보면 실제로, 실제 소스 코드가 변경됩니다 179 00:10:16,000 --> 00:10:19,000 와 PHP의 전체 부재를 발견하고, 그게 때문에 180 00:10:19,000 --> 00:10:23,000 PHP 코드는, 평가 또는 서버 측을 해석됩니다 181 00:10:23,000 --> 00:10:27,000 그리고 그렇게는 PHP 스크립트의 출력이 궁극적 브라우저로 전송 무슨 의미 182 00:10:27,000 --> 00:10:31,000 이 경우 일부 원시 HTML 및 일부 원료 텍스트가있는 것입니다. 183 00:10:31,000 --> 00:10:33,000 무슨 일이야? 184 00:10:33,000 --> 00:10:37,000 >> 음, 코드의 상대적으로 몇 줄을 내가 저장할 수 오전 185 00:10:37,000 --> 00:10:40,000 지속적으로 몇 초에 걸쳐, 또는 경우 우리는 충분히 기다렸습니다 186 00:10:40,000 --> 00:10:44,000 HTTP를 만드는 방법에 분에도 시간은, 어떤 값 187 00:10:44,000 --> 00:10:47,000 우리가 보존 한 것처럼 상태 저장을 보인다 188 00:10:47,000 --> 00:10:51,000 서버에이 연결, 그리고 이건 그냥 내가 마지막으로 그에게 말한 것을 기억이야 189 00:10:51,000 --> 00:10:55,000 하지만 현실에서 후드 아래에 무슨 일 복잡성을 아주 많이가 190 00:10:55,000 --> 00:10:59,000 PHP는 나에게 환상을 제공 할 수 있도록 쿠키를 포함 191 00:10:59,000 --> 00:11:02,000 이 쇼핑 카트의 같은 기능입니다. 192 00:11:02,000 --> 00:11:05,000 지금은, 우리가 그냥 정수를 저장하는 사소한 예를 들어, 193 00:11:05,000 --> 00:11:08,000 하지만 그 기능은 큰 도움이 될 다시 올 것이다 194 00:11:08,000 --> 00:11:10,000 우리는 더 복잡한 프로젝트에 대해 얘기 시작하면 195 00:11:10,000 --> 00:11:12,000 그 사이에 문제는 7로 설정합니다. 196 00:11:12,000 --> 00:11:16,000 이 CS50에서 설정하여 매우 마지막 문제입니다. 197 00:11:16,000 --> 00:11:19,000 내가 알고, 정말 슬픈 일 이죠,하지만 당신이 찾아내는 것은 우리가 결론거야 있다는 것입니다 198 00:11:19,000 --> 00:11:22,000 실제로 전환하여 학기의이 부분 199 00:11:22,000 --> 00:11:25,000 C의 맥락에서 확실히 PHP의 맥락에 200 00:11:25,000 --> 00:11:27,000 하지만 똑같은 기본 중 일부를 사용하는 동안 201 00:11:27,000 --> 00:11:29,000 우리는 시간에 대해 얘기했습니다. 202 00:11:29,000 --> 00:11:33,000 >> pset 7 목적은 CS50 금융을 구현하는 것입니다 203 00:11:33,000 --> 00:11:37,000 야후 금융 또는 Google 금융의 자신의 버전이있는 것입니다 204 00:11:37,000 --> 00:11:40,000 당신이 할 수있는 능력을 가지고 상기하거나 Etrade.com 205 00:11:40,000 --> 00:11:43,000 주어진 기호에 대한 주식 가격을 찾아,하지만 그보다 더 많은 206 00:11:43,000 --> 00:11:48,000 당신은 주식을 "구매"와 "판매"할 수 있습니다 207 00:11:48,000 --> 00:11:51,000 그 때문에이 홈 페이지 등 다양한 증권 거래소에서 거래 아르 208 00:11:51,000 --> 00:11:55,000 여기 정말 우리가 시작한 할 수있는 정도입니다, 제안 209 00:11:55,000 --> 00:11:59,000 당신을위한 문제 세트, 당신은 사용자 이름과 암호를 요청하는 로그인 폼을 갖추고 있습니다. 210 00:11:59,000 --> 00:12:03,000 결국 우리가 보게 될 그 말은, 이후 제출 버튼을 가지고 있지만, 211 00:12:03,000 --> 00:12:06,000 이 아무것도은 아직 후드 아래에 갈 수 없어 그 때문에 212 00:12:06,000 --> 00:12:09,000 여러분이 새 사용자를 등록 할 수있는 기능을 구현하기 위해 남아 213 00:12:09,000 --> 00:12:12,000 , 주식을 판매, 주식을 구입 할 수있는 능력 214 00:12:12,000 --> 00:12:14,000 실제로 현재의 주식 가격을 찾아합니다. 215 00:12:14,000 --> 00:12:17,000 >> 우리가 한 때문에 실제로이 가능한 현실 세계로 될 것입니다 216 00:12:17,000 --> 00:12:20,000 하나의 함수를 수 코드의 비트를 포함 217 00:12:20,000 --> 00:12:25,000 멋지고 무료 데이터를 만들어 야후 금융을 쿼리하는 방법 218 00:12:25,000 --> 00:12:31,000 주식 기호 또는 종목 코드를 기반으로 주가를 찾는 경우, 219 00:12:31,000 --> 00:12:34,000 그리고 당신은 일의 현재 주식 가격을 다시. 220 00:12:34,000 --> 00:12:37,000 특정 pset에 당신이 실제로 표시되는 데이터는 것입니다 221 00:12:37,000 --> 00:12:40,000 현실 세계와 같은에 대해 당신이 실제로 인터페이스하고 싶은받을 수로 222 00:12:40,000 --> 00:12:43,000 실제 주식, 실제 가격과 223 00:12:43,000 --> 00:12:47,000 그리고 우리는 당신이 아마 할 수있는 방법 많은 돈을 확인한다 224 00:12:47,000 --> 00:12:51,000 자신의 문제 설정과 재생의 다음 몇 일 동안. 225 00:12:51,000 --> 00:12:55,000 >> 하지만 그건 먼저 확실히 더 복잡한 뭔가를 설계하는 방법에 대한 무대를 설정 226 00:12:55,000 --> 00:12:59,000 counter.php보다, 그 지금까지 신입생 인스턴트 메시지 예제의 그 누구보다 더 복잡한 227 00:12:59,000 --> 00:13:02,000 우리를 허용 - 여기서 몇 패러다임을 소개 봅시다 228 00:13:02,000 --> 00:13:06,000 pset 7 수도 있으며 최종 프로젝트가 기반 무언가 웹을하지 않으면 모두 229 00:13:06,000 --> 00:13:11,000 자신이 제정신이 유지, 코드가 잘 정리하기 위해, 230 00:13:11,000 --> 00:13:15,000 그리고, 공동 향한 조치를 취할 CS50의 마지막 프로젝트에 관계없이 231 00:13:15,000 --> 00:13:18,000 또는 미래에 뭔가 프로그램을 계속하는 경우 초과. 232 00:13:18,000 --> 00:13:21,000 이 일반적인 디자인 패러다임이 233 00:13:21,000 --> 00:13:24,000 컴퓨터 과학 및 소프트웨어 개발에 더 일반적으로 234 00:13:24,000 --> 00:13:27,000 MVC, 모델 뷰 컨트롤러로 알려져 235 00:13:27,000 --> 00:13:30,000 이 방법은 아주 좋은 아이디어를 설명하는 바보 약자입니다 236 00:13:30,000 --> 00:13:34,000 이는, 프로그램의 다양한 측면의 분리입니다 237 00:13:34,000 --> 00:13:39,000 특히 별도의 로직이나 웹 사이트의 비즈니스 로직을 유지 238 00:13:39,000 --> 00:13:42,000 같은 일을 포함 그 어떤하므로 239 00:13:42,000 --> 00:13:45,000 함수를 호출하고 데이터베이스를 쿼리하고 같은 240 00:13:45,000 --> 00:13:48,000 귀하의 HTML 사이에 발생하지 241 00:13:48,000 --> 00:13:51,000 오히려 별도의 파일로, 그리고 실제로,이 하나의 파일이있어 242 00:13:51,000 --> 00:13:54,000 당신은 컨트롤러 전화를 일반적으로 해당 243 00:13:54,000 --> 00:13:56,000 그건 정말 작업 브레인, 우리는 예를 볼 수 있습니다 244 00:13:56,000 --> 00:13:58,000 단지 순간이. 245 00:13:58,000 --> 00:14:01,000 >> 코드를 프로그래밍하는 모델이 246 00:14:01,000 --> 00:14:05,000 그 데이터베이스 이야기, 그 야후 금융과 같은 한테 뭐라고합니까, 247 00:14:05,000 --> 00:14:08,000 그리고 MVC에서 V, 전망이있어 248 00:14:08,000 --> 00:14:11,000 미학, 실제로 포함 된 파일과 관련이 있어요 그 물건들 249 00:14:11,000 --> 00:14:14,000 귀하의 HTML, 어쩌면 당신 CSS와 같은. 250 00:14:14,000 --> 00:14:17,000 여기 아이디어는,이 사진에서 알 수 있듯이, 그거 컨트롤러 251 00:14:17,000 --> 00:14:21,000 우리가 곧 보게 될 당신이 특히 pset 7 볼과 같은 파일입니다, 252 00:14:21,000 --> 00:14:24,000 세계는 자신의 웹 브라우저를 통해 랑 얘기하는. 253 00:14:24,000 --> 00:14:27,000 즉, 공용 인터넷에 방문한됩니다 파일입니다 254 00:14:27,000 --> 00:14:30,000 하지만 컨트롤러는, 잠재적으로 모델에 말을 255 00:14:30,000 --> 00:14:34,000 이는 데이터에 관련 코드가 포함 된 하나 이상의 다른 파일입니다 256 00:14:34,000 --> 00:14:37,000 코드는 데이터베이스와 같은 관련, 다음은 말하고 257 00:14:37,000 --> 00:14:40,000 전망으로 알려진 컨트롤러는 하나 이상의 다른 파일, 258 00:14:40,000 --> 00:14:43,000 웹 페이지의 미학, 종류의 템플릿은, 그 아르 259 00:14:43,000 --> 00:14:47,000 입력으로 일부 데이터를 걸릴 수 있습니다,하지만 하루의 끝에서 260 00:14:47,000 --> 00:14:50,000 뷰의 내부 유일한 논리, 그 데이터의 렌더링해야합니다 261 00:14:50,000 --> 00:14:53,000 루프를 통해 반복하고 실제로 일부를 토 262 00:14:53,000 --> 00:14:56,000 PDF와 같은 HTML 기반의 연주는 그 또는 무언가. 263 00:14:56,000 --> 00:14:59,000 >> 어떤 MVC에 대한 좋은 건 당신이 다른 전망을 가질 수 있다는 것입니다 264 00:14:59,000 --> 00:15:02,000 파일 형식 당신 실제로 유형에 따라 장치의 유형에 따라 265 00:15:02,000 --> 00:15:04,000 사용자에게 보여주고 싶어. 266 00:15:04,000 --> 00:15:10,000 의 몇 점차적으로 더 복잡하고 잘 디자인 된 예제를 살펴 보자 267 00:15:10,000 --> 00:15:13,000 여기 버전 0 첫번째 시작으로. 268 00:15:13,000 --> 00:15:16,000 내가 가서 오늘은 MVC 디렉토리에 열어 보자 269 00:15:16,000 --> 00:15:21,000 파일 디렉토리 0에 index.php를했다. 270 00:15:21,000 --> 00:15:26,000 이 슈퍼 단순하고 매우 underwhelming 웹 사이트입니다 공지 사항 271 00:15:26,000 --> 00:15:29,000 즉, CS50에 대한 홈페이지의 버전 0의 일종 이죠 272 00:15:29,000 --> 00:15:32,000 우리는 강좌에 대한 링크를 어떻게 발견, 우리는 강의 계획서에 대한 링크가 273 00:15:32,000 --> 00:15:35,000 나는 강의 통지에 대한 링크를 수행하는 경우 그 URL 274 00:15:35,000 --> 00:15:39,000 위에서는 lectures.php로 변경 예정이다. 275 00:15:39,000 --> 00:15:44,000 그때 나는 1 주차 통지에 대한 링크를 따라 가면 그 week1.php의 URL로 변경됩니다. 276 00:15:44,000 --> 00:15:46,000 여기에 비교적 간단한 계층 구조가있는 것 같습니다. 277 00:15:46,000 --> 00:15:49,000 >> 의이 도시는 배치하는 방법에 후드 아래에 잠깐 살펴 보자 278 00:15:49,000 --> 00:15:53,000 나는 index.php 보면 실제로, 그것은 아주 간단합니다. 279 00:15:53,000 --> 00:15:57,000 사실,이 PHP 파일이라고하더라도 실제 프로그래밍 코드는 없습니다. 280 00:15:57,000 --> 00:16:01,000 I는 사용자가 보는 끝나 진 않지 그냥 PHP 여기 쓴 댓글이 있습니다. 281 00:16:01,000 --> 00:16:05,000 PHP 태그 사이에 물론, 같은 전에, 아무 것도 282 00:16:05,000 --> 00:16:08,000 해석됩니다, 만약 의견이라도하고 댓글을 해석하는 방법 283 00:16:08,000 --> 00:16:11,000 하루의 끝에서 그걸 버릴 만 의미가 아닌 실제 284 00:16:11,000 --> 00:16:15,000 브라우저로 보내, 여기에 모든 것이 미학집니다. 285 00:16:15,000 --> 00:16:20,000 나는 유사 lectures.php 열 경우이 너무 단지 하드 코딩 된 파일입니다. 286 00:16:20,000 --> 00:16:23,000 그것은 무언가라고 할 수 발생합니다. PHP는, 287 00:16:23,000 --> 00:16:27,000 하지만 그것은 정말로 단지입니다. HTML 및 week1.php, week2.php 288 00:16:27,000 --> 00:16:31,000 마찬가지로 단지 마크 업입니다,이 설계의 단점의 무리가 있습니다. 289 00:16:31,000 --> 00:16:33,000 하나는 복사 / 붙여 넣기의 거대한 금액입니다. 290 00:16:33,000 --> 00:16:37,000 이러한 파일 중 변경 유일한은 정렬되지 않은 목록하더라도, 291 00:16:37,000 --> 00:16:41,000 리 태그는, 나는 그럼에도 불구하고 문서 형식, HTML, 머리를,이 292 00:16:41,000 --> 00:16:44,000 제목, 가까이 몸 가까이 HTML 등 293 00:16:44,000 --> 00:16:47,000 모든 단일 파일에있는 제가하고 싶은 경우 구조 조정을 의미 294 00:16:47,000 --> 00:16:50,000 이 웹 페이지 또는 I가 들어가서 변경해야 그것을 restylize 295 00:16:50,000 --> 00:16:54,000 이러한 모든 파일을 수동으로 또는 일부 대규모로가 찾아 교체하십시오. 296 00:16:54,000 --> 00:17:01,000 >> 의 현재 버전 1에서 영리하고, 더 이상 생각 디자인을 향해 한 걸음 가져 가자 297 00:17:01,000 --> 00:17:04,000 상기와 같은 당은 우리가 함께 놀 수 있도록 포함 한 들립 298 00:17:04,000 --> 00:17:07,000 우리가 여기에 있다는 가정에 통보이 더 여유 299 00:17:07,000 --> 00:17:10,000 이 사이트의 버전 1에있는 파일의 요약, 300 00:17:10,000 --> 00:17:13,000 그리고 자신을 알아 요인에 제가 찍은 것 같다 301 00:17:13,000 --> 00:17:17,000 몇 가지 일반적인 코드를 header.php와 footer.php. 302 00:17:17,000 --> 00:17:20,000 음, 그 첫 번째 안에 뭐가를 살펴 보자. 303 00:17:20,000 --> 00:17:23,000 Header.php은 익숙 304 00:17:23,000 --> 00:17:26,000 하지만 어디서 끊어 질 않는 경우가? 305 00:17:26,000 --> 00:17:30,000 오른쪽 라인 (19) 후, 일반적으로 모든 것을 인 것 306 00:17:30,000 --> 00:17:33,000 파일 index.php, lectures.php에서 307 00:17:33,000 --> 00:17:36,000 week1하고 앞의 예에서 week2.php. 308 00:17:36,000 --> 00:17:40,000 내가 한 짓이, 복사 및 모든 파일에 공통했습니다 컷 전부 였어요 309 00:17:40,000 --> 00:17:44,000 별도의 헤더 파일에 넣어, 그리고 유사 footer.php에서 310 00:17:44,000 --> 00:17:48,000 나도 같은 원칙을 적용 않았다 상기 유일한 재미있는 내용 311 00:17:48,000 --> 00:17:52,000 footer.php에 두 가까이 몸과 가까이 HTML입니다. 312 00:17:52,000 --> 00:17:55,000 >> 그런데이 지금 의미하는 것은 그 새 버전에 313 00:17:55,000 --> 00:17:59,000 index.php 통지를 얼마나 간단하게는 얻을 수 있습니다. 314 00:17:59,000 --> 00:18:02,000 허락하신다면, 더 많은 암호 조금 덜 직관적보고, 315 00:18:02,000 --> 00:18:06,000 위에서 아래로 따라 올 수 있지만, 내 하나님은 그 중복의 모든들이 지금은 사라져 버렸습니다. 316 00:18:06,000 --> 00:18:10,000 우리는 그대로 필요까지 상단라는 PHP 함수를 사용하여 필요 317 00:18:10,000 --> 00:18:15,000 매우 연상되는, C의의 것은 # 메커니즘을 포함 연상케합니다. 318 00:18:15,000 --> 00:18:17,000 우리는 상단에 header.php이 필요합니다. 319 00:18:17,000 --> 00:18:20,000 우리는 아래에 footer.php을 필요로하고, 그 유일한 방법은 다른 320 00:18:20,000 --> 00:18:25,000 또는이 파일에 대한 특별한는 고유해야 해 콘텐츠입니다. 321 00:18:25,000 --> 00:18:29,000 그때 lectures.php, 말에 가면 같은 원칙이 적용됩니다. 322 00:18:29,000 --> 00:18:32,000 다시 말하지만, 일부 꼭대기 의견,하지만 난 헤더를 필요는 바닥 글 필요 323 00:18:32,000 --> 00:18:35,000 와 사이에이 실제로 바뀌 내용입니다. 324 00:18:35,000 --> 00:18:38,000 우리가 주 1 주에봤을 때, 2 우리는 볼 수있을 325 00:18:38,000 --> 00:18:42,000 같은 원리가 거기에 적용했다고. 326 00:18:42,000 --> 00:18:44,000 음, 우리는 준비가 덜 안 끝났어. 327 00:18:44,000 --> 00:18:48,000 >> 가 비슷한 구조를 가지고 버전 2를 살펴, 봅시다 328 00:18:48,000 --> 00:18:50,000 하지만 다른 뭔가를 도입했습니다 지금 확인합니다. 329 00:18:50,000 --> 00:18:53,000 라인 10 나는 helpers.php을 도입했습니다 330 00:18:53,000 --> 00:18:55,000 이는 분명 도우미 기능을 포함하고 있습니다. 331 00:18:55,000 --> 00:18:58,000 도우미 기능은 일반적으로 상대적으로 짧은 기능입니다 332 00:18:58,000 --> 00:19:01,000 당신은 다양한 장소에서 당신을 돕기 위해 작성하는 333 00:19:01,000 --> 00:19:04,000 그리고 helpers.php의 안에 알아 보자. 334 00:19:04,000 --> 00:19:07,000 그 2 기능을 가지고 같은이 경우 같습니다. 335 00:19:07,000 --> 00:19:10,000 우리의 큐브 예를 다른 날부터 리콜 336 00:19:10,000 --> 00:19:13,000 당신은 PHP에서 자신의 기능을 정의하고 내가 지금 한 것은 내가들은이 수 337 00:19:13,000 --> 00:19:17,000 바닥 글을 렌더링하고 헤더를 렌더링이라고 정의 기능, 338 00:19:17,000 --> 00:19:21,000 매개 변수를 취 중 첫 번째는, 데이터라고 339 00:19:21,000 --> 00:19:25,000 그의 기본 값으로이 제안 빈 배열,이다 340 00:19:25,000 --> 00:19:29,000 우리는 실제로 PHP의 최신 버전에서 더욱 간결이를 작성할 수 341 00:19:29,000 --> 00:19:32,000 열린 대괄호 말을하여 대괄호를 마감했다. 342 00:19:32,000 --> 00:19:35,000 그 크기는 0 빈 배열하지만,​​ 그럼에도 불구하고 배열을 의미합니다. 343 00:19:35,000 --> 00:19:38,000 >> 이 추출물 함수는 점에서 좀 특별합니다 344 00:19:38,000 --> 00:19:41,000 만약 잘못된 것은 그것의 인자로 연관 배열이 소요됩니다 345 00:19:41,000 --> 00:19:45,000 그는 0 개 이상의 키 값 쌍을 가지고, 당신은 foo는의 핵심이있는 경우 346 00:19:45,000 --> 00:19:48,000 과 바 추출 기능에게의 값 347 00:19:48,000 --> 00:19:51,000 줄 11으로, 그 지금부터 상황을 만듭니다 348 00:19:51,000 --> 00:19:57,000 당신은 가치 바는 $ foo는라는 지역 변수가 있습니다. 349 00:19:57,000 --> 00:19:59,000 그리고 데이터 배열에서 더 많은 키와 값을 가진다면, 350 00:19:59,000 --> 00:20:03,000 마찬가지로 그들은 지역 범위로 추출됩니다 351 00:20:03,000 --> 00:20:06,000 또는 이름 공간이 너무 footer.php과 352 00:20:06,000 --> 00:20:09,000 여기 같은 생각이 너무 header.php 353 00:20:09,000 --> 00:20:12,000 이러한 변수에 액세스 할 수 있습니다. 354 00:20:12,000 --> 00:20:15,000 사실, 다시 header.php를 열어 355 00:20:15,000 --> 00:20:18,000 지금은이 버전의 모양에 관심을 끌기. 356 00:20:18,000 --> 00:20:22,000 >> 대신 하드 모든 단일 페이지에 대한 제목으로 CS50 코딩 357 00:20:22,000 --> 00:20:24,000 가 가능 동성을 확인합니다. 358 00:20:24,000 --> 00:20:29,000 5 호선에서 나는 제목 변수를 울리는거야 359 00:20:29,000 --> 00:20:34,000 하지만 먼저 반드시 htmlspecialchars라는 함수에 해당 제목 변수를 통과거야. 360 00:20:34,000 --> 00:20:38,000 기능에 대한 멍청한 이름이 있지만 한, 정말이게 뭔지 않습니다. 361 00:20:38,000 --> 00:20:41,000 이 보장은 어떤 특수 문자 362 00:20:41,000 --> 00:20:46,000 에 전달 된 문자열에 제대로 HTML을 탈출하고 있습니다. 363 00:20:46,000 --> 00:20:49,000 이 사실은 크로스 사이트 스크립팅 공격을 불리는 것을 피할 방법입니다 364 00:20:49,000 --> 00:20:52,000 상기 사람이 할 수있는 악의적 또는 실수로 365 00:20:52,000 --> 00:20:55,000 웹 사이트에 자신의 HTML를 삽입 366 00:20:55,000 --> 00:20:59,000 어떤 형식으로 붙여 넣어, 예를 들어, 367 00:20:59,000 --> 00:21:02,000 당신은 매우, 특히 자바 스크립트 코드, 예상되지 않은 무언가 368 00:21:02,000 --> 00:21:05,000 우리는 두 주 시간에 대한 얘기 하죠 있습니다. 369 00:21:05,000 --> 00:21:08,000 >> 이 지금 header.php, 그것은보기의 370 00:21:08,000 --> 00:21:12,000 당신이 심미적 일부 데이터 집합의 내용을 볼 수 있습니다 이었어요. 371 00:21:12,000 --> 00:21:14,000 그러나 더 구체적으로, 그것은 템플릿입니다. 372 00:21:14,000 --> 00:21:19,000 이것은 우리가 모든 페이지의 헤더처럼 보이도록 원하는 것을의 지금 청사진의 일종입니다 373 00:21:19,000 --> 00:21:23,000 하지만 우리가 제목이 동적으로 삽입하려면 그 일부 역 동성이있어 374 00:21:23,000 --> 00:21:26,000 제목 변수에 따라 375 00:21:26,000 --> 00:21:30,000 우리가 전화했을 때 그는 다시 추출 된 376 00:21:30,000 --> 00:21:33,000 렌더링 헤더 기능. 377 00:21:33,000 --> 00:21:36,000 이제 우리는 렌더 바닥 글을 살펴봤을 때, 실제로 많은 지금은 그 사용이 없어요 378 00:21:36,000 --> 00:21:40,000 footer.php에 어떠한 역 동성 없습니다 때문입니다. 379 00:21:40,000 --> 00:21:43,000 ,있을 수 있지만, 현재는이 태그의 하드 코딩 된 목록입니다 수 있습니다 380 00:21:43,000 --> 00:21:46,000 실제로 이유가 제시 있도록하지만, 같은 생각이 적용됩니다 381 00:21:46,000 --> 00:21:49,000 우리는 렌더 헤더와 렌더 바닥 글 기능을 갖는 시간을 낭비 했어? 382 00:21:49,000 --> 00:21:52,000 , 제가​​ 버전 3에 지금 대신에 가자 383 00:21:52,000 --> 00:21:56,000 및 도우미의 버전 3에서조차 더를 단순화하기로 결정했습니다. 384 00:21:56,000 --> 00:21:58,000 >> 내가 한 렌더링 기능이 보자. 385 00:21:58,000 --> 00:22:02,000 내가 그것을 다른 인자를 받아 보자, 이번에는, 템플릿이라고 386 00:22:02,000 --> 00:22:05,000 어떤은 템플릿의 이름으로 의미 387 00:22:05,000 --> 00:22:11,000 그럼 내가 presumptuously 연결할 수 있습니다. PHP를 그 변수의 값으로, 388 00:22:11,000 --> 00:22:17,000 다음은 foo.php, bar.php 또는 header.php와 footer.php를 존재하는 경우 389 00:22:17,000 --> 00:22:20,000 그럼 내가 가서 변수 데이터를 추출거야 390 00:22:20,000 --> 00:22:23,000 그리고 그 경로를 필요로합니다. 391 00:22:23,000 --> 00:22:29,000 나는 index.php를 열고있는 경우 즉, 지금이 기능을 사용하는 방법 392 00:22:29,000 --> 00:22:32,000 난 더 이상 렌더링 헤더를 호출하지 않는 것을 확인할 수 있습니다. 393 00:22:32,000 --> 00:22:36,000 난 단지 렌더링 전화,하지만 헤더의 인용 가치 전달 394 00:22:36,000 --> 00:22:39,000 명확하게 할 템플릿 사실은로드하고 싶습니다. 395 00:22:39,000 --> 00:22:41,000 >> 그런 다음 이상 여기 내가하고있는 일 확인합니다. 396 00:22:41,000 --> 00:22:44,000 나는 제목의 동적 키에 지나가던 길에 397 00:22:44,000 --> 00:22:47,000 이 너무 CS50의 가치, 그리고, 우리가 전에 본대로, 398 00:22:47,000 --> 00:22:51,000 PHP의 최신 버전에서 더 간결을 만들 수 399 00:22:51,000 --> 00:22:54,000 어디, 대괄호와 배열 기능을 대체 할 수 400 00:22:54,000 --> 00:22:57,000 제가 제안하는이 더 많은 읽을 수와 확실히 401 00:22:57,000 --> 00:22:59,000 약간의 입력을 쉽게. 402 00:22:59,000 --> 00:23:02,000 그리고, 하단의 렌더링 바닥 글 호출, 403 00:23:02,000 --> 00:23:05,000 우리는 모든에 두번째 인자에 더 연관 배열을 전달하지 쓰지 않는다 404 00:23:05,000 --> 00:23:07,000 그 바닥 글의 아무것도 동적 안에 있기 때문입니다. 405 00:23:07,000 --> 00:23:10,000 그것은 HTML에 대한 좀 가까이에 태그입니다. 406 00:23:10,000 --> 00:23:14,000 좋아, 우리는 여기서 물건을 청소 향해 단계를 복용 407 00:23:14,000 --> 00:23:17,000 하지만 나 2 최종 예를 열 수 있습니다. 408 00:23:17,000 --> 00:23:21,000 지금 의식 결정을 내린 한이 사람, 번호 4, 통지 409 00:23:21,000 --> 00:23:26,000 드디어 내 파일에 일부 계층 구조를 사용하여 앞의 예에 따라 개선 할 수 있습니다. 410 00:23:26,000 --> 00:23:29,000 >> 이 요약에서는이 저를 읽기 전 도입 한 것을 확인할 수 411 00:23:29,000 --> 00:23:32,000 이 디렉토리와 템플릿 디렉토리를 포함 412 00:23:32,000 --> 00:23:35,000 그의 내용은 제가 포함 할 것을 될거야 413 00:23:35,000 --> 00:23:38,000 내가 각각 렌더링 할 템플릿. 414 00:23:38,000 --> 00:23:42,000 이거 정말 나 항문되는 일이 깔끔한 유지하려고하는 415 00:23:42,000 --> 00:23:45,000 함께 관련 파일을 유지하지만, 최종 결과 416 00:23:45,000 --> 00:23:48,000 지금 우리가 약간 tidier 설정을 가지고 있지만, 지금 우리가 기억해야 할 것입니다 417 00:23:48,000 --> 00:23:51,000 에서 예를 들어, index.php 418 00:23:51,000 --> 00:23:55,000 우리는 파일 helpers.php을 요구하는 경우 419 00:23:55,000 --> 00:24:01,000 우리는 / helpers.php을 포함 통해 지금 요구해야 420 00:24:01,000 --> 00:24:06,000 지금은 하위 디렉토리에 실제로이기 때문에보다는 helpers.php 말. 421 00:24:06,000 --> 00:24:09,000 지금, 옆으로, 다음 예제와 몇몇 다른에서 볼 수 있습니다 422 00:24:09,000 --> 00:24:11,000 필요와 같은 기능은 한 번 필요합니다. 423 00:24:11,000 --> 00:24:15,000 이 자체 포함이라는 기능은 실제로, 그들은 모두 약간 다른 동작을합니다. 424 00:24:15,000 --> 00:24:18,000 여기 내가 만이 할 슈퍼 확실하게 한 번 요구 말 425 00:24:18,000 --> 00:24:20,000 도우미 한 번 내 프로젝트에 포함되어 있습니다. 426 00:24:20,000 --> 00:24:24,000 하지만 실제로 제대로 내 논리를 생각하면 난 조심이고, 경우 427 00:24:24,000 --> 00:24:27,000 그것은 정상을 필요로 말을 너무 막 충분합니다 428 00:24:27,000 --> 00:24:31,000 그래서 오래으로 자신을 실수로 다른 곳에서 같은 파일을 필요로하지 않습니다. 429 00:24:31,000 --> 00:24:34,000 사실이 사용하는 다음 일을 좀 더 효율적입니다 430 00:24:34,000 --> 00:24:38,000 한 번 필요, 난 그저 필요에 내려 잘라께요. 431 00:24:38,000 --> 00:24:40,000 >> 의는 한 걸음 더 나아가 봅시다. 432 00:24:40,000 --> 00:24:46,000 마지막 예를 들어, 지금 버전 5는도 청소기 폴더 계층 구조가 있습니다. 433 00:24:46,000 --> 00:24:50,000 이 최종 버전에서 날 읽어 당 내가 여기서 무슨 짓을했는지 주목 434 00:24:50,000 --> 00:24:54,000 내 말은, 난 항상 셨으니 까하는 내 HTML 디렉토리를 가지고 지금 435 00:24:54,000 --> 00:24:58,000 하지만 내부가의 지금 만 index.php, lectures.php입니다 436 00:24:58,000 --> 00:25:01,000 week1.php 및 week2.php. 437 00:25:01,000 --> 00:25:05,000 디렉토리는 이제 HTML 디렉토리의 옆에 살고 포함 438 00:25:05,000 --> 00:25:08,000 그래서 형제 자매와 같은 수준에서 말하자면합니다. 439 00:25:08,000 --> 00:25:10,000 따라서 템플릿 폴더는 않습니다. 440 00:25:10,000 --> 00:25:14,000 여기에 키 테이크 아웃, 난 조금 더 구조를 도입했습니다입니다 441 00:25:14,000 --> 00:25:17,000 하지만 키 기능은 파일 만 있습니다 442 00:25:17,000 --> 00:25:21,000 공개적으로 주소 지정, 웹을 통해 액세스 할 필요가 그 443 00:25:21,000 --> 00:25:25,000 공용 인터넷에 URL로 내 HTML 디렉토리에 있습니다. 444 00:25:25,000 --> 00:25:28,000 >> 한편, 다른 파일, helpers.php, footer.php, 445 00:25:28,000 --> 00:25:32,000 틀림없이 어쩌면 더 민감 header.php, 446 00:25:32,000 --> 00:25:35,000 어쩌면 헬퍼는 실제로 일부 사용자 이름과 암호 또는 일부 지적이 447 00:25:35,000 --> 00:25:39,000 내 재산은 정말도 실수하는 경우, 세상이보고 싶지 않아 작동합니다. 448 00:25:39,000 --> 00:25:45,000 그것은 대중 HTML 디렉토리에서 유지하기 좋은 연습입니다 449 00:25:45,000 --> 00:25:48,000 공개 할 자신이 필요하지 않는 파일. 450 00:25:48,000 --> 00:25:51,000 당신이 볼 때 예를 들어,이 경우에해야 할 일은, 451 00:25:51,000 --> 00:25:55,000 HTML 디렉토리의 index.php 파일 452 00:25:55,000 --> 00:25:58,000 우리가 필요로 할 때 조금 더 조심해야 발견 453 00:25:58,000 --> 00:26:00,000 또는 한 번에이 파일이 필요합니다. 454 00:26:00,000 --> 00:26:03,000 처음해야 할 .. 상위 디렉토리로 이동하려면, 455 00:26:03,000 --> 00:26:06,000 그런 다음 / / helpers.php을 포함합니까 456 00:26:06,000 --> 00:26:12,000 내가 걱정하고있는 파일을 다시 다운 잠수합니다. 457 00:26:12,000 --> 00:26:16,000 >> 그리고 MVC에 대한 질문 458 00:26:16,000 --> 00:26:20,000 또는 그이 상대적으로 간단 화신? 459 00:26:20,000 --> 00:26:23,000 그리고 우리가에 꽤 집중 명확한 것을 나 만들어 먹자 460 00:26:23,000 --> 00:26:27,000 여기 V, 이러한 템플릿의 전망과 율도 아웃. 461 00:26:27,000 --> 00:26:30,000 우린 단지 아직 C에서 M을 구별하지했습니다. 462 00:26:30,000 --> 00:26:33,000 사실, 거기에 정말 심지어 C 이곳 엔 M이 없으며, 463 00:26:33,000 --> 00:26:36,000 컨트롤러는, 정말로 그렇게하고 있지 않지만, 당신은 훨씬 더 가져올 게 464 00:26:36,000 --> 00:26:39,000 MVC에서 그 두 편지 모두 잘 알고, 465 00:26:39,000 --> 00:26:43,000 또는 오히려, 당신은 C에 훨씬 더 익숙해 가져올 게 466 00:26:43,000 --> 00:26:49,000 문제 세트 7 때문에 수평선에 더 자세한 사항은이에 대한 MVC 인치 467 00:26:49,000 --> 00:26:51,000 질문이 있으십니까? 468 00:26:51,000 --> 00:26:53,000 여기 아무도 실제로 없습니다. 469 00:26:53,000 --> 00:26:57,000 >> 자, 이제 오늘의 두 번째이자 마지막 주제로 이동하세요. 470 00:26:57,000 --> 00:27:00,000 그건 데이터베이스의 소개입니다. 471 00:27:00,000 --> 00:27:03,000 최대이 시점까지 우리는 저장 데이터의 몇 가지 방법을 했어. 472 00:27:03,000 --> 00:27:05,000 우리는 변수를 사용했습니다. 473 00:27:05,000 --> 00:27:08,000 다시 우리의 C 파일에서, I / O 토론 우리는 텍스트 파일을 사용하기 시작 474 00:27:08,000 --> 00:27:11,000 그리고 fprintf처럼 파일을 사용하고 우리는 시작 475 00:27:11,000 --> 00:27:14,000 CSV에 대해 이야기하는 것은 조금, 쉼표로 구분 된 값을, 파일 476 00:27:14,000 --> 00:27:17,000 그래서이 모든 우리는 데이터를 저장 할 수 477 00:27:17,000 --> 00:27:19,000 어느 비 지속적으로 또는 지속적으로. 478 00:27:19,000 --> 00:27:23,000 그러나 CSVs는 검색에 아주 도움이되는 없습니다 479 00:27:23,000 --> 00:27:25,000 그리고 삽입 및 삭제. 480 00:27:25,000 --> 00:27:28,000 정말 쉼표로 구분 그냥 멍청한 텍스트 파일의 481 00:27:28,000 --> 00:27:30,000 당신이하고 싶다면 행의 행으로 행의 행, 482 00:27:30,000 --> 00:27:32,000 파일이 할 수있는 최선 정말 선형 검색입니다 검색 할 수 있습니다. 483 00:27:32,000 --> 00:27:34,000 당신은 파일의 상단에 시작해야,에 전부 다 읽어 484 00:27:34,000 --> 00:27:36,000 관심의 어떤 값이 있는지 확인하십시오. 485 00:27:36,000 --> 00:27:39,000 당신이에 삽입하려는 경우 당신은 같은 일을해야 486 00:27:39,000 --> 00:27:41,000 , 그 위에 반복하고 특정 장소에 삽입 487 00:27:41,000 --> 00:27:45,000 그리고 사실, 당신은 검색 로직 자신의 모든 작업을 수행해야합니다. 488 00:27:45,000 --> 00:27:49,000 >> 당신은 당신 자신이 그 코드를 작성하지 않는 한 CSV 파일에 일치하는 영리한 패턴을 수행 할 수 없습니다. 489 00:27:49,000 --> 00:27:51,000 당신은 CSV 파일의 여과를 할 수 없어 490 00:27:51,000 --> 00:27:53,000 하지 않는 한 당신은 직접 코드를 작성합니다. 491 00:27:53,000 --> 00:27:56,000 다른 사람이 노력의 모든에 넣어 사용한다면 멋지지 않니 492 00:27:56,000 --> 00:27:59,000 실제로 쉽게 삽입 쉽게 검색 할 수 493 00:27:59,000 --> 00:28:01,000 및 삭제 및 업데이트, 등등? 494 00:28:01,000 --> 00:28:04,000 그게 바로 데이터베이스가 무엇인지입니다. 495 00:28:04,000 --> 00:28:07,000 SQL, 구조적 쿼리 언어는 또 다른 언어입니다 496 00:28:07,000 --> 00:28:10,000 우리는 오늘 소개하고 있지만이 너무 매우 액세스 할 수 있는지 497 00:28:10,000 --> 00:28:13,000 그리고 우리가 정말 할 수있는 일은 오직 가장 두드러의 일부 그것을 뽑아 낸되어 있습니다 498 00:28:13,000 --> 00:28:16,000 특성 그게 그렇게 pset 7, 그리고, 당신이 따라 뭔가를 웹을 할 경우 499 00:28:16,000 --> 00:28:19,000 최종 프로젝트, 당신은 자신을 표현 할 수있는 능력을 가지고 500 00:28:19,000 --> 00:28:22,000 데이터 쿼리의 관점 인치 501 00:28:22,000 --> 00:28:25,000 당신은 조금을 저장 할 수있는 기능 또는 많은 양의 데이터가 502 00:28:25,000 --> 00:28:28,000 하루의 끝에있는 훨씬 더 구조화 된 방식으로 503 00:28:28,000 --> 00:28:32,000 SQL로 자신을 표현 할 수 있기 때문에 당신의 인생을 더 쉽게 만들어 504 00:28:32,000 --> 00:28:35,000 더 정확하게는, 훨씬 더 methodically에 순서 505 00:28:35,000 --> 00:28:40,000 데이터의 큰 코퍼스에서 데이터의 일부 하위 집합을 다시. 506 00:28:40,000 --> 00:28:45,000 >> 당신은 정말 Excel과 같은,이 경우, SQL 데이터베이스에 데이터베이스 생각할 수 507 00:28:45,000 --> 00:28:48,000 아니면 스프레드 시트의 숫자, 508 00:28:48,000 --> 00:28:50,000 아니면 여러 스프레드 시트, 물론 스프레드 시트, 509 00:28:50,000 --> 00:28:53,000 행과 열을 가지고 있으며, 때문에 그건 510 00:28:53,000 --> 00:28:56,000 SQL 데이터베이스는 의미에서 관계형, 관계형 아르 511 00:28:56,000 --> 00:28:59,000 그들은 이러한 테이블의 측면에서 데이터를 저장하는 512 00:28:59,000 --> 00:29:01,000 행과 열. 513 00:29:01,000 --> 00:29:03,000 그들은 스프레드 시트와 같은보다 높은 실적 514 00:29:03,000 --> 00:29:05,000 와 스프레드 시트는 인간이 사용할 수하기위한 것입니다. 515 00:29:05,000 --> 00:29:08,000 데이터베이스는 프로그래머에 의해 사용 될 운명 516 00:29:08,000 --> 00:29:12,000 이에 대해 코드를 작성하므로 데이터베이스의 화신 517 00:29:12,000 --> 00:29:14,000 두 명령 행 될 것입니다. 518 00:29:14,000 --> 00:29:18,000 >> 거기서 가장 인기있는 관계형 데이터베이스 중 하나는, 다시 MySQL을합니다 519 00:29:18,000 --> 00:29:22,000 이는 매우 높은 실적을 훌륭하게 무료이며,이 무엇인지 520 00:29:22,000 --> 00:29:24,000 페이스 북 오늘 여전히 어느 정도와 매우 초기 사용 521 00:29:24,000 --> 00:29:27,000 그 많은 데이터를 저장할 수 있습니다, 우리는 순간에 볼 수 있습니다 522 00:29:27,000 --> 00:29:30,000 비교적 간단한 명령을 사용하여 해당 523 00:29:30,000 --> 00:29:33,000 우리는 데이터, 삽입 데이터, 업데이트 데이터를 선택할 수 있습니다 524 00:29:33,000 --> 00:29:37,000 데이터와 같은을 삭제하지만, 다행히,보다 사용자 친화적 인 인터페이스를가 525 00:29:37,000 --> 00:29:39,000 여기 검은 색과 흰색 프롬프트에 입력하는 것보다. 526 00:29:39,000 --> 00:29:43,000 우리는 pset 7과 phpMyAdmin이라는 무료 툴 초과 사용합니다. 527 00:29:43,000 --> 00:29:45,000 이름은 우연입니다. 528 00:29:45,000 --> 00:29:47,000 이 도구는, PHP에서 구현 될 일이 529 00:29:47,000 --> 00:29:49,000 하지만 그건 근본적으로 무관입니다. 530 00:29:49,000 --> 00:29:53,000 어떤 phpMyAdmin에 대한 유용한 것은 그것이 웹 기반 유틸리티 있다는 것입니다. 531 00:29:53,000 --> 00:29:55,000 우리는 당신을 위해 어플라이언스에에 미리 설치 한 532 00:29:55,000 --> 00:29:58,000 그리고 그것으로 당신은 데이터베이스에 테이블을 만들 수 있습니다 533 00:29:58,000 --> 00:30:01,000 당신은 데이터를 삽입 데이터를 삭제하고, 일반적으로 볼 수 있습니다 534 00:30:01,000 --> 00:30:04,000 매우 사용자 친화적 인 환경에서 데이터입니다. 535 00:30:04,000 --> 00:30:07,000 사용자가 phpMyAdmin을 사용하지 않을 수 있습니다. 536 00:30:07,000 --> 00:30:09,000 >> 이 단지 행정 또는 개발자 도구입니다 537 00:30:09,000 --> 00:30:12,000 보고 데이터 주위에 찌르고을 구성하는 방법을 강구하는과, 538 00:30:12,000 --> 00:30:15,000 당신과 같은 직접 Excel 또는 숫자를 사용할 수 있습니다 539 00:30:15,000 --> 00:30:19,000 하지만 후드 아래에 무슨 일이 일어나고 있는지 표시하는 좋은 방법이 될거에요 540 00:30:19,000 --> 00:30:22,000 당신은 해결 흥미로운 문제에 집중하지 많은 수 있도록 541 00:30:22,000 --> 00:30:25,000 마법 명령에. 542 00:30:25,000 --> 00:30:28,000 하자 tabularly 저장 될 수도 데이터의 예를 살펴 543 00:30:28,000 --> 00:30:30,000 관계형 데이터베이스 인치 544 00:30:30,000 --> 00:30:32,000 여기 하나의 예입니다. 545 00:30:32,000 --> 00:30:35,000 지금, 불행하게도, phpMyAdmin은 여러 단어가 너무 던지는 방법의 편에 서 있죠 546 00:30:35,000 --> 00:30:38,000 그리고 당신의 그래픽,하지만에 불과으로 연마하는 경우 547 00:30:38,000 --> 00:30:42,000 ID 열, 사용자 이름 열 및 해시 열, 548 00:30:42,000 --> 00:30:45,000 이 효율적으로 스프레드 시트이지만, 미리보기 할 일 549 00:30:45,000 --> 00:30:49,000 어플라이언스의 테이블 내부의 550 00:30:49,000 --> 00:30:53,000 우리가 문제 세트 7을 제공하는 파일을 사용합니다. 551 00:30:53,000 --> 00:30:57,000 >> 특히, 우리는 당신에게 표현하는 파일을 제공 552 00:30:57,000 --> 00:31:01,000 사용자의 테이블, 3 열을 가진 사용자를 포함하므로 스프레드 시트, 553 00:31:01,000 --> 00:31:05,000 중 하나는 1부터 시작하고 이후 증가되는 고유 한 ID입니다. 554 00:31:05,000 --> 00:31:08,000 두 번째 열에는 사용자 이름이며, 해커 짓을 분들 555 00:31:08,000 --> 00:31:12,000 pset 2 해커 버전은, 적어도이 사용자 이름의 일부를 인식 할 수 있습니다. 556 00:31:12,000 --> 00:31:16,000 오른쪽에 암호는 있지만 문자 암호 아니야. 557 00:31:16,000 --> 00:31:19,000 그들은 해시 그이야가 밝혀 있도록 558 00:31:19,000 --> 00:31:22,000 데이터베이스에 암호를 저장하는 것은 정말 나쁜 생각입니다. 559 00:31:22,000 --> 00:31:25,000 당신은 아마 웹 사이트의 일부 지점에서 읽었어요 560 00:31:25,000 --> 00:31:28,000 또는 일부 회사의 데이터베이스가 손상된 후 당신이해야하는 561 00:31:28,000 --> 00:31:31,000 비밀번호를 변경, 당신은 일에 환불을 할 필요가 562 00:31:31,000 --> 00:31:34,000 어떤 나쁜 사람이 실제로 결과로 귀하의 계정에 침입 때문입니다. 563 00:31:34,000 --> 00:31:38,000 >> 일반 텍스트로 암호를 저장, 데이터베이스에 암호화되지 않은 564 00:31:38,000 --> 00:31:41,000 완전히 엉덩이 랑이며, 아직 크게 재밌어요 565 00:31:41,000 --> 00:31:44,000 그리고 아주 잘 알려진 회사에 대해 읽기 566 00:31:44,000 --> 00:31:47,000 때로는 언론에서 누구 데이터베이스가 손상되며, 567 00:31:47,000 --> 00:31:50,000 그 부분은 재미 없어하지만, 데이터베이스에 포함 된 사실은 암호화되지 않은 568 00:31:50,000 --> 00:31:53,000 암호 코드 한 줄에 있기 때문에 그대로 바보 같은 짓이에요 569 00:31:53,000 --> 00:31:57,000 당신은 특정 위협으로부터 보호 할 수 있으며, 우리가 여기서 무슨 짓을했는지입니다. 570 00:31:57,000 --> 00:32:00,000 심지어 가짜 약간 CS50 금융 버전 571 00:32:00,000 --> 00:32:03,000 우리는 좋은 측정을 위해 비밀번호를 암호화하고, 그런 사실 아르 572 00:32:03,000 --> 00:32:07,000 $ 1 $ 단지 컨벤션과 함께 이러한 암호의 모든 시작합니다. 573 00:32:07,000 --> 00:32:10,000 그건 그냥, 그들은 암호화하거나 정말 해시 있다는 뜻 574 00:32:10,000 --> 00:32:13,000 이는 편도 암호화 기능과 같은 것입니다 575 00:32:13,000 --> 00:32:17,000 상기 당신은 MD5라는 걸과의 효과를 되돌릴 수 없습니다. 576 00:32:17,000 --> 00:32:21,000 >> 50 그 후이 있다는 사실은 의미 소금 값이 577 00:32:21,000 --> 00:32:24,000 50 한 경우를 제외하고이 암호를 모두 해싱 사용되었다. 578 00:32:24,000 --> 00:32:27,000 당신이 거기 볼 수있는 것처럼 물론 광산,,, HA, 579 00:32:27,000 --> 00:32:30,000 다른 소금을 사용했습니다, 그래서 약간까지 걸려 넘어 갔어 분들 580 00:32:30,000 --> 00:32:33,000 어쩌면 해커 2, 그건 우리 사용한 것에의 결과 있었을 텐데 581 00:32:33,000 --> 00:32:36,000 내 비밀번호는 실제로 같은 다른 다른 해시 때문에 582 00:32:36,000 --> 00:32:38,000 거기에 다른 사용자로. 583 00:32:38,000 --> 00:32:41,000 당신이 기다리고 경우 사실, 모든 주 수 있는지 584 00:32:41,000 --> 00:32:44,000 여기에 당신이 도전되었는지 암호는 뭐하는 암호 있었다 585 00:32:44,000 --> 00:32:48,000 그래서 아무도 너무 복잡한 문제 세트 2의 해커 판에 균열합니다. 586 00:32:48,000 --> 00:32:50,000 사실, malan의는 jharvard 같은이었습니다 587 00:32:50,000 --> 00:32:54,000 하지만 우리가 돌​​아 가면 서로 다른 보았다. 588 00:32:54,000 --> 00:32:58,000 >> 그들이 다르게 소금했기 때문에 진홍의 jharvard에 초점을 맞 춥니 다. 589 00:32:58,000 --> 00:33:01,000 이 알고리즘은 그 방법으로 어리둥절했습니다 590 00:33:01,000 --> 00:33:05,000 값을 해시, 암호화 된 값은 좀 달라 보이는데 591 00:33:05,000 --> 00:33:08,000 입력은 약간 다른 있었지만, 때문에 후드 아래에있는 암호 592 00:33:08,000 --> 00:33:10,000 아직 최종적으로 진홍색했다. 593 00:33:10,000 --> 00:33:12,000 이제 누가 신경이나 쓰겠 어? 594 00:33:12,000 --> 00:33:15,000 음, 우리는 샘플 사용자 이름은 샘플 사용자를 제공하고 있습니다 595 00:33:15,000 --> 00:33:18,000 당신은 실제로 일부를 자신의 암호 해시를 가지고 있도록 596 00:33:18,000 --> 00:33:23,000 고객 CS50 금융에 대해 먼저 코드와 함께 땅을 때. 597 00:33:23,000 --> 00:33:27,000 당신은 내부 데이터베이스, MySQL의 내부에 더 많은 테이블을 구현해야합니다. 598 00:33:27,000 --> 00:33:30,000 당신은 효과적으로 더 많은 스프레드 시트를 작성해야하지만, 우리는 당신에게 하나를 선물하기로 결정 599 00:33:30,000 --> 00:33:33,000 당신이 시작하기 위해, 당신은 볼이 문제 세트 사양 600 00:33:33,000 --> 00:33:37,000 이 테이블 가져 오기의 과정을 안내합니다 601 00:33:37,000 --> 00:33:39,000 또한, 특성 중 일부가 무엇인지 설명 602 00:33:39,000 --> 00:33:41,000 당신은 또한 우리가 코드를 제공하는 볼 603 00:33:41,000 --> 00:33:44,000 해시하거나 비밀번호의 암호화를 처리하려면, 604 00:33:44,000 --> 00:33:49,000 그래서 당신은 MD5 또는 같은 모든에 대해 실제로 무엇에 대해 걱정을 너무 많이 할 필요가 없습니다. 605 00:33:49,000 --> 00:33:53,000 >> 그래서, SQL, 구조적 쿼리 언어입니다. 606 00:33:53,000 --> 00:33:56,000 이 간단 해요, 우리가 pset 7에서 사용하기에있는 언어입니다 607 00:33:56,000 --> 00:34:01,000 아마도 일부 데이터베이스에서 데이터를 요청하는 이후. 608 00:34:01,000 --> 00:34:06,000 데이터는, 다시,이 관계형 테이블, 열 및 행에 tabularly 저장됩니다 609 00:34:06,000 --> 00:34:09,000 하지만 삭제 같은 비교적 간단한 구문을 사용하여, 610 00:34:09,000 --> 00:34:12,000 삽입 업데이트를 선택합니다 우리는 정확히 할 수 있습니다. 611 00:34:12,000 --> 00:34:15,000 우리는 삽입 데이터베이스에서 삭제할 수 있습니다 612 00:34:15,000 --> 00:34:19,000 , 데이터베이스에서 데이터를 검색되는 데이터뿐만 아니라 선택을 업데이트합니다. 613 00:34:19,000 --> 00:34:21,000 우리는이 일을 어떻게해야할까요? 614 00:34:21,000 --> 00:34:23,000 제가 어플라이언스로 진행 보자. 615 00:34:23,000 --> 00:34:28,000 , 내가 http://localhost를를 당겨 보자 616 00:34:28,000 --> 00:34:30,000 있는, 다시, 로컬 기기 자체입니다. 617 00:34:30,000 --> 00:34:32,000 그건 기본 닉네임입니다. 618 00:34:32,000 --> 00:34:35,000 이 날 / phpMyAdmin에 가자. 619 00:34:35,000 --> 00:34:39,000 이 어플라이언스가 이해하기 사전입니다 특별한 URL로 갈거야 620 00:34:39,000 --> 00:34:42,000 그 즉시 사용자 이름과 암호 저를 묻는 메시지가 나타납니다. 621 00:34:42,000 --> 00:34:46,000 >> 평소처럼, 나는 jharvard과 진홍색을 입력거야 622 00:34:46,000 --> 00:34:48,000 하지만 컴퓨터에 관리자 계정 걸 알고 있습니다. 623 00:34:48,000 --> 00:34:53,000 단지 CS50 재정에 등록 jharvard도가 있다는 우연의 일치입니다. 624 00:34:53,000 --> 00:34:56,000 Jharvard은 진홍 입력 저에게 우리가 본 사용자 인터페이스를 제공합니다 625 00:34:56,000 --> 00:34:59,000 순간의 단면 전, 그것은 처음에는 조금 안되네요 626 00:34:59,000 --> 00:35:02,000 하지만 안심,이 도구에 링크의 대부분을 클릭해야 할 수 없어. 627 00:35:02,000 --> 00:35:05,000 당신은 도움이 슈퍼 아르 작은 하위 집합을 사용하여 종료됩니다 628 00:35:05,000 --> 00:35:08,000 그 중 첫 번째는 여기 데이터베이스를 백업합니다. 629 00:35:08,000 --> 00:35:11,000 나는 데이터베이스까지 가면, 나는 데이터베이스를 만들 것인지 묻는 메시지가 있어요 것을 확인할 수 있습니다. 630 00:35:11,000 --> 00:35:14,000 이 효과적으로, 새로운 Excel 파일을 만드는 것입니다. 631 00:35:14,000 --> 00:35:18,000 나는 가서이 강의 한테 전화해서, 난 그냥 필드 데이터 정렬을 무시하는거야. 632 00:35:18,000 --> 00:35:20,000 그것은 그 안에 데이터의 표현과 연관이 633 00:35:20,000 --> 00:35:24,000 나는 만들기를 클릭 할, 그리고 내가 작성을 놓아으로 지금 알거야 634 00:35:24,000 --> 00:35:27,000 왼쪽에 더 데이터베이스는 말합니다없는 곳 635 00:35:27,000 --> 00:35:30,000 난 곧 강의 데이터베이스를 볼 수 있습니다. 636 00:35:30,000 --> 00:35:32,000 >> 지금은 왼쪽, 강의 데이터베이스에서 클릭하면 637 00:35:32,000 --> 00:35:34,000 내 탭을 조금 변경 확인합니다. 638 00:35:34,000 --> 00:35:38,000 나는 구조, SQL, 수출, 수입 및 일부 다른 일이있어. 639 00:35:38,000 --> 00:35:40,000 구조 거의 비어 있습니다. 640 00:35:40,000 --> 00:35:43,000 여기 말한대로 어떤 테이블은 데이터베이스를 찾을 수 없습니다 641 00:35:43,000 --> 00:35:47,000 그러니 테이블을 만들 수 있으며, 주자 가서 테이블을 만들 642 00:35:47,000 --> 00:35:53,000 학생들을 좋아하고 우리가 얼마나 많은 열까요? 643 00:35:53,000 --> 00:35:55,000 모든 학생들이 간단하게하자 및하자의 기록 644 00:35:55,000 --> 00:35:58,000 ID 번호, 이름, 이메일 주소. 645 00:35:58,000 --> 00:36:02,000 >> 우린 가야, 그래서 3 열, 그렇게 간단하겠습니다. 646 00:36:02,000 --> 00:36:05,000 여기에 표시되는 형태는 이제 좀 지저분한, 압도적입니다 647 00:36:05,000 --> 00:36:08,000 하지만 우리가 행하여 행을 가야하므로 정말 빨리가 해주지 648 00:36:08,000 --> 00:36:14,000 이 데이터베이스 고유 식별자에 대한 ID의 이름의 첫 번째 열. 649 00:36:14,000 --> 00:36:17,000 이 값은 정수 여야합니다. 사실 난 길이와 값을 무시할 수 있습니다. 650 00:36:17,000 --> 00:36:21,000 INT가 32 비트 당신이 거기에 입력에 관계없이있을거야, 그러니 공백으로 비워 두세요하게 이예요. 651 00:36:21,000 --> 00:36:24,000 정의 된 기본 값은, 난이 null을 만들 수 있습니다. 652 00:36:24,000 --> 00:36:27,000 저 혼자 떠날거야. 기본값 걱정하지하자. 653 00:36:27,000 --> 00:36:29,000 오른쪽 속성에 여기에 스크롤 보자. 654 00:36:29,000 --> 00:36:31,000 이 흥미 롭습니다. 655 00:36:31,000 --> 00:36:33,000 가자 가서 다소 임의의 ID는 서명되지 않은 있어야합니다 있다고합니다. 656 00:36:33,000 --> 00:36:35,000 의 어떤 음수를 낭비하지 말자. 657 00:36:35,000 --> 00:36:37,000 >> 가, 0 40 억 이동 정도일하자, 658 00:36:37,000 --> 00:36:40,000 그리고, 어디 거기 아직 이러한 필드 중 하나를 터치하지 말자 659 00:36:40,000 --> 00:36:43,000 하지만, 제가 여기 이름을 입력하게 660 00:36:43,000 --> 00:36:46,000 그리고 다른 이메일이었고, 캐치 이메일이 있으므로 661 00:36:46,000 --> 00:36:50,000 및 이름, 분명 정수, 그래서 다른 분야에 이러한 변경의 보자. 662 00:36:50,000 --> 00:36:53,000 이 varchar, 가변 길이 문자를 밝혀 663 00:36:53,000 --> 00:36:56,000 SQL 데이터베이스의 문자열 같다 664 00:36:56,000 --> 00:36:59,000 하지만 변수 길이, 당신은 실제로 사전에 얘기해야 665 00:36:59,000 --> 00:37:02,000 문자열의 최대 길이는, 그래서 다소 임의의로 갈거야 666 00:37:02,000 --> 00:37:05,000 국제 대회 유형 255 자까지. 667 00:37:05,000 --> 00:37:08,000 난 정말 32 말할 수. 나는 1,000 말할 수 있습니다. 668 00:37:08,000 --> 00:37:11,000 귀하의 인구 통계 학적 무엇에 자신을 위해 결정해야 종류를 기반으로 669 00:37:11,000 --> 00:37:14,000 가장 긴 학생의 이름과 해당 번호 또는 좀 더 크고로 이동 670 00:37:14,000 --> 00:37:17,000 하지만 varchar에 대한 좋은 것은 그것이 낭비하지 않을 것만 671 00:37:17,000 --> 00:37:19,000 모든 학생의 이름을 255 바이트. 672 00:37:19,000 --> 00:37:23,000 이 다윗의 경우는 전체 255 바이트를 사용하지 않을거야 673 00:37:23,000 --> 00:37:26,000 하지만, 그 상단 바운드 해, 그래서 난 그냥 대회에서 255으로 갈거야 674 00:37:26,000 --> 00:37:30,000 하지만 우리는 낮은 값이 될 것을 토론, 이메일 주소를 수 675 00:37:30,000 --> 00:37:34,000 단지 255 일치하도록하지만, 다시, 우리는 같은 논쟁을 만들 수 있습니다. 676 00:37:34,000 --> 00:37:36,000 하지만 오른쪽에 여기에 다른 일을 할거야. 677 00:37:36,000 --> 00:37:40,000 >> 어떤 데이터베이스에 대한 강력한 것은 그 무거운를 많이 할 수 있다는 것입니다 678 00:37:40,000 --> 00:37:42,000 당신이나 복잡한 작동합니다. 679 00:37:42,000 --> 00:37:46,000 특히, 난 정말 내 학생의 ID 번호가 무엇인지 상관하지 않습니다. 680 00:37:46,000 --> 00:37:49,000 그것은 단지 데이터베이스에 고유 한 식별자 될 운명 681 00:37:49,000 --> 00:37:52,000 그래서 그 학생의 32 비트 간결 표현이 682 00:37:52,000 --> 00:37:55,000 나는 고유를 식별하는 몇 가지 방법이 있도록 683 00:37:55,000 --> 00:37:58,000 수업 시간에 예를 들어 2, 데이비드, 거기 않도록. 684 00:37:58,000 --> 00:38:01,000 사실,이 AI 상자, 자동 증가를 확인거야 685 00:38:01,000 --> 00:38:04,000 데이터베이스, MySQL은, 나가 떠날 수 있도록 686 00:38:04,000 --> 00:38:08,000 모든 새로 삽입 된 학생의 ID가 될 것입니다 무엇. 687 00:38:08,000 --> 00:38:11,000 난 내 코드에서 신경 필요가 없습니다 688 00:38:11,000 --> 00:38:13,000 그리고 나는 또한 색인 메뉴에서 무언가를 선택하는거야. 689 00:38:13,000 --> 00:38:17,000 색인은 여기 독특한 차있다 드롭 다운 690 00:38:17,000 --> 00:38:19,000 인덱스 및 전체 텍스트입니다. 691 00:38:19,000 --> 00:38:21,000 당신은 어쩌면이 몇 가지가 무엇인지 추측 할 수 692 00:38:21,000 --> 00:38:24,000 하지만 관계형 데이터베이스에 밝혀 693 00:38:24,000 --> 00:38:28,000 당신이 프로그래머 또는 데이터베이스 관리자는 preemptively하게 694 00:38:28,000 --> 00:38:32,000 어떤 필드로 데이터베이스에 힌트를 제공 695 00:38:32,000 --> 00:38:34,000 테이블에서 좀 특별하게이 있습니다. 696 00:38:34,000 --> 00:38:37,000 >> 예를 들어,이 경우에는 그런 ID를 말할거야 697 00:38:37,000 --> 00:38:42,000 그렇지 않으면 프라이 머리 키 (primary key)로 알려진 기본 인덱스가 될 것입니다. 698 00:38:42,000 --> 00:38:44,000 이게 정의가 의미하면 해당 ID가 금후입니다 699 00:38:44,000 --> 00:38:48,000 고유이 테이블의 학생들을 식별합니다. 700 00:38:48,000 --> 00:38:53,000 내가이 제약 조건 또는 인덱스를 순례있어하기 때문에 학생은 동일한 ID가 없습니다. 701 00:38:53,000 --> 00:38:55,000 또한, 어떤이가 나에게 무엇을 것입니다 것은 말할 줄 거예요 702 00:38:55,000 --> 00:38:58,000 MySQL은 그 ID는 특별합니다. 703 00:38:58,000 --> 00:39:03,000 제가 ID에 대해 특히 신경, 해보 게하여 고급 데이터 구조의 마법을, 704 00:39:03,000 --> 00:39:05,000 나무의 어떤을 구축 할 수 있습니다. 705 00:39:05,000 --> 00:39:08,000 일반적으로 뭔가 우리가 몇주 전에보고하지 않은 B-트리를 호출 706 00:39:08,000 --> 00:39:11,000 하지만 이진 나무에 정신이 유사한 다른 같은 데이터 구조입니다 707 00:39:11,000 --> 00:39:15,000 우리가 바라 보았다 시도하지만, 말거야 708 00:39:15,000 --> 00:39:18,000 데이터베이스에이 필드는 매우 중요 내가 아마 709 00:39:18,000 --> 00:39:22,000 거기에 검색 할 수 있도록하려면, 어서 가서 고급을 구축 710 00:39:22,000 --> 00:39:25,000 메모리의 데이터 구조는 검색을 신속하게하기 위해 그 때문에 이상적 711 00:39:25,000 --> 00:39:28,000 그들은 일정한 시간이야 아니면 적어도 가능한 한 가까이 712 00:39:28,000 --> 00:39:32,000 이 선형 검색로 바뀔하지 않도록되는데,이 일이 아니 713 00:39:32,000 --> 00:39:34,000 가장 높은 접근 방식을 수행. 714 00:39:34,000 --> 00:39:37,000 대조적으로, 이메일 주소는 프라이 머리 키 (primary key)되었습니다 수 있습니다. 715 00:39:37,000 --> 00:39:41,000 >> 이론적으로, 모든 사람의 이메일 주소는 당신이 계정을 공유하지 않는 한, 독특한 716 00:39:41,000 --> 00:39:45,000 하지만 문자열 같은 것을 사용하는 것이 좋지 않아 717 00:39:45,000 --> 00:39:49,000 프라이 머리 키 (primary key)로 인생의 목적은 고유 식별하는 것입니다면 718 00:39:49,000 --> 00:39:55,000 maximally 255 바이트를 사용하는 이유는 테이블의 행을가 없습니다 719 00:39:55,000 --> 00:39:58,000 당신은 단 4 바이트로 빠져 나갈 수없는 경우 고유 사람을 식별 할 수 720 00:39:58,000 --> 00:40:00,000 또는 32 비트 정수. 721 00:40:00,000 --> 00:40:03,000 일반적으로, 기본 키 짧고 간결해야 722 00:40:03,000 --> 00:40:07,000 이상적으로 정수 또는 64 비트에서 일어나는 큰 정수, 같은. 723 00:40:07,000 --> 00:40:11,000 그러나 이메일 주소는 고유하고도 데이터베이스의 기능 중 하나한다 724 00:40:11,000 --> 00:40:14,000 나를 위해 고유성을 적용하는 것입니다. 725 00:40:14,000 --> 00:40:18,000 그 자체를 이메일로하더라도, 이메일 주소 옆의 여기의 고유 선택하여 726 00:40:18,000 --> 00:40:21,000 , 화면을 스크롤입니다 제가 데이터베이스 말 727 00:40:21,000 --> 00:40:23,000 저를 믿지 않아. 728 00:40:23,000 --> 00:40:26,000 나 데이터베이스에 삽입하게하지 마십시오 729 00:40:26,000 --> 00:40:29,000 내가 바보가 아닌 오전 경우에도 두 번 동일한 이메일 주소, 730 00:40:29,000 --> 00:40:32,000 내 IFS와 다른 IFS 실제 PHP 코드를 아주 잘 731 00:40:32,000 --> 00:40:37,000 실수로 사용자가 기존 이메일 주소로 등록하게 732 00:40:37,000 --> 00:40:40,000 데이터베이스가 아직 정확성에 대한 방어의 또 다른 레벨입니다 733 00:40:40,000 --> 00:40:44,000 중복 이메일 주소가 테이블에 결국하지 않도록 할 수 있습니다. 734 00:40:44,000 --> 00:40:49,000 >> 이제 대조적으로, 이름에 당신은 아마 그 독특한를하지 않으 735 00:40:49,000 --> 00:40:51,000 그런 다음이 데이비드 또는 예를 들어,이 마이크 스미스 (Smiths), 거기에 결코 수 있기 때문에 736 00:40:51,000 --> 00:40:55,000 데이터베이스에 있으므로 그 하나는 우리가 내버려 둘 거예요. 737 00:40:55,000 --> 00:40:58,000 나는 가서 오른쪽 하단에 저장을 클릭거야 738 00:40:58,000 --> 00:41:02,000 모든 좋은 것 같지만 여기 발견 739 00:41:02,000 --> 00:41:04,000 이 지금 우리가에 너무 많은 시간을 할애하지 않을 부분입니다 740 00:41:04,000 --> 00:41:07,000 구문은 약간 복잡, 우리는 테이블을 생성 할 필요가 없기 때문에 741 00:41:07,000 --> 00:41:10,000 그 자주하지만, SQL 자체가 언어입니다, 742 00:41:10,000 --> 00:41:13,000 문법은있는 바로 여기 제가 강조 표시 한 것입니다. 743 00:41:13,000 --> 00:41:18,000 어떤 phpMyAdmin 정말입니까 것은 당신에게 웹 기반 GUI를 생성합니다 744 00:41:18,000 --> 00:41:23,000 당신은 시간을 절약하고 수동에서 입력 할 필요가 없습니다 수있는 745 00:41:23,000 --> 00:41:26,000 그와 같은 상당히 긴 SQL 쿼리. 746 00:41:26,000 --> 00:41:29,000 >> 당신이 원한다면 즉, 수동으로이 테이블을 만들 747 00:41:29,000 --> 00:41:32,000 그 문제 흑인과 백인 프롬프트 또는에서 phpMyAdmin에서 748 00:41:32,000 --> 00:41:35,000 이 다른 탭을 사용하여이 SQL 탭은 어떤 SQL 쿼리를 입력 할 수있는 749 00:41:35,000 --> 00:41:38,000 이 나에게 잠시 촬​​영했을 솔직히, 원하는 750 00:41:38,000 --> 00:41:41,000 실제로 전체 구문을 기억하기 위해, 심지어 아마도 난 것이다 751 00:41:41,000 --> 00:41:45,000 일부 오타 한,이 도구는 그런 식으로 유용합니다, 또한 유익입니다. 752 00:41:45,000 --> 00:41:49,000 당신은 구문이 무슨 날인지 추론 할 수 있음 753 00:41:49,000 --> 00:41:52,000 그냥 멋진 색으로 그 phpMyAdmin이 추가되어 코딩 754 00:41:52,000 --> 00:41:54,000 우리의 시각적 편의를 위해. 755 00:41:54,000 --> 00:41:56,000 그러나 지금 대신이 작업을 수행 까. 756 00:41:56,000 --> 00:42:00,000 저 상단에있는 삽입 탭으로 이동,이 날 가서 예를 들어 삽입 해 보자 757 00:42:00,000 --> 00:42:04,000 하자의 ID가 말하는 사실 상관 없어요. 758 00:42:04,000 --> 00:42:07,000 이 자동 증가에 간다. 난이 데이터베이스 계약을 가만 두지 않을거야. 759 00:42:07,000 --> 00:42:11,000 하지만 데이비드한다, 내 이메일 malan@harvard.edu해야합니다. 760 00:42:11,000 --> 00:42:16,000 >> 너무 앞서 가서 또 다른 하나 마이크 스미스에 넣어 보자. 761 00:42:16,000 --> 00:42:18,000 나는뿐만 아니라 자신에게 성을 제공합니다 762 00:42:18,000 --> 00:42:22,000 우리는 그를, smith@example.com 수 있으실 겁니다 763 00:42:22,000 --> 00:42:24,000 그리고 어디 다음가요? 764 00:42:24,000 --> 00:42:27,000 글쎄, 바둑을 클릭하면, 봐라 할 수있는 버튼입니다 것 같습니다. 765 00:42:27,000 --> 00:42:30,000 삽입 상위 2 행에서 확인할 수 있습니다. 766 00:42:30,000 --> 00:42:32,000 이것은 실제 SQL 쿼리입니다. 767 00:42:32,000 --> 00:42:36,000 나를 위해 실행 phpMyAdmin 도구, 그건 768 00:42:36,000 --> 00:42:40,000 하지만 최종 결과, 통지, 지금 찾아보기 탭으로 이동한다면, 769 00:42:40,000 --> 00:42:43,000 매우 연상 심미적,이 표에 두 행을 볼 것입니다 770 00:42:43,000 --> 00:42:46,000 표 우리는 pset 7 사용자에게 이전 본 771 00:42:46,000 --> 00:42:51,000 중 하나 인 데이비드 Malan, 지금 마이크 스미스 대상 중 하나입니다. 772 00:42:51,000 --> 00:42:54,000 그러나 분명히합시다, 난 phpMyAdmin를 사용할 필요가 없습니다 773 00:42:54,000 --> 00:42:56,000 그리고 실제로, 당신은 곧 pset 7 코드를 작성 할 것 774 00:42:56,000 --> 00:43:01,000 즉, 행과 같은을 행을 추가 행을 삭제 업데이트 프로세스를 자동화 775 00:43:01,000 --> 00:43:04,000 그래서 여기까지 내가 대신 SQL 탭으로 이동하게 776 00:43:04,000 --> 00:43:14,000 학생들이 곳에서 선택 * 및 유형 777 00:43:14,000 --> 00:43:18,000 이메일 = "malan@harvard.edu." 778 00:43:18,000 --> 00:43:21,000 >> 즉 지금 가지고 가정 779 00:43:21,000 --> 00:43:26,000 다른 분야 사이에 일부 HTML 양식 및 이메일 주소의 사용자 유형, 780 00:43:26,000 --> 00:43:29,000 그리고 목표는 이제 백 엔드 코드를 PHP에 781 00:43:29,000 --> 00:43:31,000 실제로 해당 사용자의 다른 세부 사항을 찾아합니다. 782 00:43:31,000 --> 00:43:34,000 전체 이름은 무엇입니까? 귀하의 ID 번호는 무엇입니까? 783 00:43:34,000 --> 00:43:37,000 이 같은 SQL 쿼리를 작성할 수, 학생에서 *를 선택하십시오 784 00:43:37,000 --> 00:43:40,000 어디에서 이메일은 = "malan@harvard.edu." 785 00:43:40,000 --> 00:43:46,000 그리고 다음 Go를 누릅니다하면, 내가, 그리고 실제로 나는 단지 하나의 행을 다시해야 될납니다. 786 00:43:46,000 --> 00:43:50,000 마이크는 행의 컬렉션으로,이 결과 집합에서 생략 787 00:43:50,000 --> 00:43:53,000 그가 날 같은 이메일 주소를 가지고 있지 않기 때문에 일반적으로 호출됩니다. 788 00:43:53,000 --> 00:43:57,000 >> 자, 다시 여기 pset 7 당신은 관리 도구로 phpMyAdmin을 사용 789 00:43:57,000 --> 00:44:00,000 과 교육학 도구 길을 배울 수 790 00:44:00,000 --> 00:44:03,000 SQL의 세계,하지만 하루의 끝에 791 00:44:03,000 --> 00:44:08,000 당신은 실제 PHP 코드의 내부에 이러한 쿼리를 작성 할 것 792 00:44:08,000 --> 00:44:11,000 그리고 특히 Zamyla의 연습에 계속 이어 지겠습니다 793 00:44:11,000 --> 00:44:14,000 이 문제 집합에 대한 분포 코드의 투어를​​ 예정 794 00:44:14,000 --> 00:44:18,000 우리는 로그인 페이지의 미학뿐만 아니라 당신을 제공 한 곳 795 00:44:18,000 --> 00:44:21,000 그리고 좋은 섹시한 CS50 금융을 말한다 로고,하지만 우리는 또한 당신을 제공 한 796 00:44:21,000 --> 00:44:24,000 생활 좀 쉽게 할 함수의 무리. 797 00:44:24,000 --> 00:44:27,000 우리는 또한 당신을위한 pset의 일부를 작성한 798 00:44:27,000 --> 00:44:32,000 특히 그것의 로그인 부분이 당신에게 대표 디자인의 의미를 제공하는 799 00:44:32,000 --> 00:44:36,000 그 사실은, 예를 들어, index.php를 들어, 컨트롤러를 사용하여 800 00:44:36,000 --> 00:44:40,000 다음 login.php와 같은, 당신은 pset 또한 템플릿 디렉토리가 표시됩니다 801 00:44:40,000 --> 00:44:43,000 즉, 미학을 모두의 의견을 모두 갖추고 있습니다. 802 00:44:43,000 --> 00:44:46,000 그리고 pset 7의 전체 흐름은 될거야 803 00:44:46,000 --> 00:44:49,000 사용자는 브라우저에서 URL을 통해 컨트롤러를 참조하십시오. 804 00:44:49,000 --> 00:44:53,000 그 컨트롤러는 당신이 쓴 PHP 코드가 포함되어 있으며, 내부 사용자의 PHP 코드 805 00:44:53,000 --> 00:44:57,000 SQL의 일부 라인은 따옴표 사이에 중첩 될 수 있습니다 806 00:44:57,000 --> 00:45:00,000 그리고 함수에 전달 우리라는 쿼리를 작성 807 00:45:00,000 --> 00:45:03,000 그 같은 일을 사용하지 않고 사용자가 데이터베이스에 이야기 도움이 될 것입니다 808 00:45:03,000 --> 00:45:05,000 phpMyAdmin 같은 관리 도구입니다. 809 00:45:05,000 --> 00:45:08,000 >> 당신은 PHP 코드에서 SQL 문을 작성 할 수 있습니다 810 00:45:08,000 --> 00:45:11,000 그리고, 결과 세트의 PHP 배열을 돌려 811 00:45:11,000 --> 00:45:14,000 실제로 해당 검색어와 일치하는 행. 812 00:45:14,000 --> 00:45:18,000 그리고 마찬가지로 당신은 삽입 또는 삭제 작업을 수행 할 수 813 00:45:18,000 --> 00:45:22,000 나 업데이트 또는 같은 매우 비슷하다하는 구문 814 00:45:22,000 --> 00:45:25,000 그리고 당신은 배포 코드에서 일부 온라인 참조에서 볼 수 있습니다 815 00:45:25,000 --> 00:45:29,000 그리고 pset에서 정확히 어떻게 그런 일에 대해 가서 자신을 포장. 816 00:45:29,000 --> 00:45:33,000 궁극적으로 우리가 단지 SQL의 표면을 긁는 것을 깨닫기 817 00:45:33,000 --> 00:45:36,000 와 MySQL,하지만, 그것의 힘은 정말 당신을 자유롭게하는 것입니다 818 00:45:36,000 --> 00:45:40,000 당신이 해결하려는 문제에 초점을, 사용 사례 당신은 구현하려면 819 00:45:40,000 --> 00:45:43,000 적어도 초기에, 상당히 많은 신경을 쓰지 않고, 820 00:45:43,000 --> 00:45:47,000 어디에 어떻게 데이터베이스를 저장하고 검색하는 방법에 대해, 821 00:45:47,000 --> 00:45:50,000 페이스 북 자체의 시작은 어디에서이 말 그대로입니다 822 00:45:50,000 --> 00:45:53,000 MySQL을 사용하고 더 많은 MySQL의 서버와 더 많은 MySQL의 서버를 사용하여 823 00:45:53,000 --> 00:45:57,000 그럼 그들이 정말 방법에 대해 열심히 생각을 시작했다 긴 때까지 전 824 00:45:57,000 --> 00:46:00,000 더 효율적으로 일을 저장하는 방법에 데이터를 저장, 825 00:46:00,000 --> 00:46:04,000 사실을 당연한 해봅시다 있도록지라도 인덱스와 고유 제약 826 00:46:04,000 --> 00:46:08,000 등등 그냥 매우 흥미있는 대화가 일 827 00:46:08,000 --> 00:46:12,000 이 모든 결국 될, 그래서 우리가 표면을 긁는 있다는 실현할 수있는 828 00:46:12,000 --> 00:46:17,000 무엇을 결국 당신이나 당신의 사업은 큰 데이터의 꽤 될 텐데. 829 00:46:17,000 --> 00:46:22,000 >> 그 말과 함께, 여기서 종료 해, 우리는 다음 주에 볼 수 있습니다. 830 00:46:28,000 --> 00:46:30,000 [CS50.TV]