[음악 연주] ROB 보덴 : 안녕하세요. 롭 해요, 나는 준비가 희망 이 솔루션의 주식을 넣어. 먼저, 레지스터에 대해 살펴 보겠습니다. 그래서 여기에 우리가 확인하고 기억 폼이 있다면 볼 수 이 페이지에 게시. 우리는거야 그래서 일단 어떻게하면 다른로 이동합니다. 그리고 우리는 렌더링거야 등록 양식. 그래서 레지스터 형태는 것입니다 register.PHP에 게시합니다. 그리고 무엇 보낼까요? 그것은 사용자 이름을 보내려고하는 사용자는 암호를 작성하는 것입니다, 및 확인 - 암호를 다시 입력했습니다. 그래서 지금 그 양식에 게시 할 때 경우 register.PHP 우리는이 작업을 실행합니다. 이 경우를 보면, 우리는 처음이에요 입력의 유효성을 검사하는 것. 우리는 있는지 확인하려면 사용자 이름 과 암호가 비어 있지했고, 그 실제로 확인 암호와 일치합니다. 우리는 확인하고 나면 우리가 할 수있는 그 실제로 사용자를 등록합니다. 이것은 무엇을 의미할까요? 음, 우리는 삽입 할 우리의 데이터베이스에 사용자. 그리고 이것은 우리가 그렇게 할 수 있습니다 방법입니다. 그래서 우리는 사용자에 삽입 할거야 테이블 필드에 사용자 이름, 해시, 및 현금. 현금의 기본값 10,000 될 것입니다. 그리고 우리는 이름으로 전달하는 것입니다, POST 슈퍼를 통해 사용자 이름 글로벌 즉 양식에서 제출 한 것. 그리고 우리는 암호화거야 암호를 입력합니다. 그 성공한다면, 다음 결과 false가 아닌 것입니다. 실패한 경우에, 우리 죄송합니다. 문제가 발생했습니다. 그리고 어떤 일이 잘못 됐을 수 있을까? 음,이있을 필요 고유 한 이름. 그리고 쿼리가 실패 할 수있다 경우 이미 사용자 이름 표에 존재했다. 따라서 고유 한 이름이었다 가정, 우리는 잡아 쿼리거야 해당 사용자의 ID. ID가 기억 자동 증가. 그리고 그 어떤 실패로 발생하는 경우 이유는, 우리가 사과 할 우리는 ID를 잡을 수 없었다. 하지만, 그것이 실패하지 않았다고 가정 우리는 어떤 쿼리에서 ID를 잡아 우리의 세션이 저장 반환 - 그래서 우리는 별이 사용자가 로그인 할 세션 ID를 기억 수퍼 해외, 마지막 우리의 포트폴리오에 리디렉션합니다. 그리고 그 레지스터의 그것입니다. 이제 우리는 따옴표로 이동하는 것입니다. 그래서 인용해야 할 것입니다 정말 비슷한 설정입니다. 우리는이 코드는 것을 여기서 볼이 우리는 양식을 때 실행할거야 이 페이지에 게시. 하지만 먼저 우리는 실제로이 해당 양식을 렌더링하는 데. 그래서 견적 양식에서 살펴 본다, 어떤 분야 거기? 우리는 따옴표가 하나입니다 것을 볼 이름 기호 텍스트 상자. 그리고 때 인용 양식 게시 quote.PHP에 우리는 지금 갈거야 이 코드를 실행합니다. 그리고 우리의 POST 슈퍼에서 유일한 변수 세계는 상징이 될 것입니다. 우리는 있는지 확인하는 유효성을 확인 그들은 실제로 기호를 기록했다. 그들은하지 않았다 경우에, 우리는 당신이 말하는 기호를 제공해야합니다. 그들은 기호를 제공 한 가정 우리는 그 기호를 찾을. 지금보다 최대있을 수 있습니다 기억 이후 실패, 글쎄, 그렇지 않아 로 시작하는 유효한 기호. 그래서이 반환 거짓을 보면, 우리는 사과하려는 기호를 찾을 수 없습니다. 우리는 기호를 찾았 으면, 이제 quote.PHP 템플릿을 렌더링 할 수 있습니다. 즉, 어떤 모양입니까? 그건 그냥 인쇄 것 그 공유 어떤 주식의 이름이되었다 주가는 어떤 가치가있다. 이제 우리는 왜이 반드시 htmlspecialchars를 사용합니까 기능? 즉, 왜냐하면 주식의 이름과 기호 실제로 특수 포함되어있을 수 있습니다 문자가 안된다 HTML로 해석 될 수있다. 좋아, 그래서 견적을 위해이다. 이제 우리는 index.php를보고 싶지 포트폴리오. 하지만 먼저 우리는 실제로 구성 할 필요가 문의 테이블. 여기에 우리가 그렇게 할거야 방법입니다. 그럼 구조에 대해 살펴 보겠습니다. 그리고 우리는 볼이 포트폴리오 테이블 ID를해야 할 것입니다. 그래서 사용자가 될 것 주식을 삽입하는 것 ID. 우리는 될 것입니다 기호를 가지고 우리가하고있는 회사의 상징 의 주식을 삽입. 그리고 주식의 수입니다 삽입되는 주식. 그래서, PSET 사양마다 그 기억 우리는 ID 및 기호를 지정합니다 - 우리는 인덱스 ID 및 체크 아웃 기호는 기본 키입니다. 따라서 사용자 ID 및 기호 페어링 단 하나 나타납니다 이 표에있는 시간. 이제 코드를 살펴 보자. 이제 index.php를 모두 잡아 것입니다 우리의 포트폴리오 정보와의 사용자에게 표시. 그래서 첫 번째, 우리는 현금을 잡아거야 사용자는 현재로부터이 있는지 현금 테이블. 해당 쿼리는 항상 것입니다, 기억 배열의 배열을 반환합니다. 우리는 현금을 선택한 순간에도 하나의 행에서, 우리는 여전히 필요 에 색인을 생성하여 해당 현금을 잡아 제로 번째 행의 인덱스 잡는 현금 인덱스입니다. 그래서 지금 우리는 모두를 선택합니다 문의 테이블에서 정보 즉, 현재에 관련이 로그인 한 사용자. 우리는 물론 그 유효성을 검사해야 실제로, 성공한 우리 우리는 조회 때마다 항상해야한다. 우리는 모든 정보가 있으면 PSET 사양은 우리에게 우리를 알려줍니다 잘 보관하기 위해이 작업을 수행해야합니다 이있는 모든 정보 위치 배열. 그래서 우리는 모든 통해 반복하고 찾는 포트폴리오 정보 각 행과 관련된 주식 다음 포트폴리오 정보, 위치 배열에 이름을 저장, 가격, 주식 및 기호 모든 해당 주식과 관련된. 그리고 마지막으로, 우리는 렌더링거야 portfolio.PHP, 금액 전달 현금의 우리가 현재 가지고있는, 위치 배열 우리 단지 구성,이 제목 포트폴리오됩니다 페이지. 의는 portfolio.PHP에 대해 살펴 보자. 그리고 우리는 볼이 주요 관심 부분이 루프입니다. 그래서 우리는 위치에 대한 반복입니다 배열 생성 테이블 곳 테이블 - 우리는 각 행을 채우는거야 우리가 안에 넣어 정보 위치 배열. 다시 말하지만, 우리는 반드시 htmlspecialchars를 사용해야합니다 경우이 기호 나 이름 HTML의 문자가 포함되어 있습니다. 그리고 여기에 우리가 가격을 곱한입니다 우리가 가지고있는 주식의 양 위해 그 얼마나 많은 얻을 수 사용자에게 현재 가치. 그리고 포트폴리오를 위해이다. 이제 우리는 인기 상품에 대해 살펴 보겠습니다. 그래서 인기가 다시에 갈 것입니다 우리가 register.PHP에 있던 형식입니다. 우리는 양식을가는 것을 볼 이 페이지에 게시합니다. 그러나 첫째로, 우리는 페이지를로드 할 때, 우리는이 작업을 수행하는 것입니다. 그래서이 무엇을하고 있습니까? 음, 우리는 단지 판매 페이지를 가질 수있다 단일 텍스트 박스 사용자가 이 기호를 입력하는 우리는 팔고 싶어. 하지만 우리는 좀 더 현명 할거야 우리는 드롭을해야 할 것입니다 즉, 사용자가 선택할 수 아래로 그들은 이미 실제 기호입니다. 그래서 우리는 사용자의 포트폴리오가 있어요. 우리는 포트폴리오에서 선택거야 기호의 모든 사용자 현재, 현재이 로그인 한 사용자. 그 성공해야합니다. 그리고 지금 우리는 반복 할거야 바로 잡아, 정보를 반환 각 심볼, 및 그것을 수납 이 문자의 배열. 그리고 지금 우리에가는거야 판매 양식을 렌더링합니다. 따라서 판매 형태는 예정 단지 드롭 다운 메뉴를 선택합니다. 그리고 판매의 형태로 각각의 옵션은 그냥 기호를 인쇄 할 것 우리는에서 움켜 잡았다 문의 테이블. 따라서 판매 형태는 것입니다 다시 sell.PHP에 제출합니다. sell.PHP를 보면,이 코드입니다 우리가 제출하는 때 실행할 것 이 페이지에. 우리는 확인하려는 사용자 실제로 기호를 입력. 이제 그들은 한 가정 - 그래서 지금 우리가 확인해야 할 몇 사용자가 실제로 판매하고 공유 사용자는 얼마나 많은 현금을해야합니다 많은 주식을 판매하는. 그래서 우리는 주식의 수를 잡아 그 사용자는이 기호에 있습니다. 우리는을위한 포트폴리오에서 찾고 사용자와 특정 기호가 없습니다. 지금 확인 실제로 있는지 확인 행을 반환했습니다. 그렇지 않은 경우, 사용자는하지 않기 때문에 실제로 판매하는 심볼이 있습니다. 그들은 그 기호가 할 가정 우리는 수를 먹을까 그들이 가지고있는 주식. 그리고 지금 우리는 조회하는 방법 많은 각각의 점유율은 가치가있다. 그래서 우리는 조회 기능을 사용했습니다. 우리는 값을 찾고 기호. 지금의 모양 업이 성공한다고 가정하면 우리는 실제로 모두를 업데이트하는거야 정보. 그래서 우리는 포트폴리오에서 삭제할 우리가 판매하고있는 주식. 우리는 사용자를 업데이트 할 현금의 양. 그리고 우리는 주식으로 업데이트하고 배 주가 - 그래서 얼마나 많은 돈을 사용자는 그냥했다. 그리고 지금 우리는 우리의 역사를 업데이트 할. 그래서 우리는 모습을 촬영하지 않은 아직 역사의 테이블에. 그래서 우리는 다시이에 올 수 있습니다. 이제 마지막으로 우리는 재거야 포트폴리오에 백업합니다. 이제 구매를 살펴 보자. 그래서, 구입 꽤 있어야한다 판매하는 유사. 우리는 우리가 다시 거라고 참조 우리가 있다면 확인하는 이 페이지에 제출. 우리는, 우리가 야하지 않을 것으로 가정 구매 양식을로드 할 것. 그래서 구매 양식처럼 보여? 우리는 그냥 일반의는 여기를 참조하십시오 그에게 무슨 형성 다시 buy.PHP에 제출합니다. 그리고 그것은 기호가 것 그 사용자는, 입력되는 횟수 사용자가 사고 싶은 주식 그 상징으로, 그리고 바로 그거야. 우리가 buy.PHP 다시 제출할 때, 우린 이제이 코드를 실행하는 것. 우리는 다시 확인하려는 사용자가 유효한 뭔가를 입력. 그래서 여기에 우리는 확실히 그들이 만들고있어 실제로 기호를 입력. 여기에 우리가 있는지 확인하는거야 그들이 실제로 입력 주식. 그리고 여기에 우리가 있는지 확인하는거야 그들이 공유의 정수를 입력, 그래서 그들은 ABC 주식을 사려고하지 않을. 이제 우리의 가격을 조회 할 기호 그래서 우리는 얼마나 많은 현금 우리에게 알 사용자로부터 빼야한다. 이제 우리는 선택할 수 있습니다 얼마나 많은 현금 사용자 실제로 가지고 있는지 확인 그 성공했다. 여기에서 우리는 현금을 잡아입니다. 그리고 지금 여기, 우리는 확인하고있어 사용자는 충분한 현금이 있는지 확인합니다. 그렇다면 주식의 수 사용자 배 각의 가격을 사고 싶다 그 주식의보다 큰 우리가 가지고있는 현금의 양, 다음 사용자는 감당할 수 없습니다. 사용자가 충분한 현금을 가지고 있다고 가정하면, 지금 우리는에 삽입 할 사용자의 포트폴리오. 음, 우리는 사용자에 삽입합니다 이 일어나는 포트폴리오 경우 사용자가 구입하고 처음으로 특정 기호. 그러나 그들은 이미 일이 있다면 일부 애플 주식을 가지고하는 방법? 자, 이제 우리는에 사용하는거야 키 UPDATE 문을 중복. 이전에 우리가 지정된 이유 그래서 이것은입니다 ID 및 기호는 합동한다 기본 키, 즉 우리가하려고하는 경우 있습니다 ID 및 기호를 삽입 이미, 우리는 그냥 업데이 트됩니다 이 새로운 주식을 포함하는 지분 사용자가 구매됩니다. 이제 우리는 양을 업데이트 할 사용자가 가지고있는 현금, 이후 그들은 단지 그 주식에 돈을 보냈다. 그리고 마지막으로, 우리는 업데이 트됩니다 기록 테이블을 다시. 이는 다시, 우리는 볼 것이다 두 번째시. 그리고 마지막으로 우리는 리디렉션합니다 portfolio.PHP에 백업합니다. 그럼 살펴 보자 기록 테이블. 이제 역사의 테이블이 있음을 유의 모든 사지를 추적하고 가정 모든 사용자가 그냥하지 만드는 것이 판매 주식의 현재 번호가 사용자가 어떤, 무슨 포트폴리오입니다. 그래서 우리는 사용자를 추적하고 그 구매 여부를, 판매하고있다 이 특정 트랜잭션은 구매했다 또는 판매,되고있어 기호 구입 또는 판매의 수는 공유 우리는 구매 또는 판매하는 것을 되고있어 하나의 공유의 가격 시간에게, 마지막으로 구입 또는 판매하고 그이 구매 또는 판매 발생된다. 그리고 그 모든 역사의 우리가 필요로하는 정보 추적을 유지합니다. 우리가 판매하는 보았다 때, 우리는 보았다 그 우리는 역사의 판매에 삽입하고, 우리가 구매 또는 판매하고 있는지 여부 등, 현재 시간 스탬프 및 현재 사용자되고있어 기호 판매 된 공유 수 판매, 가격의되는 이 시간에 주식. 마찬가지로, 구매, 그것은거야 거의 같은 모양. 유일한 차이점이다 대신 판매, 우리는 사는거야. 그래서 판매 및 구매, 우리는 삽입하는지 역사 테이블의 모든 구입 및 일어나고있는 것을 판매하고있다. 그래서 history.PHP 할 필요가 모두 잡아입니다 역사의 정보 테이블, 확인 성공 확인 그 정보를 렌더링합니다. 그래서 history.PHP 템플릿을보고, 흥미로운 정보 바로 여기에있다. 우리는 모두에 대한 반복입니다 거래, 인쇄이 있는지 여부 서식, 구매 또는 판매 날짜 시간이었다 우리는이 거래를 한 것으로. 우리는 반드시 htmlspecialchars를 사용해야 기억 에 기호, 그냥 경우. 그리고 마지막으로, 수 서식 정가 구입 한 주식 그 시간에 하나의 공유. 그리고 그 역사를 모두 표시 우리가 필요로하는 정보를 제공합니다. 그리고이 PSET을 위해이다. 내 이름은 롭이며,이 CS50 금융이었다.