[MUSIC PLAYING] ROB Bowden: Hi. Aku Rob, dan saya harap Anda sudah siap untuk menempatkan saham dalam larutan ini. Pertama, mari kita lihat daftar. Jadi ingat bahwa di sini kita sedang memeriksa untuk melihat apakah bentuk adalah diposting ke halaman ini. Sehingga hal pertama kita akan lakukan adalah pergi ke lain tersebut. Dan kita akan membuat bentuk daftar. Jadi form register akan memposting ke register.php. Dan apa itu akan mengirim? Ini akan mengirim username bahwa pengguna akan mengisi, password, dan konfirmasi - password diketik lagi. Jadi, sekarang ketika bentuk yang diposting ke register.php kita akan mengeksekusi ini jika. Melihat ini jika, kami pertama akan memvalidasi input. Kami ingin memastikan bahwa username dan kata sandi yang tidak kosong dan konfirmasi sebenarnya sesuai password. Setelah kami memverifikasi bahwa kita bisa benar-benar mendaftar pengguna. Apa artinya? Nah, kita ingin memasukkan pengguna ke database kami. Dan ini adalah bagaimana kita akan melakukannya. Jadi kita akan memasukkan ke dalam pengguna tabel nama pengguna bidang, hash, dan uang tunai. Nilai default kas akan menjadi 10.000. Dan kita akan lulus sebagai nama pengguna, nama-pengguna, melalui POST Super global yang sudah disampaikan dari bentuk. Dan kita akan mengenkripsi password. Jadi jika itu berhasil, maka hasil akan non-palsu. Jika gagal, maka kita ingin minta maaf. Ada yang tidak beres. Dan apa yang bisa saja salah? Nah, perlu ada username unik. Dan query bisa gagal jika username sudah ada di meja. Jadi dengan asumsi itu adalah nama pengguna yang unik, maka kita akan query untuk ambil ID pengguna tersebut. Ingat bahwa ID tersebut auto-incrementing. Dan jika itu terjadi gagal untuk beberapa Alasannya, maka kita ingin meminta maaf bahwa kita tidak bisa ambil ID. Tapi dengan asumsi bahwa itu tidak gagal, maka kita ambil ID dari apa query dikembalikan, menyimpan bahwa dalam sesi kami - jadi kami ingin log pengguna ini oleh menyimpan ID dalam sesi Super global, dan akhirnya redirect ke portofolio kami. Dan itu saja untuk mendaftar. Sekarang kita akan beralih ke kutipan. Jadi kutipan akan memiliki set up benar-benar mirip. Kita lihat di sini bahwa ini adalah kode yang kita akan mengeksekusi ketika suatu bentuk diposting ke halaman ini. Tapi pertama-tama kita benar-benar memiliki untuk membuat bentuk itu. Jadi mengambil melihat bentuk kutipan, apa bidang yang ada? Kita melihat bahwa semua kutipan telah adalah satu kotak teks dengan simbol nama. Dan jadi ketika bentuk kutipan yang diposting untuk quote.PHP kita sekarang akan mengeksekusi kode ini. Dan satu-satunya variabel dalam POST super kita global akan menjadi simbol. Kami memvalidasi bahwa memastikan bahwa mereka benar-benar diposting simbol. Dan jika mereka tidak, kita katakan Anda harus memberikan simbol. Dengan asumsi mereka menyediakan simbol, kami mencari simbol itu. Sekarang ingat bahwa melihat up mungkin memiliki gagal karena, well, mungkin itu bukan simbol yang valid untuk memulai. Jadi jika ini mencari return false, kami ingin meminta maaf bahwa simbol tidak ditemukan. Setelah kami telah menemukan simbol, sekarang kita dapat membuat template quote.PHP. Apa yang terlihat seperti? Itu hanya akan mencetak bahwa saham apa pun nama saham adalah bernilai apapun harga saham. Sekarang mengapa kita menggunakan htmlspecialchars ini berfungsi? Itu karena nama saham dan simbol mungkin benar-benar berisi khusus karakter yang seharusnya tidak ditafsirkan sebagai HTML. Baiklah, jadi itu saja untuk kutipan. Sekarang kita ingin melihat Garut dan portofolio. Tetapi, pertama kita benar-benar perlu untuk membangun tabel portofolio. Berikut adalah cara kita akan melakukan itu. Jadi mari kita lihat struktur. Dan kita melihat bahwa portofolio tabel akan memiliki ID. Sehingga akan menjadi pengguna ID yang memasukkan saham. Kami memiliki simbol, yang akan menjadi simbol dari perusahaan yang kami memasukkan saham untuk. Dan kemudian saham adalah jumlah saham yang sedang dimasukkan. Jadi ingat bahwa per pset spec, kita menetapkan bahwa ID dan simbol - kami memeriksa indeks, ID dan simbol adalah kunci utama. Jadi user ID dan simbol pasangan hanya akan muncul satu waktu dalam tabel ini. Sekarang mari kita lihat kode. Jadi sekarang index.php akan ambil semua informasi portofolio kami dan menampilkannya kepada pengguna. Jadi pertama, kita akan ambil uang tunai bahwa pengguna saat ini memiliki dari meja kas. Ingat, pertanyaan yang selalu akan untuk mengembalikan array array. Jadi meskipun kami hanya memilih uang tunai dari satu baris, kita masih perlu ambil uang itu dengan pengindeksan ke dalam Indeks zeroth baris dan meraih Indeks tunai. Jadi sekarang kita ingin memilih semua informasi dari tabel portofolio yang relevan untuk saat ini login user. Kita tentu saja perlu memvalidasi bahwa yang benar-benar berhasil, yang kita harus selalu melakukan setiap kali kita query. Setelah kita memiliki semua informasi itu, yang pset spesifikasi memberitahu kita bahwa kita harus melakukan ini dalam rangka untuk menyimpan baik semua informasi dalam posisi array. Jadi kita perulangan atas semua informasi portofolio, mendongak saham yang terkait dengan setiap baris dalam informasi portofolio, dan kemudian menyimpan dalam array posisi nama, harga, saham dan simbol semua terkait dengan saham itu. Dan akhirnya, kita akan membuat portfolio.PHP, melewati dalam jumlah kas saat ini kami miliki, posisi array kita hanya dibangun, dan judul ini Halaman yang akan menjadi portofolio. Mari kita lihat portfolio.PHP. Dan kita melihat bahwa menarik utama bagian loop ini. Jadi kita perulangan atas posisi array, menciptakan table, di mana meja itu - kita mengisi setiap baris dengan informasi yang kita masukkan ke dalam posisi array. Sekali lagi, kita perlu menggunakan htmlspecialchars dalam hal ini simbol atau nama berisi karakter HTML. Dan di sini kita mengalikan harga dan jumlah saham yang kita miliki untuk mendapatkan berapa banyak yang saat ini bernilai kepada pengguna. Dan itu saja untuk portofolio. Sekarang kita akan melihat di jual. Jadi sell akan kembali ke Format yang kita miliki di register.php. Kita melihat bahwa formulir akan yang akan diposting ke halaman ini. Tapi pertama-tama, ketika kita memuat halaman, kita akan melakukan hal ini. Jadi apa ini lakukan? Yah, kita hanya bisa memiliki halaman sell memiliki kotak teks tunggal bahwa pengguna memasuki simbol ini yang kami ingin menjual. Tapi kita akan menjadi sedikit lebih pintar dan kita akan memiliki drop down yang memungkinkan pengguna untuk memilih simbol yang sebenarnya yang telah mereka miliki. Jadi kita mendapatkan portofolio pengguna. Kita akan memilih dari portofolio semua simbol bahwa pengguna saat ini memiliki, saat ini login user. Pastikan bahwa yang berhasil. Dan sekarang kita akan loop atas kembali informasi, hanya meraih setiap simbol, dan menyimpannya dalam simbol-simbol array ini. Dan sekarang kita akan membuat formulir sell. Jadi bentuk sell akan hanya menjadi menu drop-down, pilih. Dan setiap pilihan dalam bentuk jual adalah akan hanya mencetak simbol bahwa kita meraih dari portofolio meja. Jadi bentuk sell akan mengirimkan kembali ke sell.PHP. Melihat sell.PHP, ini adalah kode itu akan mengeksekusi ketika kami sampaikan ke halaman ini. Kami ingin memvalidasi bahwa pengguna benar-benar masuk simbol. Sekarang asumsi bahwa mereka lakukan - jadi sekarang kita ingin menentukan berapa banyak berbagi pengguna benar-benar menjual dan berapa banyak uang tunai pengguna harus mendapatkan untuk menjual banyak saham. Jadi kita ambil jumlah saham yang pengguna memiliki untuk simbol ini. Kami sedang mencari di portofolio untuk diberikan pengguna dan simbol yang diberikan. Sekarang pastikan bahwa yang benar-benar kembali berturut-turut. Karena jika tidak, pengguna tidak benar-benar memiliki simbol untuk menjual. Dengan asumsi mereka memiliki simbol itu, kami ingin mengambil jumlah saham yang mereka miliki. Dan sekarang kita ingin mencari bagaimana banyak setiap saham bernilai. Jadi kami menggunakan mencari fungsi. Kami sedang mencari nilai simbol. Dengan asumsi bahwa tampilan sampai berhasil, sekarang kita akan benar-benar memperbarui semua informasi. Jadi kita ingin menghapus dari portofolio saham yang kita jual. Kami ingin memperbarui pengguna jumlah uang tunai. Dan kami meng-update dengan saham kali harga saham - jadi itu berapa banyak uang pengguna hanya dibuat. Dan sekarang kita ingin memperbarui sejarah kita. Jadi kita belum mengambil lihat di meja sejarah belum. Jadi kita akan kembali ke ini. Sekarang akhirnya kita akan mengarahkan kembali ke portofolio. Sekarang mari kita lihat membeli. Jadi, membeli harus cukup mirip dengan menjual. Kita melihat bahwa kita lagi akan untuk memeriksa untuk melihat apakah kita mengirimkan ke halaman ini. Dengan asumsi bahwa kita tidak, kita akan memuat bentuk beli. Jadi apa bentuk membeli terlihat seperti? Kita lihat di sini itu hanya biasa bentuk yang akan mengirimkan kembali ke buy.PHP. Dan itu akan memiliki simbol yang pengguna masuk, jumlah saham yang pengguna ingin membeli simbol itu, dan hanya itu. Jadi ketika kita serahkan kembali ke buy.PHP, kami sekarang akan mengeksekusi kode ini. Kita lagi ingin memvalidasi bahwa pengguna memasukkan sesuatu yang valid. Jadi di sini kita memastikan mereka benar-benar masuk simbol. Di sini kita memastikan bahwa mereka saham benar-benar masuk. Dan di sini kita memastikan bahwa mereka memasuki sebuah integer untuk saham, sehingga mereka tidak mencoba untuk membeli saham ABC. Sekarang kita ingin mencari harga simbol jadi kami tahu betapa kami kas harus kurangi dari pengguna. Sekarang kita akan memilih berapa banyak uang tunai pengguna sebenarnya memiliki dan pastikan bahwa yang berhasil. Di sini kita meraih uang tunai. Dan sekarang di sini, kami memastikan bahwa pengguna memiliki cukup uang. Jadi jika jumlah saham pengguna ingin membeli kali harga masing-masing saham tersebut lebih besar dari jumlah uang tunai yang kita miliki, maka pengguna tidak mampu untuk itu. Dengan asumsi bahwa pengguna memiliki cukup uang, sekarang kami ingin untuk memasukkan ke dalam portofolio pengguna. Nah, kita akan masukkan ke pengguna portofolio jika hal ini terjadi untuk menjadi pertama kali pengguna membeli simbol tertentu. Tapi bagaimana jika mereka sudah terjadi memiliki beberapa saham Apple? Nah, sekarang kita memanfaatkan pada duplikat pernyataan update key. Jadi ini sebabnya sebelumnya kita ditentukan bahwa ID dan simbol harus sendi primary key, sehingga jika kita mencoba untuk masukkan ID dan simbol yang sudah ada di sana, kami hanya akan memperbarui saham untuk menyertakan saham baru yang pengguna membeli. Sekarang kita ingin memperbarui jumlah kas bahwa pengguna memiliki, karena mereka hanya menghabiskan uang pada saham tersebut. Dan akhirnya, kami akan memperbarui tabel sejarah lagi. Yang, sekali lagi, kita akan melihat di dalam satu detik. Dan akhirnya kita akan redirect kembali ke portfolio.PHP. Jadi mari kita lihat tabel sejarah. Sekarang ingat bahwa tabel sejarah seharusnya melacak semua membeli dan menjual bahwa semua pengguna membuat, bukan hanya saat ini jumlah saham yang pengguna memiliki, yang adalah apa yang portofolio adalah untuk. Jadi kita melacak pengguna yang adalah membeli atau menjual, apakah transaksi tertentu ini adalah beli atau menjual, simbol yang menjadi dibeli atau dijual, jumlah saham bahwa kita membeli atau menjual, yang harga saham tunggal yang menjadi dibeli atau dijual, dan akhirnya, waktu bahwa pembelian ini atau menjual terjadi. Dan itu semua sejarah informasi yang kita butuhkan untuk melacak. Jadi ketika kita melihat menjual, kita melihat bahwa kami memasukkan ke dalam sejarah sell, seperti apakah kita membeli atau menjual, waktu yang tertera saat ini, dan pengguna saat ini, simbol yang menjadi dijual, jumlah saham yang yang dijual, dan harga saham saat ini. Demikian pula, dalam membeli, itu akan terlihat hampir sama. Satu-satunya perbedaan adalah bukan penjualan, kami membeli. Jadi dalam menjual dan membeli, kita memasukkan ke tabel sejarah semua membeli dan menjual yang terjadi. Jadi semua history.PHP perlu lakukan adalah ambil informasi dari sejarah meja, pastikan berhasil, dan membuat informasi tersebut. Jadi melihat template history.PHP, informasi menarik ada di sini. Kita perulangan atas semua transaksi, pencetakan apakah ini adalah membeli atau menjual, format tanggal waktu bahwa kita membuat transaksi ini. Ingat kita perlu menggunakan htmlspecialchars pada simbol, hanya dalam kasus. Dan akhirnya, format jumlah saham yang telah dibeli dan harganya dari saham tunggal pada waktu itu. Dan yang menampilkan semua sejarah informasi yang kita butuhkan. Dan itu saja untuk pset ini. Nama saya Rob, dan ini adalah CS50 Finance.