[MUSIC CHƠI] ROB Bowden: Hi. Tôi Rob, và tôi hy vọng bạn đã sẵn sàng để đưa cổ phiếu trong giải pháp này. Đầu tiên, chúng ta hãy nhìn vào đăng ký. Vì vậy, hãy nhớ rằng ở đây chúng tôi đang kiểm tra để xem một hình thức là được đưa lên trang này. Điều đầu tiên để chúng ta sẽ làm là đi đến khác. Và chúng ta sẽ làm cho các hình thức đăng ký. Vì vậy, các hình thức đăng ký sẽ để gửi đến register.php. Và những gì là nó sẽ gửi? Nó sẽ gửi một tên người dùng mà người sử dụng sẽ điền vào, mật khẩu, và được xác nhận - mật khẩu gõ một lần nữa. Vì vậy, bây giờ khi hình thức được đưa lên register.php chúng tôi sẽ thực hiện điều này nếu. Nhìn này nếu, chúng tôi đầu tiên sẽ hợp lệ hóa đầu vào. Chúng tôi muốn chắc chắn rằng tên người dùng và mật khẩu là không có sản phẩm nào và xác nhận thực sự phù hợp với mật khẩu. Một khi chúng tôi đã xác minh rằng chúng ta có thể thực sự đăng ký người sử dụng. Điều đó có nghĩa gì? Vâng, chúng tôi muốn chèn người sử dụng vào cơ sở dữ liệu của chúng tôi. Và đây là cách chúng tôi sẽ làm điều đó. Vì vậy, chúng ta sẽ chèn vào người sử dụng bảng tên người dùng lĩnh vực, băm, và tiền mặt. Giá trị mặc định của tiền sẽ là 10.000. Và chúng ta sẽ vượt qua như tên người dùng, username, thông qua các siêu POST toàn cầu đã được gửi từ hình thức. Và chúng ta sẽ mã hóa mật khẩu. Do đó, nếu thành công, sau đó kết quả sẽ là không sai. Nếu nó thất bại, sau đó chúng tôi muốn xin lỗi. Một cái gì đó đã đi sai. Và những gì có thể đã đi sai? Vâng, có cần phải được một tên người dùng duy nhất. Và do đó, các truy vấn có thể đã thất bại nếu tên người dùng đã tồn tại trong bảng. Vì vậy, giả sử nó là một tên người dùng duy nhất, sau đó chúng ta sẽ truy vấn để lấy ID của người dùng. Hãy nhớ rằng ID là tự động incrementing. Và do đó, nếu điều đó xảy ra thất bại cho một số Lý do, sau đó chúng tôi muốn xin lỗi chúng tôi không thể lấy ID. Nhưng giả định rằng nó đã không thất bại, sau đó chúng tôi lấy ID từ những gì các truy vấn trả lại, lưu trữ đó trong phiên giao dịch của chúng tôi - vì vậy chúng tôi muốn đăng nhập người sử dụng này bằng cách lưu trữ các ID trong phiên giao dịch siêu toàn cầu, và cuối cùng chuyển hướng đến danh mục đầu tư của chúng tôi. Và đó là nó cho đăng ký. Bây giờ chúng ta sẽ chuyển sang giá. Vì vậy, giá là sẽ có một bộ thực sự tương tự lên. Chúng ta thấy ở đây rằng đây là mã chúng ta sẽ thực hiện khi một hình thức là được đưa lên trang này. Nhưng đầu tiên chúng tôi thực sự có để làm cho hình thức đó. Vì vậy, khi nhìn vào hình thức báo giá, những lĩnh vực nào? Chúng ta thấy rằng tất cả các trích dẫn đã là một đơn hộp văn bản có ký hiệu tên. Và do đó, khi hình thức trích dẫn được đăng để quote.PHP bây giờ chúng ta sẽ thực thi mã này. Và chỉ có duy nhất trong POST siêu của chúng tôi toàn cầu là có được biểu tượng. Chúng tôi xác nhận rằng để đảm bảo rằng họ thực sự được đăng ký hiệu. Và nếu họ không làm, chúng tôi nói rằng bạn phải cung cấp một biểu tượng. Giả sử họ đã cung cấp một biểu tượng, chúng ta nhìn lên biểu tượng đó. Bây giờ hãy nhớ rằng nhìn lên có thể có không từ, tốt, có thể nó không phải là một biểu tượng hợp lệ để bắt đầu với. Vì vậy, nếu điều này tìm kiếm trở lại sai, chúng tôi muốn xin lỗi về việc biểu tượng không được tìm thấy. Một khi chúng ta đã tìm thấy các biểu tượng, bây giờ chúng tôi có thể làm cho các mẫu quote.PHP. Điều đó có như thế nào? Đó chỉ là sẽ in một phần của bất cứ tên mã chứng khoán là giá trị bất cứ điều gì giá cổ phiếu. Bây giờ tại sao chúng ta sử dụng htmlspecialchars này chức năng? Đó là bởi vì các tên cổ phiếu và biểu tượng thực sự có thể chứa đặc biệt nhân vật mà không nên được hiểu là HTML. Được rồi, vì vậy đó là nó cho giá. Bây giờ chúng tôi muốn nhìn vào index.php và danh mục đầu tư. Nhưng đầu tiên chúng tôi thực sự cần phải xây dựng bảng danh mục đầu tư. Đây là cách chúng tôi sẽ làm điều đó. Vì vậy, chúng ta hãy nhìn vào cấu trúc. Và chúng ta thấy rằng danh mục đầu tư bảng là sẽ có một ID. Vì vậy, đó sẽ là người sử dụng của ID đó là chèn các cổ phiếu. Chúng tôi có một biểu tượng, mà là có được biểu tượng của công ty chúng tôi chèn các cổ phiếu. Và sau đó cổ phiếu là số cổ phiếu đang được chèn vào. Vì vậy, hãy nhớ rằng mỗi spec pset, chúng tôi xác định rằng ID và biểu tượng - chúng tôi kiểm tra các chỉ số, ID và biểu tượng là khóa chính. Vì vậy, một ID người dùng và biểu tượng ghép nối chỉ nên xuất hiện một đơn thời gian trong bảng này. Bây giờ chúng ta hãy nhìn vào các mã. Vì vậy bây giờ index.php sẽ lấy tất cả thông tin danh mục đầu tư của chúng tôi và hiển thị nó cho người dùng. Vì vậy, đầu tiên, chúng ta sẽ lấy tiền mặt mà người sử dụng hiện có từ bảng tiền mặt. Hãy nhớ rằng, truy vấn mà là luôn luôn đi để trả lại một mảng của các mảng. Vì vậy, mặc dù chúng tôi chỉ lựa chọn tiền mặt từ một hàng duy nhất, chúng ta vẫn cần lấy tiền mặt mà bằng cách lập chỉ mục vào thứ không chỉ số lượng hàng và lấy sự Chỉ số tiền mặt. Vì vậy, bây giờ chúng tôi muốn chọn tất cả các thông tin từ các bảng danh mục đầu tư đó là liên quan đến hiện tại đăng nhập người dùng. Chúng tôi tất nhiên cần phải xác nhận rằng mà thực sự thành công, mà chúng tôi luôn luôn nên làm bất cứ khi nào chúng ta truy vấn. Một khi chúng ta có tất cả các thông tin đó, spec pset cho chúng ta biết chúng ta có nên làm điều này để lưu trữ độc đáo tất cả các thông tin trong vị trí mảng. Vì vậy, chúng tôi đang Looping trên tất cả các thông tin danh mục đầu tư, nhìn lên chứng khoán liên kết với mỗi hàng trong thông tin danh mục đầu tư, và sau đó lưu trữ trong mảng vị trí tên, giá, cổ phiếu và biểu tượng tất cả liên quan đến cổ phiếu đó. Và cuối cùng, chúng ta sẽ làm cho portfolio.PHP, đi qua trong số tiền tiền mặt chúng tôi hiện có, mảng vị trí mà chúng tôi chỉ xây dựng, và danh hiệu này trang đó sẽ là danh mục đầu tư. Chúng ta hãy nhìn vào portfolio.PHP. Và chúng ta thấy rằng thú lớn một phần là vòng lặp này. Vì vậy, chúng tôi đang Looping trên các vị trí mảng, tạo ra một bảng, nơi bảng - chúng tôi đang populating mỗi hàng với thông tin mà chúng tôi đặt bên trong vị trí mảng. Một lần nữa, chúng ta cần phải sử dụng htmlspecialchars trong trường hợp biểu tượng này hoặc tên chứa các ký tự HTML. Và ở đây chúng tôi đang nhân giá và số lượng cổ phiếu mà chúng tôi có để có được bao nhiêu đó là hiện giá trị cho người sử dụng. Và đó là nó cho danh mục đầu tư. Bây giờ chúng ta sẽ xem xét tại bán. Vì vậy, bán sẽ quay trở lại định dạng mà chúng tôi đã có trong register.php. Chúng ta thấy rằng một hình thức sẽ để được đăng trên trang này. Nhưng trước tiên, khi chúng ta tải trang, chúng ta sẽ làm điều này. Vì vậy, những gì đang làm điều này? Vâng, chúng tôi chỉ có thể có các trang bán có một hộp văn bản duy nhất mà người sử dụng vào biểu tượng này chúng tôi muốn bán. Nhưng chúng ta sẽ trở nên thông minh hơn một chút và chúng ta sẽ có một thả xuống cho phép người dùng lựa chọn biểu tượng thực tế mà họ đã có. Vì vậy, chúng tôi đang nhận được danh mục đầu tư của người dùng. Chúng ta sẽ lựa chọn danh mục đầu tư tất cả các biểu tượng mà người sử dụng hiện có, hiện nay đăng nhập người dùng. Hãy chắc chắn rằng đó đã thành công. Và bây giờ chúng ta sẽ vòng qua trả về thông tin, chỉ cần lấy mỗi biểu tượng, và lưu trữ nó trong mảng các ký hiệu này. Và bây giờ chúng ta sẽ làm cho hình thức bán. Vì vậy, các hình thức bán sẽ chỉ là một trình đơn thả xuống, một lựa chọn. Và mỗi lựa chọn theo hình thức bán là sẽ chỉ in ra các biểu tượng mà chúng tôi nắm lấy từ danh mục đầu tư bảng. Vì vậy, các hình thức bán sẽ nộp lại sell.PHP. Nhìn vào sell.PHP, đây là mã đó là sẽ thực hiện khi chúng tôi gửi trang này. Chúng tôi muốn xác nhận rằng người sử dụng thực sự bước vào một biểu tượng. Bây giờ giả định rằng họ đã làm - vì vậy bây giờ chúng tôi muốn xác định có bao nhiêu chia sẻ người dùng đang thực sự bán và bao nhiêu tiền người sử dụng sẽ nhận được bán nhiều cổ phiếu. Vì vậy, chúng tôi lấy số lượng cổ phiếu người dùng có cho biểu tượng này. Chúng tôi đang tìm kiếm trong danh mục đầu tư cho cho người sử dụng và các biểu tượng nhất định. Bây giờ chắc chắn rằng đó thực sự trở lại liên tiếp. Vì nếu làm vậy không, người sử dụng không thực sự có mà biểu tượng để bán. Giả sử họ có biểu tượng, chúng tôi muốn lấy số lượng cổ phiếu mà họ có. Và bây giờ chúng tôi muốn tìm cách nhiều mỗi cổ phần có giá trị. Vì vậy, chúng tôi sử dụng chức năng tìm kiếm. Chúng tôi đang tìm kiếm các giá trị của ký hiệu. Giả định rằng nhìn lên thành công, bây giờ chúng ta sẽ thực sự cập nhật tất cả thông tin. Vì vậy, chúng tôi muốn xóa từ danh mục đầu tư các cổ phiếu mà chúng tôi đang bán hàng. Chúng tôi muốn để cập nhật người dùng của lượng tiền mặt. Và chúng tôi đang cập nhật nó bằng cổ phiếu lần giá cổ phiếu - vì vậy đó là bao nhiêu tiền người sử dụng chỉ cần thực hiện. Và bây giờ chúng tôi muốn cập nhật lịch sử của chúng tôi. Vì vậy, chúng tôi đã không lấy một cái nhìn tại bảng lịch sử được nêu ra. Vì vậy, chúng tôi sẽ quay trở lại này. Bây giờ cuối cùng chúng ta sẽ chuyển hướng sao cho danh mục đầu tư. Bây giờ chúng ta hãy nhìn vào mua. Vì vậy, mua nên được khá tương tự để bán. Chúng ta thấy rằng chúng ta sẽ một lần nữa để kiểm tra xem chúng tôi trình trang này. Giả sử rằng chúng tôi không, chúng tôi sẽ tải các hình thức mua. Vì vậy, những gì hiện các hình thức mua như thế nào? Chúng ta thấy ở đây nó chỉ là một thường xuyên hình đó sẽ nộp lại buy.PHP. Và nó sẽ có một biểu tượng người sử dụng đang bước vào, số lượng cổ phiếu mà người dùng muốn mua của biểu tượng đó, và đó là nó. Vì vậy, khi chúng ta trở lại buy.PHP, chúng tôi bây giờ sẽ thực thi mã này. Chúng tôi một lần nữa muốn xác nhận rằng các người dùng nhập vào một cái gì đó có giá trị. Vì vậy, ở đây chúng tôi đang làm cho chắc chắn rằng họ thực sự bước vào một biểu tượng. Ở đây chúng tôi đang làm cho chắc chắn rằng họ cổ phiếu thực sự bước vào. Và ở đây chúng tôi đang làm cho chắc chắn rằng họ nhập một số nguyên đối với cổ phiếu, vì vậy họ không cố gắng để mua cổ phiếu ABC. Bây giờ chúng tôi muốn tìm kiếm giá của biểu tượng vì vậy chúng tôi biết bao nhiêu tiền chúng tôi nên trừ từ người sử dụng. Bây giờ chúng ta sẽ chọn bao nhiêu tiền người sử dụng thực sự có và chắc chắn rằng mà đã thành công. Ở đây chúng ta đang cầm tiền mặt. Và bây giờ đây, chúng tôi đang làm cho chắc chắn người dùng có đủ tiền mặt. Vì vậy, nếu số lượng cổ phiếu người sử dụng muốn mua với giá cả của mỗi của những cổ phiếu lớn hơn lượng tiền mặt mà chúng tôi có, sau đó các người sử dụng không có khả năng đó. Giả sử rằng người dùng có đủ tiền mặt, bây giờ chúng tôi muốn để chèn vào danh mục đầu tư của người dùng. Vâng, chúng tôi sẽ chèn vào người sử dụng của danh mục đầu tư nếu điều này xảy ra là lần đầu tiên người dùng được mua mà biểu tượng cụ thể. Nhưng nếu họ đã xảy ra có một số cổ phiếu của Apple? Vâng, bây giờ chúng tôi đang làm cho việc sử dụng trên bản sao báo cáo cập nhật quan trọng. Vì vậy, đây là lý do tại sao trước đó chúng tôi xác định rằng ID và biểu tượng phải là một doanh khóa chính, do đó nếu chúng ta cố gắng chèn một ID và biểu tượng có đã có, chúng tôi sẽ chỉ cập nhật cổ phiếu bao gồm các cổ phiếu mới người sử dụng là mua. Bây giờ chúng tôi muốn cập nhật số lượng tiền mà người sử dụng có, vì chúng chỉ cần bỏ ra một số tiền vào những cổ phiếu. Và cuối cùng, chúng tôi sẽ cập nhật bảng lịch sử một lần nữa. Trong đó, một lần nữa, chúng tôi sẽ xem xét ở trong một giây. Và cuối cùng chúng tôi sẽ chuyển hướng sao để portfolio.PHP. Vì vậy, chúng ta hãy nhìn vào bảng lịch sử. Bây giờ hãy nhớ rằng bảng lịch sử là phải theo dõi tất cả mua và bán tất cả người dùng thực hiện, không chỉ là số lượng hiện tại của cổ phiếu mà người dùng có, đó là những gì danh mục đầu tư là dành cho. Vì vậy, chúng tôi đang theo dõi người sử dụng mà được mua hoặc bán, cho dù giao dịch đặc biệt này là một mua hoặc bán, biểu tượng đó là được mua hoặc bán, số lượng cổ phiếu mà chúng ta đang mua hoặc bán, các giá của một cổ phiếu duy nhất đó là được mua hoặc bán, và cuối cùng, thời gian mà mua này hoặc bán đang xảy ra. Và đó là tất cả các lịch sử thông tin mà chúng ta cần để theo dõi. Vì vậy, khi chúng tôi xem xét bán, chúng tôi thấy rằng chúng tôi đã chèn vào lịch sử bán, như việc chúng ta đang mua hoặc bán, dấu thời gian hiện tại, và người sử dụng hiện tại, biểu tượng đó là được bán ra, số lượng cổ phiếu mà được bán, và giá của các cổ phiếu tại thời điểm này. Tương tự như vậy, trong mua, nó sẽ trông gần như giống nhau. Sự khác biệt duy nhất là thay vì bán hàng, chúng tôi đang mua. Vì vậy, trong mua bán, chúng tôi đang chèn vào bảng lịch sử tất cả các mua và bán đang xảy ra. Vì vậy, tất cả history.PHP cần làm là lấy các thông tin từ lịch sử bảng, chắc chắn rằng nó đã thành công, và đưa ra thông tin đó. Vì vậy, nhìn vào mẫu history.PHP, các thông tin thú vị là ngay tại đây. Chúng ta lặp qua tất cả các giao dịch, in ấn liệu này một thời gian ngày mua hoặc bán, định dạng mà chúng ta đã giao dịch này. Nhớ chúng ta cần phải sử dụng htmlspecialchars trên biểu tượng, chỉ trong trường hợp. Và cuối cùng, định dạng số cổ phiếu đã được mua và giá cả của một cổ phần duy nhất tại thời điểm đó. Và hiển thị tất cả các lịch sử thông tin mà chúng tôi cần. Và đó là nó cho pset này. Tên tôi là Rob, và điều này là CS50 Tài chính.