[Powered by Google Translate] [주 8, 계속] [데이비드 J. Malan] [하버드 대학] [이 CS50 수 있습니다.] [CS50.TV] 이 CS50입니다,이 여기에 주 8의​​ 끝입니다. 물론 우리는 이번 주 초에 태풍이 좀 많았다 그래서 지금이 강의실에서 당신과 나, 정말입니다 하지만 오늘은 PHP에 대한 우리의 대화를 계속 및 웹 프로그래밍에 대한 자세한 일반적으로, 우리는 또한 아이디어를 소개 데이터베이스, 특히 하나는 요즘 매우 인기가 MySQL을,라고 때문에 그 확장 성뿐만 아니라 무료 및 오픈 소스 것 때문에 많은 부분 인치 하지만 먼저, 지난 시간을 그만 둔 곳을 살펴. 우리는 여러 신입생 인스턴트 메시지의 예에서 찾고 있다는 리콜 그리고 이건 나이 15 + 년 전으로 나온 건 무시 무시한 형태였다 신입생 교내 스포츠 학교 등록에 대한 학생들 권한을 부여하기 위해 실제로 Wigglesworth에 빠른가 더 이상 여행하지 않고도 어떤 조교의 문 아래 종이 실제 조각을 슬라이드 할 수 있습니다. 대신 우리는 온라인으로 모든 이동, 우리가 사용하는 데 필요한 그 일을 할 몇 기술의, 어느, 우리는 HTML, 하이퍼 텍스트 마크 업 언어를 필요 이는 다시는 구조적으로 웹 페이지를 만들되는이 마크 업 언어입니다. 규약에서 캐스 케이 딩 스타일 시트를 요즘 CSS의 비트를 사용하여 우리는 약간 다른 구문을 사용하여 웹 페이지의 stylizations를 사용하여 상기하면, HTML은 그 구조에 대한 전부 였어 반면. 우리는 또한 웹 프로그래밍 언어를 소개해야합니다. 이 경우, 우리는 PHP를 사용하고, PHP 우리에게 허용 할 것이다 동적으로 출력 콘텐츠에뿐 아니라 같은 프로그래밍 일을 이메일을 보내는 등 우리가 지난 주에 남긴 그 사람 메모에있는 경우이었다. 이를위한 코드는 2 부분에 있던 것을 기억합니다. 하나는, 우리는 froshims3.php을했다 이 방법은 그 내부에 HTML 양식 크게 마크 업했습니다 스타일 속성에서 여기까지 CSS의 작은 비트 폼 자체는 페이지에서,하지만 그 뒷일은 중심 될 수 있도록 우리는 대표 폼 입력, 텍스트 필드, 체크 박스를 가지고 어떤 라디오 버튼, 선택 메뉴 및 제출 버튼. 그리고이 양식을 통해, 우리는 분명히 register3.php라는 한 파일에 제출 어떤 자체는 같은 뭔가를 조금 보았다. 이제 register3.php, 리콜에 코드의 대부분은 이메일에 대한 모든했습니다. 그것은 확실하게 제출 된 양식의 검증 약간 했어요 필드가 실제로 예상했다 그 제공되었는지. 그런 다음 우리는 약간 새로운 구문을 사용하여 몇 가지 PHP 함수를 호출 그것은 C.에서 차용 할지라도 이 화살표 연산자는 우리가 객체 지향 프로그래밍이라는 것을 사용을 할 수 있습니다. 우리는 여기 자세히 그에 갈거야,하지만 지금 알 수 없습니다 그것은, 객체와 연관된 기능을 갖는 방법 우리는 C.에서 본대로 이것은, 구조의 특별한 유형입니다 하지만 지금은 단지이 사용하는 올바른 구문입니다 신앙에 걸릴 이 PHPMailer 라이브러리와 같은 라이브러리를 사용하는 경우. 그리고이 파일의 끝 부분에서 우리는 동적으로 이메일을 생성 한 내 jharvard@cs50.net 계정에 불려 갔어 그 내 jharvard@cs50.net 계정에서, 우리는이 스포츠에 등록 된 것을 따라 사용자 정보를. 그것은 신입생 인스턴트 메시지 사이트가 모든 년 전에 무슨 짓을했는지 꽤 많이 있습니다 제가 구현 때, 다른 언어로 부여 하지만 어쩌면 당신이 가지고있는 능력을 보여줍니다 지금 당신은뿐만 아니라 프로그램 자신을 표현 할 수있는 C와 같은 언어로 낮은 수준에 있지만, 훨씬 더 높은 수준의 실제로 해결하는 이메일과 같은이 매우 실제 응용 프로그램과 진짜 세계 문제. 지금, 물론,이 스크립트가 일부를 생성하는 데 사용하는 경우에도 실제로 계정입니다 jharvard@cs50.net에서 동적으로 이메일 난에 대한 액세스 권한이 있는지, 보내 매우 조심하게 실제로 자신의 아르 계정에서 메일에만 일이 인생에 뜨거운 물을 약간에 타는 않도록. 그 말과 함께 모두 다른 문제를 해결하는 전환 지금 보자, 유지 상태의. 자,이 사실은 무엇을 의미합니까? HTTP,이 하이퍼 텍스트 전송 프로토콜, 실제로 무국적 프로토콜입니다,이 의미있는 무엇인가 당신은 Google.com 같은 것을 뽑아 입력 한 다음 Enter 쳤을 때 일반적으로 브라우저는 다음 회전 아이콘이 어떤 종류의가 있습니다 일부 웹 페이지에 결과는 다운로드 중 그리고 그 작은 아이콘이 회전 중지하고 실제로 제안하는 HTTP는 서버에 어떤 연결 고리를 완료하고 그게 다라고. HTTP는 유지하지 않는 의미에서 상태 비 저장입니다 같은 방식으로 스카이프 (Skype)의 서버에 영구 연결합니까 또는 Gchat 그래요 HTTP와 때문에 가정 한 번 당신이 있어요 웹 페이지를 가져 오는 한 것입니다. 이제 페이스 북과 Google지도와 같은 사이트에 현실에서 이러한 일 그리고 트위터와 같은 더 많은 역 동성이있어 상기 그 아이콘이 회전 중지 후에도 당신은 실제로 더 많은 업데이트를 받아보실 수 있습니다 서버, 더 많은 트위터, 페이스 북에 대한 자세한 상태 업데이트와 같은에서. 그러나 우리는 두 주에 대한 얘기하자있는 기술을 사용하는 그 아약스 자바 스크립트라는 언어를 사용으로 알려진, 하지만 하루의 끝에서, HTTP는 여전히 상태 비 저장입니다. 그런데도 당신은 어떻게 든 사용자에 대한 일을 기억하려는 경우 그들은 서버에서 연결이 끊어 후에도 PHP는 당신에게 이런 짓을 할 수있는 방법을 여유가 않습니다 우리가 마지막으로 본으로 인해, PHP는 슈퍼 전역 변수의 번호를 가지고 그리고 전역, 다시, 특별 전역 변수입니다 그는 웹 서버와 PHP 자체로 당신에게 전달있어. 당신은 거기에 값을 넣어 아무것도 할 필요가 없습니다 우리가 지금까지 본 적이 슈퍼 전역 변수들, GET과 POST 아르 양식 필드는 당신을 위해 자동으로 넣어있는 곳입니다 뿐만 아니라 우리가 아직 보지 않은 다른 사람의 몇. $ _SERVER의 내부 서버 자체에 관한 특별한 변수가 있습니다. 프로토콜, HTTP 또는 HTTPS는 사용 했나요 IP 주소, 어떻게 , 어떤 요청 방법을 당신이 사용하고 같은, 그래서 흥미로운있어 않았다 육즙이 서버에 대한 자세한 내용과 사실, 거기에 사용자뿐만 아니라. 이런 일이 쿠키가 저장되어이라는 곳 $ _COOKIE가 있어요. 우리는 오늘 쿠키에 스스로 시간을 할애하지 않습니다 하지만 쿠키는 단지 정보의 작은 조각입니다 지금 알고 웹 서버가 웹 브라우저에 심는 수 과에는 RAM 또는 컴퓨터의 하드 드라이브를 켜 정보는 예를 들어, 사용자에 대한 자신의 사용자 이름을 저장하는 방법 그들이 입력 모든 사람들이 로그인 시간이나 일부가되지 않도록 고유 번호 또는 해당 사용자에 대한 식별자 당신은에 대한 질문의 동일한 종류를 훼방하지 않도록 미래의 환경 설정,하지만 관심의 대부분 지금 $ _session입니다. 다른 이들처럼, PHP에 의해 자동으로 전달되며,이 자동 전역, 당신은 PHP 기반의 웹 사이트를 쓸 때 당신이 원하는 무엇이든, 문자열, 정수를 저장할 수 있습니다 부동 점, 값, 배열, 객체, 정말 당신이 원하는 무엇이든, 그리고 당신이하는 방식에 저장할 수 있습니다 그 사용자는 이제 다음을 방문하는 경우에도 지금 현재 5 분 거리에서 분 돌아 오는 이유 그들은 다른 링크를 클릭하기 전에 시간이 걸릴 PHP는 그 세션 전역에 쓴대로 있는지 확인합니다 분 또는 5 분 전에 아직 거기에 사용자를 반환하면 될 것입니다. 그리고 후드 밑에 전역은에 의해 구현된다 그런 쿠키라고하지만, 지금, 그냥 추상화입니다 상기는 쇼핑 카트의 프로그래밍 상응의 일종 이죠. 무슨 말씀을, 프로그래머, 그에 넣어 전역 연관 배열이 분 후 일부 뿐이지 당신은을 삭제하거나 사용자가 모두 자신의 브라우저를 종료 할 때까지.까지 의이 일이 실제로 사용하는 방법에 대한 예를 살펴 보자. 코드의 오늘의 조각들 counter.php에서 우리는 다음 줄이 있습니다. 이 파일의 시작에서 우리는 지금 재미 아르 푸른 의견의 무리가 있습니다. 그러나 13 호선에서 우리는, 새로운 줄이 session_start, 그 실제로 말씀 정확히 않습니다. 이 세션을 시작합니다. 그렇게 클 전역 $ _session을 사용 할 수 있습니다, 그게만큼 간단합니다. 우리가 라인 16를보고 진행라면,이 웹 페이지가 무슨 짓을할지 알아 보도록하자. (isset은 ($ _SESSION [ "카운터"])가 진행하는 경우 카운터 변수 및 저장, 소문자 카운터, $ _SESSION [ "카운터"]. 이 카운터라는 지역 변수를 선언 할 듯 그것은 자동 전역 속에 무엇이든의 사본을 만들고 내부에있는 위치에 세션이라는 '카운터. " 다른, 분명히이 작은 지역 변수를 카운터 0으로 초기화됩니다. 하지만 몇 줄 이상 26 고지에서 해당 카운터 세션의 사본, 그 핵심은, 현재의 값을 더한 1 새 값을 할당이 있습니다. 즉,이 파일은 업데이트 할 것 같습니다 세션 전역의 내부 저장된 카운터 1을 증가하지만,하여 먼저 이전 값의 복사본을 유지 지역 변수에 저장하여, $ 카운터라고 그리고 여기 남아 알아 보자. 그것은 꽤 많은 단지 HTML 밝혀집니다. 이 페이지의 하단에서 우리는이 사이트를 방문한 라인 37에서 볼 시간 카운터 번호, 몇 재미있는 기능이있다 그래서. 하나는, 이것은 분명히 변수이지만, 그냥 넣어 충분하지 않습니다 귀하의 HTML 인해 코스의 본문에 $ 카운터 그것은 귀하의 HTML을 PHP 중 단지이 있다면 HTML입니다 거라 생각합니다. 당신은 그대로 화면에 인쇄 할 $가 카운터 싶습니다. 대신 PHP 모드로 하락하여 구문이 조각을 우리는 동적으로 여기에 값을 삽입 할 수 있습니다 우리가 지난 번에 무슨 짓을했는지에 대한 정신에서 매우 유사 문자열에 값을 삽입. 사실,이 문자 그대로 같이 말을위한 속기 표기법입니다 인쇄 (카운터 $) 또는 printf (% s의, 카운터) 같은, 또는, 당신은 온라인 또는 교과서에서 보셨을 수 있으므로, 에코라는 PHP의 함수가 있습니다 이는 같은 일을 수행하고, 그 모든 단지 더 이상 숨이 차는 방법입니다 말하는