[Powered by Google Translate] [주 9] [데이비드 J. Malan - 하버드 대학교 (Harvard University)] [이 CS50입니다. - CS50.TV] 괜찮아요. 다시 오신 것을 환영합니다. 이 CS50이며,이 주 9의 시작입니다. 오늘 우리는 C의 맥락에서 더 이상 디자인에 특히 초점을 하지만 PHP의 컨텍스트와 SQL의 비트와 자바 스크립트의 비트에 특히 pset 7 두의 끝을 향해 있으며 최종 프로젝트. 사실, 경우 귀하의 최종 프로젝트에 그 시점에 있습니다 아마 적어도 몇 가지 생각을 제공하기 시작 한 시간 때문에 전에 현재의 위치를 귀하의 최종 프로젝트와 여러분이 1 또는 2 친구와 공동 작업하고 싶은 생각, 당신이 연결하는 데 문제가있는 경우는, 친구들 말을 cs50.net/partners/form에서 양식을 작성하여 주시기 바랍니다. 단지, 당신이 생각하는 프로젝트의 어떤 종류의 당신이 누군지를 부탁합니다 당신이 방금 물류 이유로 곳 살고 있습니다. 그리고 당신은 다음 주 정도가 스프레드 시트 URL을 통해에서 눈을 유지하려면 그런 다음 Google 문서의 읽기 전용 버전을 볼 수 있습니다 있는 우리는 정보를 수집하고 있습니다. 당신이 누군가와 함께 일을하고 싶다면, 모든 방법으로 사람들에게 다가 자유롭게 그 메커니즘을 통해. 그러나 사람들의 대다수 일 솔로 해. 그거 정말 괜찮아요. 따라서이 의무 어떠한 방법에 생각하지 않습니다. 지난 금요일에, 그냥 저와 여기에 팀의 몇였다 대부분 빈 극장. 3 관광객들이 거기는 앉아, 그게 조금 어색했습니다 그럼. 우리가 이야기하는 것은 데이터베이스이고 우리는 pset 7 조금 이야기. 그리고 당신이 아직 동영상에 대한 그를 잡으러 발생하지 않은 경우, 괜찮아. 나는 당연한 우리가 달리 걸릴거야하는 모든 용어를 정의하도록 노력하겠습니다 금요일 강의에 따라. 하지만 지금은 지점에 보내 드리도록 노력하겠습니다 단지 pset 7과 같은 일을 할 수 없다는 하지만 정말, 후드 아래에 무슨 일이 일어나고 있는지 이해 특히 우리가 functions.php 파일에 위치에 넣어하는 추상적 인 관념의 일부 당신이 궁극적으로 이해 그러니 목숨을 좀 더 쉽게하지만 할 수 훈련 바퀴 몇 주간 휴가 왔을 때 당신은 여전히​​ 살아남을 수 있도록 현실 세계에서와 아래에있는 CS50 프레임 워크없이 일을. 잘 알고있는 분들을위한이 $ _SESSION, 또는 누가 이미 금요일에 동영상을 잡은 세션은 우리가 무슨 일을하게 않습니다 PHP 기반의 웹 응용 프로그램에서? 이것은 GET과 POST하는 정신에서 비슷한 뜻 전역 변수입니다 그리고 몇 다른,하지만이 일이 도움이 뭡니까? 세션이 무엇에 사용됩니까? 그래. [학생] 로그인 뭐라고 요? [학생] 로그인 실제로 로그인. pset 7에서 우리는 로그인 촉진이 세션의 전역을 사용하는 그럼이 자동 전역에 대한 좋은 것은 그것이 연관 배열 있다는 것입니다. 연관 배열, 리콜, 그냥 배열이지만 누구의 인덱스는 더 이상 숫자가 할 필요가 없습니다 012처럼. 그들은 숫자가 될 수도 있고 아니면 그들은 심지어 문자열이 될 수 있습니다. 당신이 아직 pset 7로 다이빙 한 경우 그리고, 당신은 우리가 키라고 ID를 저장하는 기억 할 수 있습니다 값이 123 같은 경우이 연관 배열의 내부 - 무엇이든 현재 사용자의 ID에 기록입니다. 이것에 대한 동기 부여는 사용자가 로컬 호스트를 방문한 후에도 것입니다 또는 내 웹 사이트 더 일반적으로 그리고 그들은 로그인 한 그들은 링크를 클릭하거나 5 분 내 웹 사이트에 반환하지 않는 경우에도 또는 시간 또는 하루 만 그들의 브라우저 창을 열어 둔도, 이 전역을 통해 나는 그들이가 로그인되어 있는지 기억 즉, 내가 저 사용자에 대해 당신이 원하는 약간의 장기 아무것도 저장할 수 있습니다. 그리고 당신은 쇼핑 카트의 화신으로 정말로 생각할 수 있습니다. 아마존 같은 곳은 분명히, 당신은 쇼핑 카트에 물건을 놓고 하지만 HTTP, 프로토콜은 웹의 힘은 상태 비 저장입니다 의미에서 당신이 웹 사이트를 방문 할 때, 대부분의 경우에 어떤 일정한 네트워크에 연결되어 있지 않은 브라우저와 서버 사이에 있습니다. 당신은 HTML과 JPEG 파일과 GIF를 다운로드 모두, 한 즉시로 연결은 도보로갑니다 그리고 당신은 서버에서 HTML과 이것 저것의 사본을 갖추고 있습니다. 그러나 서버가 당신에 대해 뭔가를 기억하려고한다면, 부담은 실제로 해당 정보를 기록 할 수있는 서버에 있습니다. 그리고 서버를 제어 할 수 있습니다 그래서 당신은 프로그래머 이 전역 연관 배열의 내부 당신이 원하는 대부분의 아무것도 넣을 수 있습니다 그리고, 거기 사용자가 돌아 오면 다음 번입니다 그 분 이죠 심지어 일 후, 자신의 브라우저 창을 닫으하지 않는 것인지 되는 포인트 세션이 사라집니다. 그래서이 임시 저장, 너무 비 영구적이고, 그것은 멀리 가지 의미 사용자가 브라우저를 닫 자마자 - 단지 해당 탭, 종종 전체 브라우저, 이를 효과적으로 사용자를 로그 아웃. 그래서이 일이 실제로 어떻게 구현? 의 우리가 금요일에 바라 보았다 간단한 예제를 잠깐 살펴 보자. 그 익숙하지 않은 들어,이처럼 간단했다. 이 주된 목적인 생활에서 말하는 것입니다 웹 페이지입니다 내가 몇번이나이 페이지를 방문했습니다. 이 내가 방문하는 월요일에 여기 처음이므로 0 번 말합니다. 하지만이 페이지를 다시로드 시작하면, 그것은, 1 시간, 2, 3, 4, 5를 말한다 이 결국 단지, 일어나, 일어나 계산에 유지됩니다 각 시간이 지나면에서 새로 고침을 클릭합니다. 그래서 어떻게 작동하는 거지? 저 counter.php이라는 파일의 안으로 들어 가자. 그 상단 부분은 파란색으로 의견이지만, 흥미로운 부분은 여기입니다. 13 호선에 우리는이 기능 session_start를 호출 그 말 그대로 당신이 액세스 할 수 있도록하려는 경우 당신이해야 할 모든 것이 이 특별한 전역은 _SESSION $라고합니다. 그게 가능한 모든 것을 가능하게하고, 우리는 가능한 모든 방법은 순간에 볼 수 있습니다. 내가하는 일이 선 16 통지합니다. 즉, 인덱스 값 - - "카운터"카운터라는 키 경우 나는 아래 줄에 어떤 역할을하고있어 다음 세션이라는 배열의 내부를 존재? 라인 18 일이란 무엇입니까? [안 들리게 학생 응답] 그게 뭔데? [학생]의 값을 저장. 좋아. 그것은 새로운 지역 임시 변수에 지금 세션에 값을 보관하고 있어요 모두 소문자 달러의 카운터. PHP가 이미 여기 좀 게으른되는 것을 확인할 수 있습니다. 우리가 INT 또는 부동이나 문자열이나 이런 건의 언급이없는주의 PHP는 약하게 입력되어 있기 때문에, 상기 당신은 변수의 유형을 지정하지 않아도 여기이 경우에조차 아직 선언되지습니다. 나는이 중괄호 내부를 선언하고 C는 달리,이 사실은 괜찮습니다. 깊이 변수의 선언을 중첩 아무리 PHP에서입니다 - 내부 내부 곱슬 괄호와 같은 곱슬 괄호의 - 그것은 그 순간에 시간에, 프로그램의 나머지 부분이 존재합니다 더 나은 또는 악화에 대해. 그게 바로 우리가하는 일이로 당신이 그것을 정의 즉시 글로벌된다. 그렇지 않으면,면, 아무 세션 전역에있어 발견하지 않습니다, 내가 외관상 0으로이 변수 카운터를 초기화하는거야 따라서 단지 사용자가 전에 여기 없었습니다 가정. 그리고이 과정은 어떻게 카운터를 증가합니까? 이 연관 배열의 안에 값을 업데이트 있어요 현재 + 1 뭐든지간에 카운터는 동일한 설정하여. 나는 페이지의 HTML에 여기까지 스크롤하면, 사실은 아주 간단합니다. 내가이 페이지의 본문에이 모든 "당신은 아무개 번이 사이트를 방문한"입니다. 그리고이 PHP의 구조입니다. 당신이 할 경우