SAM LEVATICH: Selamat Datang bagian untuk minggu ini. Saya tidak Andi. Andi telah jatuh sakit hari ini, dan saya telah semacam disebut di menit terakhir untuk mengambil alih. Ini musim flu, jadi pastikan bahwa Anda tinggal bersih, mencuci tangan Anda, dan makan sehat sehingga Anda juga tidak terbaring di tempat tidur. Tapi tanpa lanjut ado, mari kita mulai. Hari ini, kita akan berbicara tentang PHP sedikit bit-- bagaimana PHP berkaitan dengan HTML, bagaimana berhubungan dengan CSS, dan beberapa web hal yang Anda lakukan pada tugas terakhir. Kita akan berbicara sedikit tentang SQL dan bagaimana Anda dapat bekerja dengan database, yang merupakan komponen yang cukup penting dari P mengatur 8-- P ditetapkan 7. P ditetapkan 7. Dan kemudian kita akan berbicara sedikit sedikit tentang bagaimana pandangan pengendali bekerja dan mengapa itu adalah filosofi di balik beberapa halaman web modern dan desain yang berbeda. Cukup banyak banyak jenis aplikasi dan aplikasi Anda mungkin kapal menggunakan model ini, lihat kerangka controller, bahwa Anda akan menggunakan di P ditetapkan 7, jadi saya akan berbicara sedikit tentang mengapa yang menjadi populer, mengapa hal itu penting dan bagus. Dan kemudian aku akhirnya akan pindah ke beberapa tips tentang mengatasi P ditetapkan 7. Dan jika kita punya waktu tersisa di akhir, kita benar-benar dapat melakukan beberapa bekerja pada itu bersama-sama. Jadi, PHP. Bahkan, Anda mungkin telah memperhatikan this-- Anda tidak benar-benar harus menyelam ke itu-- tapi P set 6 memiliki beberapa PHP kode yang sedang terjadi. Dan karena PHP adalah C-seperti bahasa, PHP, tidak seperti HTML dan CSS, adalah bahasa pemrograman, sedangkan HTML dan CSS yang statis. Mereka bahasa markup berurusan dengan gaya dan tata letak visual. PHP adalah real deal. PHP memiliki loop, memiliki conditions-- semua hal yang menyenangkan tentang C. Ini memiliki beberapa hal yang sedikit bit lebih baik dari C, yang akan kita lihat, tapi saya pikir cara termudah untuk berbicara tentang PHP hanya untuk menyelam di. Jadi aku akan pergi ke kanan ke dalam IDE pada saat ini. Hal pertama yang kita akan lakukan adalah benar-benar melihat sedikit di beberapa Kode PHP yang berada di P set 6. Jadi cara yang kita lakukan itu-- sebelumnya, cara yang kami sedang berlari server untuk alat adalah bahwa kita harus type-- baik menggunakan implementasi Anda atau pelaksanaan staf dari server.c dengan pergi ke direktori dan berjalan server.c dengan baik tanpa arguments-- sehingga sebut saja pada host lokal, yang adalah apa yang Anda mungkin melakukan sebagian besar time-- yang dan kemudian makan itu sebuah directory-- dengan yang digunakan sebagai akarnya mana yang akan situs menjadi dijalankan, pada dasarnya. Minggu ini untuk P ditetapkan 7, sebagai besar sebagai kode untuk server.c adalah, ada orang-orang yang telah ditulis hal-hal baik selama di CS50 yang memiliki sedikit fungsionalitas lebih, sebuah program server yang mampu berurusan dengan lebih sedikit seluk-beluk yang kita akan lihat di kedua P ditetapkan 7 dan P ditetapkan 8. Dan cara yang Anda mulai menaiki server dengan hanya mengetik, "apache50." Dan sebelum Anda melakukan apa-apa, Anda ingin memastikan bahwa Apache 50 tidak sudah berjalan seperti itu di mesin saya, yang saya lakukan untuk menguji itu. Dan Anda melakukannya dengan menelepon apache50. Berhenti, dan Anda akan melihat bahwa itu berhenti server web, jika Anda dapat melihat ada di bagian bawah jendela terminal. Dan kemudian hanya untuk memulai, kami akan memanggil, "apache50 mulai." Dan kemudian kita akan memberi makan direktori. Sekarang, karena kita ingin melihat di beberapa P set 6 kode bahwa kami telah dilaksanakan, saya benar-benar disalin sedikit dari P set 6 kode ke folder saya sendiri, yang Anda dapat melihat di sebelah kiri ada. Ini disebut "SECTION8" dalam huruf kapital semua karena aku hanya begitu bersemangat menjadi live-streaming hari ini. Jadi jika kita menjalankan ini, seharusnya semua bekerja cukup efektif. Ia mengatakan, OK, situs kami sekarang tersedia di alamat IDE, pada dasarnya, yang adalah apa yang Anda gunakan persis seperti di P mengatur 7-- P set 6. Semua indeks saya indeks satu hari ini. Jadi kita bisa pergi ke yang alamat, jika Anda akan ingat, dengan hanya mengklik ini sedikit tombol di kanan atas. Dan Anda akan ingat kode ini, yang terjadi ketika Anda pergi ke hello.php. Dan apa kode dirancang untuk lakukan adalah ketika Anda mengetik sebuah nama sini-jika Anda mengatakan Sam karena itulah saya name-- dan saya klik Say Hello, ketika kami pergi ke halaman berikutnya, Nama yang seharusnya ditampilkan. Ini akan mengatakan, "Halo, Sam" atau "Hello," nama apa pun yang Anda dimasukkan ke dalamnya meskipun kami pergi ke halaman web yang sama sekali baru. Dan ini adalah semacam hal bahwa PHP dapat melakukannya untuk Anda. PHP mampu melewatkan data antara dua halaman web. Ini adalah halaman yang sama sekali berbeda. Anda akan melihat judul "halo" di sini. Sebenarnya, mereka memiliki judul yang sama, tapi aku berjanji mereka web yang berbeda halaman jika kita melihat sumber. Dan Anda dapat melewati data yang dimasukkan dalam kolom teks ini, Anda mengirimkannya ke yang berikutnya Halaman yang sedang dipanggil, dan kemudian data yang mampu berada di sana dalam bentuk yang sekarang. Sekarang kita belum diimplementasikan ini diri kita sendiri, yang adalah apa yang akan kita lakukan sekarang untuk semacam mendapatkan rasa untuk bagaimana PHP bekerja, tetapi gagasan utama adalah bahwa Anda bisa PHP-- semacam memikirkan seperti fungsi. Sesuatu yang PHP dapat membiarkan Anda lakukan adalah dapat mengambil parameter yang Anda masukan ke dalam halaman HTML melalui penggunaan PHP dan bentuk, dan dapat melewati mereka sebagai parameter ke halaman berikutnya bahwa beban up. Dalam hal ini, kita loading ini Halaman dengan "Say hello" tombol. Tapi untuk saat ini, aku benar-benar menghapus beberapa kode yang di hello.php yang sedang dijalankan yang benar-benar menampilkan "halo, dunia "atau" halo, Sam "atau "Halo," apa pun itu hanya masukan. Jadi untuk sekarang, kami akan melakukan itu, pada dasarnya. Kita akan menciptakan itu dan juga menambahkan beberapa fungsionalitas lebih, melakukan sedikit lebih dengan itu, melihat apa PHP benar-benar mampu. Jadi pertama, mari kita bicara tentang file ini, hello.php. Jadi jika kita tampilannya dalam sedikit bit-- dan sekarang aku semacam mencoba untuk menggulung cara around-- ada kita pergi. Anda akan melihat itu disebut hello.php, namun sintaks itu terlihat seperti file HTML. Hal ini karena PHP aktual dalam file ini adalah semua terjebak antara Pertanyaan blok tanda-tanda sisipan. Semuanya di sini dianggap kode PHP. Dan Anda akan melihat bahwa ketika saya melakukan komentar, Anda akan melihat familiar dua garis miring ke depan. Dan jika Anda ingat, di HTML, jika saya ketik komentar, terlihat sesuatu yang lebih dekat ke ini, yang merupakan komentar dalam HTML. Jadi benar-benar segala sesuatu antara dua sudut kurung ini sekarang kode PHP, yang tercermin dalam kenyataan bahwa simbol komentar kecil ini berubah menjadi komentar. Jadi setiap kali Anda menulis kode PHP, bahkan jika tidak ada kode HTML di luar itu, itu selalu akan menjadi ditutupi dalam kurung sudut ini dengan tanda tanya. Anda dapat semacam berpikir tentang bagaimana semua itu-- dari kode yang berlari dalam program C Anda tertutup dalam int main, batal, penjepit keriting, akhir pernyataan penjepit keriting. Dan Anda akan melihat kurung kurawal di PHP juga, tapi ini adalah semacam seperti metode utama PHP. Jadi sekarang, bagaimana kita melakukan sesuatu di PHP? Sekarang, PHP adalah pemrograman bahasa yang sangat C-seperti, tetapi beroperasi di web. Jadi satu hal yang Anda akan immediately-- satu satu hal pertama yang Anda benar-benar melakukan dengan C Anda dicetak barang keluar, kan? Jadi di C kita melakukan itu dengan fungsi printf. Kami berikan itu string, mungkin dengan garis baru, dan kemudian kami dihentikan dengan titik koma. Jadi cara yang kita akan melakukan itu di PHP-- karena itu tidak cukup printf. Ini sedikit sintaks yang berbeda. Cara kita mencetak hal-hal PHP adalah kita mengatakan, "echo hello" atau "echo" kata apapun. Dan yang memiliki efek melakukan printf dengan string, "Halo." Dan itu menambah baris baru untuk itu. Jadi mari kita sekarang membuat sure-- Saya akan tampilannya lagi sedikit bit-- mari kita pastikan bahwa kode yang bekerja karena mungkin ada sangat juga menjadi bug dalam kode ini bahwa kita harus mengatasi. Sehingga server sudah berjalan. Jadi jika kita gulir kembali turun ke bawah, yup, server masih berjalan. Jadi jika kita hanya tekan pada ini sedikit yang tepat di sini- welcome-- kita harus get-- besar. Kami masih sedang memiliki akrab "Say hello" dialog, tetapi ketika saya ketik "hi," kita akan melihat bahwa teks "hello" memang dicetak, yang persis seperti kami harapkan karena bergema di PHP adalah seperti sebuah pernyataan printf. Jadi kembali ke kode, bagaimana di P set 6 lakukan kode distribusi Anda disediakan membuatnya sehingga PHP akan Output hal yang Anda diketik di atas layar sebelumnya? Dan untuk jenis memeriksa mengapa itu terjadi, kami akan masuk ke index.html, yang adalah file asli, file yang muncul di layar ini dengan "Say hello" tombol. Anda melihat bahwa ada semua hal klasik kami telah datang ke harapkan dari HTML seperti sebagai hal-hal ini, tag ini tertutup dalam kurung sudut, seperti PHP tapi tanpa tanda tanya, yang menunjukkan hal khusus untuk HTML. Kami memiliki judul, yang merupakan "halo." Dan Anda akan melihat bahwa seperti yang kita lihat, judul adalah "halo" dalam kedua kasus. Mari kita mengubah satu ini untuk "mengatakan" supaya kita dapat membedakan diri di mana kita berada. Tapi kita punya tubuh. Dan kemudian sedikit menarik, bit yang muncul dalam HTML, apakah ini bentuk elemen. Dan jadi kita punya formulir. Dan ini adalah kuncinya. Ini adalah bagaimana kita bekerja dengan PHP. Parameter aksi bentuk mengatakan bahwa hello.php adalah apa yang kita akan mengirim nilai-nilai dalam formulir ini untuk. Di sinilah kita lewat parameter, sehingga untuk berbicara. Anda akan melihat hal lain di sini adalah bahwa metode ini "mendapatkan." Ada dua utama metode yang akan akan menggunakan PHP untuk melewatkan data antara halaman web websites--, rather-- dalam tugas ini. Dan metode-metode yang "mendapatkan" dan "pos." Ada beberapa halus perbedaan antara mendapatkan dan pasca bahwa kita akan mendapatkan into-- kami akan "mendapatkan" ke dalam, jika Anda mau. Tapi untuk semua maksud dan tujuan, mendapatkan dan posting keduanya hanya cara yang Anda melewati parameter dengan eksekusi yang sedikit berbeda. Untuk saat ini, kita akan menggunakan mendapatkan karena mendapatkan adalah apa yang digunakan awalnya dalam file PHP dari P set 6. Dan sebenarnya, jika kita masuk dan melihat sebelum kita telah mengedit apa-apa lagi, Aku akan mengatakan hi to-- siapa namamu? AUDIENCE: Elliot. SAM LEVATICH: Oh, gosh. Saya tidak tahu bagaimana mengeja itu. Bisakah Anda mengejanya bagi saya? AUDIENCE: E-L-L-I-O-T. SAM LEVATICH: I-O-T? AUDIENCE: Ya. SAM LEVATICH: Sempurna. OKE. Saya kira saya memang tahu bagaimana mengeja itu. Maaf tentang itu. Tetapi jika kita mengatakan "Say halo," itu bukan itu tidak akan muncul di layar namun karena kita diubah kode sedikit. Tetapi jika kita "Menyapa" - OK, jadi "halo" di sini. Tetapi jika kita mengambil lebih dekat melihat URL sendiri, kita akan melihat bahwa itu berakhir dengan hello.php? name = Elliot. Jadi, ini adalah cara berkomunikasi ke halaman web berikutnya parameter yang sudah kita lewati. Kami mengatakan nama = Elliot. Dan itulah akhirnya bagaimana P ditetapkan 6 diakses variabel yang kami melewati di melalui form. Dan ini adalah sesuatu yang adalah khas permintaan get. Permintaan get membuat parameter dikenal di URL website. Dan Anda akan ingat, juga, di P menetapkan 6 yang Anda harus menulis fungsi yang berurusan dengan fakta bahwa permintaan string ini bisa ada setelah file. Mungkin ada tanda tanya diikuti oleh dasarnya setiap jumlah karakter. Dan itu persis apa yang terjadi di sini. Dan alasan Anda harus mengurai bahwa dalam pelaksanaan Anda server.c di P set 6 adalah agar Anda bisa melihat kode PHP yang nama = Elliot. Anda perlu untuk dapat mengurai bahwa dari URL sehingga file PHP yang bersangkutan tahu apa itu berurusan dengan. Jadi mudah-mudahan ini memberikan motivasi untuk server.c sekarang kita pindah luar C ke PHP. Jadi mari kita benar-benar fokus pada mengakses hal melewati permintaan get sekarang pada pokoknya. Aku akan menyimpan ini. Kami tidak mengubah apa-apa. Sepertinya kita punya field input. Kami sedang menyiapkan beberapa properti, seperti yang bisa kita lakukan HTML. Ini adalah hal-hal sederhana. Kita tidak perlu ini. Tapi kami punya autocomplete off, yang pada dasarnya says-- Anda tahu, ketika Anda mengetik hal-hal ke web, kadang-kadang ia mencoba untuk mengisi untuk Anda. Jadi itu adalah hal yang menyenangkan. Kami ingin mematikannya untuk tujuan ini. Itu adalah keputusan CS50. Jadi kita dapat menghapus bahwa jika kita ingin. Autofocus hanya tongkat kursor dalam bentuk yang tepat di awal. Sekali lagi, tidak terlalu penting. Tapi nama = "nama" - itu sedikit rumit karena itu nama dan nama. Tapi kita bisa telah mengubah ini untuk sesuatu yang lain. Dan pada kenyataannya, itu apa yang akan kita lakukan sekarang. Kami akan mengatakan "orang," yang adalah semacam nama jika seseorang didefinisikan oleh nama mereka. Jadi mari kita tutup ini, membuka kembali website kami karena server kami masih berjalan Apache 50, dan kita akan mengatakan, halo, inilah Elliot lagi. Kenapa tidak? Halo. Dan jika kita pergi di sini, kita akan melihat maka bukan nama = Elliot, ia mengatakan orang = Elliot. Dan itu merupakan akibat langsung dari fakta bahwa kita hanya mengubah nama = "orang." Jadi dalam elemen input bentuk HTML, kolom nama adalah identifier untuk parameter yang sedang lewat. Ini seperti jika Anda membuat fungsi "menambahkan" yang mengambil di dua bilangan bulat dan Anda mengatakan int a dan int b. Itu akan menjadi sebuah nama, dan jika Anda ingin bentuk lain, yang yang bisa kita lakukan hanya dengan menyalin dan paste, maka kita akan memiliki nama b. Jadi sekarang kita akan memiliki dua parameter yang sedang melewati sampai ke website-- berikutnya halaman web berikutnya, hello.php. Dan kita benar-benar bisa melihat itu lagi jika kita ingin. Ini adalah cara termudah untuk menangani kode web dalam IDE, pada dasarnya. Anda memulai server, mendapatkannya berjalan, dan kemudian setiap kali Anda membuat beberapa perubahan, hanya dekat file yang hanya untuk menjadi aman. Menekan tombol kembali adalah sedikit rumit karena mungkin memuat sebelumnya versi, bukan yang paling update. Dan kemudian Anda klik Anda tombol lagi, pop kanan up-- oh, dan sekarang ada dua bentuk. Dan jika kita ketik satu hal ke masing-masing satu-- "jason Hirshhorn," untuk instance-- kami menyapa. Kami memandang parameter kami. Sepertinya kita punya, sebagai diharapkan, a = jason dan b = Hirshhorn, yang mewakili dua parameter bahwa kita dilewatkan ke fungsi ini. Jadi sekarang mari kita benar-benar bisa melaksanakan fungsi yang kita telah di P set 6. Jadi sekarang kami hanya bergema halo. Dan itu tidak terlalu berguna. Kami ingin echo beberapa variabel yang disahkan kepada kami. Dan kita tahu nama variabel ini. Kami memiliki dan kami telah b. Jadi kita bisa memilih untuk echo salah satu. Tapi bagaimana kita mengaksesnya? Nah, ada tertentu variabel global di PHP. Dan aku akan menulis mereka dalam komentar di sini. Dua yang paling penting adalah mendapatkan dan posting untuk tujuan kita sekarang. Ini adalah array atau, teknis, kamus di mana variabel kita bahwa kita melewati ke hidup halaman web berikutnya. Dan kita akan segera melihat bagaimana menggunakannya. Catatan singkat lain tentang kode PHP dan beberapa spesifik dari itu-- di C, untuk mendeklarasikan variabel atau menggunakan variabel, Anda pertama kali harus menyatakan mereka. Dan apa yang Anda harus lakukan ketika Anda menyatakan mereka adalah mengatakan int atau arang b. Anda harus mendeklarasikan jenis ini variabel sebelum Anda menciptakan mereka. PHP-- Anda tidak perlu melakukan semua itu. PHP tidak meminta jenis variabel. Dan cara yang Anda membuat variable-- agak daripada mengatakan int, char, string-- yang benar-benar char *, seperti yang kita tahu-- daripada melakukan semua itu, karena semuanya adalah dari jenis yang sama, typeless, kita bisa hanya menggunakan satu karakter, yang adalah tanda dolar. Dan Anda akan melihat itu sudah bermunculan up, sedikit autocomplete hal. Dan itu mengatakan bahwa _GET dan _POST dua pilihan yang saya miliki untuk saya. Beberapa hal-hal lain yang variabel global lainnya di PHP bahwa Anda akan menggunakan lebih jalannya P ditetapkan 7. Untuk saat ini kita akan fokus pada mendapatkan dan pasca. Tapi ini adalah membantu hal yang IDE melakukan di mana setelah Anda mengetik dalam tanda dolar, itu akan mulai mengisi variabel global atau variabel Anda sudah ditetapkan. Jadi jika Anda ingin mendefinisikan variabel yang disebut "string," Anda hanya bisa mengaturnya sama dengan "hi." Dan itu pada dasarnya sesederhana itu. Dan kemudian kita bisa melakukan sesuatu seperti "echo $ string." IDE harus membuang beberapa kesalahan jika aku melakukan sesuatu yang salah, jadi mudah-mudahan aku melakukan segalanya dengan benar. Tapi bug selalu jangan muncul. Hal lain yang rumit tentang PHP adalah bahwa hal itu tidak dikompilasi. Jadi dengan program C, Anda akan melakukan rutinitas sehari-hari of-- pada dasarnya, Anda akan membuat suntingan ke kode Anda, Anda akan menyimpannya, dan kemudian Anda akan membuatnya, di mana make adalah langkah yang disebut kompilator, dentang, untuk membuat kode Anda, teks ini mengajukan, menjadi executable. PHP adalah C-seperti, tapi itu dieksekusi on the fly oleh browser web Anda. Jadi tidak ada cara untuk mengetahui. Membuat akan membuang orang-orang kesalahan membantu, kan? Ini akan seperti, Anda tidak mendeklarasikan variabel ini sebelum Anda mencoba untuk menggunakannya. Anda melakukan semua segfault stuff-- buruk ini, segfault, semua hal semacam menyenangkan kali yang datang dengan make. PHP adalah pedang bermata dua karena Anda tidak akan mendapatkan kesalahan-kesalahan, tapi itu juga berarti bahwa Anda tidak akan tahu benar-benar apa yang salah dengan program anda jika Anda hanya menjalankannya dan itu tidak bekerja. Tapi debugger harus menunjukkan beberapa mudah-mudahan membantu hal-hal kecil sintaksis yang Anda dapat memperbaiki. Jadi sekarang jika kita pergi ke to-- mengatakan, mari kita tutup itu. Membuka kembali. Dan kita kembali ke sini. Jadi kita punya variabel dan variabel b. Dan ini tidak akan peduli pada akhirnya. Kami akan menelepon mereka h dan g tanpa alasan tertentu. Dan kami menyapa. Sekarang sepertinya string kita "hi" memang pencetakan. Kami menciptakan sebuah variabel yang disebut "string," set sama dengan "hi." Perhatikan bahwa kita tidak perlu melakukan malloc atau membuat array karakter. Dalam PHP, karena variabel adalah typeless, string adalah sama seperti char untuk semua maksud dan tujuan. Ini bisa menjadi "hi." Ini bisa saja k karakter. Ini bisa menjadi nomor 1. Dan tidak peduli. PHP tidak peduli jenis variabel Anda. Atau, itu tidak benar. Hal yang peduli ketika Anda mencoba dan melakukan hal-hal dengan itu, tetapi tidak peduli di langkah deklarasi. Dan seperti yang Anda bisa di C, Anda dapat mendeklarasikan string pada tumpukan seperti ini meskipun mengatakan "stack" adalah sedikit sedikit keliru potensial ketika kita sedang berbicara tentang PHP. Tapi kita tidak perlu khawatir tentang itu. Jadi kita punya string kita "hi," dan kami gema tali. Jadi sekarang kita telah membahas variabel. Jadi sekarang kita perlu bicara tentang mendapatkan dan posting dan melakukan hal terakhir yang diperlukan untuk benar-benar mendapatkan kembali hal ini untuk fungsi dari P set 6. Jadi sekarang kami bergema string, tapi kami harus variabel tersebut mendapatkan dan pasca. Dan karena kita menggunakan metode dapatkan, Tampaknya alam bahwa variabel kita yang kami tertarik, baik a dan b, akan berlokasi di array atau kamus, teknis mendapatkan. Jadi jika kami mendirikan mendapatkan seperti ini dengan groups-- Anda aku menekan masuk dan itu tidak seperti itu-- tetapi di sini kita telah mendapatkan. Dan sehingga mendapatkan sudah ada. Jadi kita sudah bisa mulai untuk mengakses beberapa unsur get. Jika kita mendapatkan, sintaks ini untuk array di PHP sangat C-seperti. Kami memiliki dua tanda kurung kami. Jadi jika kita mengatakan mendapatkan secara normal array, kita bisa mengakses indeks ke nol, indeks pertama. PHP adalah indeks nol. Kita dapat mengatakan nol, satu, hal two-- seperti ini. Dan saya telah mengatakan bahwa mendapatkan secara teknis kamus. Jadi apa PHP adalah melakukan di bawah tenda, yang sedikit lebih bagus daripada C, itu sudah memberikan Anda beberapa fungsi kamus, yang adalah tabel hash benar, atau mencoba, seharusnya. Atau, secara teknis bisa menjadi mencoba juga. Tapi PHP menerapkan tabel hash, yang membentuk sebuah kamus yang efektif. Dan kita tahu nama variabel kita, kan? Ini yang disahkan pada query string dengan PHP. Kami memiliki = h dan b = g mana dan b adalah nama-nama variabel. Jadi cara yang kita dapat mengakses nilai yang sesuai dengan kunci dalam kamus kami hanya dengan mengatakan _GET_GET ["a"]. Jadi sekarang kita memiliki _GET ["a"]. Dan jika kita hanya mengganti dalam gema kita, jika kita menggemakan _GET_GET ["a"] - dan kami akan melihat apakah debugger melempar kesalahan tentang this-- kami akan menyimpan itu dan menutup ini. Membukanya. Jadi kita hanya melakukan hak sekarang, jadi b seharusnya tidak masalah. "dia" dan "dia" - "bersenandung." "dia" dan "hum." Kedengarannya bagus. Dan itu dicetak "nya," yang gila. Tapi itulah yang yang terjadi di P set 6. Pada dasarnya, apa yang P set 6 adalah doing-- echo hello, name-- mana memiliki nama variabel dan hanya meminta Anda untuk mengetik dalam sedikit teks. Ada juga beberapa kode tambahan di mana itu termasuk jika pernyataan, yang bisa kita lakukan sekarang. Kita dapat mengatakan jika ada, yang adalah fungsi dalam PHP, _GET Dengan garis bawah, "nama" - yang pada dasarnya mengatakan, "jika nama telah diisi" karena kita bisa saja mengklik tombol untuk menyerahkan formulir tanpa mengetik sesuatu ke bidang itu. Dan kami membungkus bahwa dalam kita ramah kurung kurawal. Kita dapat memiliki pernyataan lain. Dan itu semua dalam sudut PHP braket, tanda tanya, angle bracket, jika Anda mau. Dan sekarang kita akan melihat apakah ini bekerja. Aku terus menunggu untuk itu untuk debug dan omong kosong keluar pada saya, pada dasarnya, tetapi belum. Mungkin sekarang akan karena saya berbicara tentang. Oke. Hal itu, sebenarnya. Jadi, tidak ada yang muncul. Itu karena sesuatu yang salah yang saya tulis dalam kode PHP. Dan saya sebutkan debugging rumit karena di PHP, kita tidak compile terlebih dahulu dan compiler tidak suka, di sinilah kesalahan Anda. Tapi apa yang bisa kita lakukan is-- lakukan orang ingat bagaimana melihat jaringan yang berbeda permintaan yang PHP-- atau website mengirim? [? Malin?] Melakukan ini di kuliah sekali atau dua kali. Anda ingat di mana kita pergi untuk menemukan utang yang berbeda dan 200 Mengadakan, semua kode ini yang sedang dikirim melalui HTTP dari halaman web ke halaman web? Apakah ada yang ingat di mana kita pergi untuk melakukan itu? AUDIENCE: Page Source. SAM LEVATICH: Sumber Halaman. Persis. Jika Anda pergi ke Halaman Source-- sempurna. Jadi Page Source menarik sampai inspektur. Dan aku menggunakan Safari. Banyak Anda mungkin akan akan menggunakan Chrome atau Firefox. Tapi selama Anda dalam browser-- yang modern dan merasa bebas untuk mengikuti bersama jika Anda ingin. Anda dapat mengetik kode ini atau hanya melihat ke dalam P set 6 direktori untuk beberapa hal serupa. hello.php adalah apa yang kita saat ini bekerja pada meniru. Jadi ada berbagai tab. Kita bisa melihat semua sumber daya. Kita bisa melihat kode sumber. Jadi sepertinya tidak mendapatkan tubuh melewati pada akhirnya. Ini ditemukan kesalahan dalam PHP dan berhenti loading halaman web secara keseluruhan. Kami bahkan tidak memiliki akhir tag HTML atau apa pun. Dan jika kita melihat jaringan, kita bisa melihat bahwa kita sedang mengirimkan permintaan. Ini adalah domain. Ini adalah alamat. Ini dokumen. Kami menggunakan metode get. Dan itu merah. Atau, itu merah ketika saya tidak memilihnya. Bagaimana saya batalkan itu? Nah, itu merah. Biarkan saya menyegarkan. Itu ada. Sekarang merah. Jadi merah, yang berarti gagal, yang buruk. Jadi mari kita memeriksa mengapa hal itu gagal. Jadi semua bahwa Sumber Halaman bisa pada dasarnya memberitahu Anda adalah hal Anda tidak bekerja, yang sudah bisa kita lihat. Jadi idealnya ada akan menjadi alat yang lebih berguna. Dan ada beberapa ekstensi browser yang memungkinkan Anda untuk debug PHP, tapi kami tidak akan menulis satu ton PHP, jadi mungkin hanya terbaik untuk melihat melalui kode Anda hati-hati dan hanya memastikan bahwa itu tidak melakukan apa-apa lagi. Jadi mari kita lihat apakah format ini jika pernyataan di mana masalahnya. Saya ingin memuat bahwa kembali ke sini. Halo hai. Jadi ada masalah di sana. Jadi untuk sintaks yang benar PHP, PHP akan menjadi C-seperti dalam bahwa Anda akan melihat loop. Anda akan melihat jika pernyataan. Anda akan melihat semua teman-teman bahwa Anda telah menjadi akrab dengan lebih kursus semester CS50 ini. Tapi cara terbaik untuk mengetahui bagaimana melakukan sesuatu di PHP adalah untuk Google itu atau untuk melihat beberapa contoh kode PHP karena Anda tahu fungsi tersebut. Anda tahu apa yang Anda bisa lakukan dengan program ini. Anda dapat loop. Anda dapat loop sebanyak yang Anda inginkan. Anda dapat loop di semua macam cara yang berbeda. Anda dapat membuat fungsi. Anda dapat membuat fungsi yang memanggil fungsi-fungsi lainnya, fungsi yang menyebut diri mereka. Dan Anda memiliki nama untuk konsep-konsep ini. Anda punya rekursi, loop, jika, arus kontrol lainnya. Dan Google adalah teman terbaik Anda. Bahkan mengatakan, "PHP jika Pernyataan "dan ada akan menjadi ton posting dengan jawaban orang lain yang pernah memiliki pertanyaan serupa dengan Anda, yang baru memulai dengan PHP dan ingin tahu tentang hal sintaks. Karena kita memiliki kemewahan untuk mampu melihat kode di P set 6, kita benar-benar menariknya ke atas dan melihat bahwa OK, inilah sesuatu yang menarik. Jadi ini adalah apa yang sebenarnya tampak seperti di P set 6. Jadi jika kita pergi melalui ini, kita dapat melihat bahwa kami telah mendapat beberapa ini sedikit PHP-seperti tanda tanya bit. Dan tidak ada kurung kurawal. Ada titik dua. Dan ada keriting kawat gigi di PHP, tapi ini adalah format dan cara melakukan PHP yang bekerja dengan baik dengan HTML karena seperti yang Anda akan melihat, kita menutup off PHP ini bits-- yang elses dan seandainya dan semua itu-- dan kemudian kita interspersing HTML di dalamnya sementara masih mengikuti aliran kontrol yang ditetapkan oleh PHP. Jadi aku hanya akan berjalan cepat melalui ini karena itu banyak yang sama konsep yang kami lakukan sebelumnya. Kami punya jika tidak kosong, kurung, _GET_GET ["nama"]. Ini adalah semua hal yang sama. Kami menggunakan kamus _GET yang PHP mengirimkan atas permintaan dari bentuk, karena itu adalah parameter tindakan, dan metode ini mendapatkan. Dan kemudian yang berakhir itu. Usus besar adalah penanda untuk hanya melakukan hal ini jika jika pernyataan bernilai true. Ini seperti penjepit keriting. Dan pada kenyataannya, itu adalah penjepit keriting dalam bahasa lain seperti Python, yang mungkin terjadi jika Anda hanya melakukan itu untuk proyek akhir Anda. Dan kemudian baris ini, halo. Kemudian kita punya hal yang aneh ini. Kami punya lebih kurung. Tidak ada HTTP there-- atau PHP, maaf. Tapi ada tanda sama. Dan kemudian kita memiliki fungsi, htmlspecialchars (_GEThtmlspecialchars (_GET ["nama"]). Ini adalah semacam seperti lebih versi lanjutan dari echo. Seperti kita telah menggemakan sebagai cara untuk mencetak hal-hal di PHP. Ini adalah fungsi yang didefinisikan dalam PHP yang akan menangani beberapa lebih jahat karakter dan nilai-nilai byte Anda bisa melewatinya. Itu selalu aman untuk menggunakan ini. Tapi gema akan melakukan pekerjaan baik-baik saja jika kita tidak berurusan dengan sesuatu yang terlalu jahat. Dan jadi ini memiliki sama Pengaruh pada dasarnya, hal ini di antara pertanyaan tanda dievaluasi oleh PHP. htmlspecialchars mengembalikan HTML bagus Nilai dicetak dari _GET_GET ["nama"], yaitu apapun yang kita ketik di formulir. Dan kemudian akan menyapa, koma ruang, dan kemudian itu. Yang semuanya antara kurung sudut akan digantikan oleh apapun htmlspecialchars menempatkan. Jadi itu pada dasarnya sama untuk apa yang kita lakukan. Dan kami memiliki pernyataan lain yang halo dunia, yang masuk akal. Jadi sekarang mari kita kembali ke kami kode dan melihat exactly-- oh. Saya mengatakan ada, yang tidak hal yang kita ingin lakukan. Kami ingin mengatakan tidak kosong. Dan jadi ini harus bekerja sedikit bit, tidak kosong _GET_GET ["nama"] lebih baik. Dan bahwa penjepit keriting cocok dengan penjepit keriting. Kami punya kurung kurawal kami di sini. echo hello _GET ["nama"]. Mari kita lihat apakah ini bekerja sedikit lebih baik. Kami masih menjalankan server kami. Hello Jason. Hello Jason. Dan bekerja saat ini. Dan jadi itu bukti yang memang Anda bisa menggunakan kawat gigi keriting yang Anda kenal dan cinta dalam kode PHP di HTML. Kode PHP yang disediakan untuk Anda di pset 6-- pset 6-- menyediakan cara lain melakukan hal yang sama. Jadi sekarang kita memiliki kekuatan. Kami memiliki fungsi untuk melaksanakan kode PHP yang kita lihat di pset 6 oleh diri kita sendiri, pada dasarnya. Sebelum saya melanjutkan, apa adalah beberapa pertanyaan yang Anda miliki pada saat ini? Ya [tidak terdengar]. AUDIENCE: Jadi dalam versi di pset6, ketika Anda menjalankannya, ada ruang. Dan aku bisa melihat di mana ruang adalah setelah koma. [Tak terdengar] start braket terbuka. Bagaimana Anda menggabungkan ruang di cara Anda menulis kode Anda sendiri? SPEAKER: Itu adalah pertanyaan yang bagus. Dan jadi mari kita mencari tahu. Jadi itu pertanyaan yang benar-benar baik dan salah satu yang saya tidak menganggap. Tapi mari kita lakukan bersama-sama. Jadi pertama-tama, apa yang Aku melakukan dengan echo adalah ketika kita hanya gema halo, halo itu output. Jika kita menggemakan sekarang ini mendapatkan terpisah line, mari kita memeriksa apa yang terjadi. Jadi kita klik ini. Kami terus mengatakan, hi Jason. Jadi sekali lagi, kami tidak memiliki ruang ini. Dan itu karena, di PHP, ketika kita telah echo, tidak peduli berapa banyak spaces-- tidak, bukan V-- tidak peduli berapa banyak ruang kita masukkan ke dalam sini-jika kita sekarang beban yang lagi, hi Jason. Ya, lihat, semua orang ruang mendapat dimakan. Dan itu sesuatu yang fungsi gema tidak. Jadi untuk mengurus ruang itu, dan ini adalah salah satu alasan mengapa Anda tidak menggunakan gema dan Anda menggunakan htmlspecialchars gantinya. Saya ingin tahu apa yang akan terjadi jika kita melakukan ini di mana kita tertutup ruang dalam sebuah string. Saya jujur ​​tidak yakin apa akan terjadi ketika saya melakukan ini. Jadi itu salah satu cara. Itu salah satu cara untuk mengurusnya. Jika Anda membungkus ruang dalam string, maka ruang akan menjadi output baik oleh gema. Hal aman untuk dilakukan adalah untuk melakukan htmlspecialchars. Itu selalu taruhan yang aman. Tapi sekarang kita memiliki cara untuk melakukan dengan gema jika perlu. Dan dengan cara yang sama, kita bisa gema baris baru, semua jenis yang barang Anda akrab lakukan di PHP. Orang lain, apa yang lagi pertanyaan bahwa orang lain memiliki pada saat ini tentang PHP? Jika orang muncul sedikit terlambat, Saya senang untuk tinggal setelah sedikit dan berbicara tentang beberapa awal. Dan itu juga semua livestreamed, dan diarsipkan, yang gila. Pokoknya, jadi sekarang mari kita melakukan beberapa lebih banyak barang canggih dengan PHP. Dan salah satu hal yang paling awal Anda diperkenalkan ke dalam C adalah untuk loop. Dan PHP memiliki lebih kuat untuk lingkaran disebut loop foreach. Dan sepertinya this-- untuk setiap kosong sebagai kosong, kurung keriting, melakukan hal tersebut. Jadi ini pada dasarnya adalah istilah a. Lihat, untuk loop sebagai konstruksi sintaksis telah dibuat di C dan di perakitan bahasa dan hal-hal seperti. Dirancang dalam C, tepatnya, sebagai singkatan untuk banyak jenis loop bahwa orang-orang akan melihat. Seperti ketika Anda menulis satu lingkaran, ada sering merupakan langkah inisialisasi dieksekusi tepat di awal, sebuah kondisi di mana loop akan stop-- dan itu fitur itu hanya dalam loop sementara, atau yang sementara memiliki tepat Hanya saja feature-- dan kemudian langkah incrementation di akhir. Dan sehingga Anda akan sering menemukan diri Anda menulis kode seperti berikut ini. Aku akan menghapus beberapa dari ini. Tetapi jika kita iterasi melalui karakter dalam sebuah array, Misalnya, seperti yang kita sudah mendapat sebuah array karakter. Maaf untuk membawa kembali C. saya tahu, Anda pikir Anda lakukan. Tapi itu hanya untuk tujuan PHP belajar, aku janji. Jadi jika Anda punya str arang panjang 8, dan mari kita mengatakan itu mengatakan Hellooo dengan nol Trailing. Besar, jadi itu string kita. Dan kemudian kami memiliki untuk loop. Kami memiliki int i sama dengan 0. Dan kami ingin keluar ketika str i sama dengan tidak sama dengan nol, karena kami keluar ketika sama null. Dan kemudian kita lakukan i ++ pada setiap titik dalam untuk loop. Melakukan sesuatu dengan str i. Jadi rumus dasar itu, kami memiliki array ini bahwa kita ingin memperlakukan elemen yang terpisah. Tapi apa yang harus kita lakukan adalah kita harus pada dasarnya membuat bilangan bulat terpisah variabel yang menghitung setiap kali kami pergi melalui loop. Dan kemudian kita harus kemudian memanggil strstr [i] ketika apa yang kita benar-benar ingin lakukan hanya pergi karakter oleh karakter, bukan? Kami tidak ingin kenaikan sebuah integer dan kemudian menggunakan integer yang untuk mengakses masing-masing karakter individual. Kami benar-benar ingin karakter demi karakter. Dan untuk setiap cerdas menghitung bahwa bagi kita. Jika kita memiliki sebuah array, yang kita dapat menyatakan dalam PHP sebagai hanya-- jika kita memiliki variabel disebut, sebut saja array. Keajaiban tidak mengetik, itu sama seperti variabel lainnya. Ini hanya sebuah array. Dan kami memiliki sedikit [tidak terdengar] seperti 1, 2, 3, hanya semacam array diinisialisasi. Ini OK, tidak seperti foreach saya. Tapi jika kita benar-benar foreach-- Saya mengetik yang sedikit salah. Ada dua cara untuk melakukan foreach loop. Ada sintaks dan sebagai sintaks. Dan kami akan melakukan dalam sintaks pertama, tidak. Itu kesalahan saya. Num sehingga foreach dalam array, gema num. Dan PHP berteriak saya untuk beberapa alasan. Ini menemukan tak terduga di dalam sesuatu, yang sedikit mengganggu. Tapi kita akan mencari tahu mengapa yang dalam sekejap. Jadi tidak seperti itu. Mari kita coba menggunakan sebagai. Ini lebih memilih sebagai sintaks tampaknya. Jadi mari kita lakukan berbagai foreach sebagai num. Jadi sedikit penjelasan dari apa yang baru saja terjadi adalah sebagai sintaks saying-- baik pertama, mari kita lihat apa yang ini mencetak. Jadi kita membuka IDE kami. Kami pergi di sini. Kami katakan, Hello Jason. Dan itu 123, yang isinya dari array yang kita buat di bagian atas. Jadi menyelam ke dalam loop foreach ini, kami memiliki variabel yang disebut array yang yang merupakan array dari tiga angka. Dan kemudian kita melakukan foreach array sebagai num, gema num. Dan itu lebih intuitif dibandingkan untuk lop. Kami mengatakan, memperlakukan setiap hal-hal dalam array sebagai num, Aku ingin kau memberi saya num. Dan itulah apa yang dilakukannya. PHP adalah menghitung bahwa ketika Anda mengatakan foreach array, dan Anda sedang berhadapan dengan sebuah array, apa Anda akan ingin beralih di atas adalah karakter dalam array itu, adalah int dalam array itu, adalah elemen dalam array itu. Dan itu membiarkan Anda menyimpan variabel tersebut sebagai num, dan num kemudian hanya output segera daripada mengatakan, Saya memiliki variabel yang disebut i, dan maka saya ingin output strstr [i]. Dan sehingga memungkinkan kita untuk melakukan hal-hal keren. Seperti pada dasarnya kita tidak harus membuat variabel-variabel ini seperti saya dan melakukan semua ini hal incrementation di akhir. PHP menangani semua itu untuk Anda. Jadi sekarang mari kita bicara tentang foreach sebagai itu berlaku untuk kamus _GET kami. Jadi kita akan komentar ini keluar dengan cepat. Jadi kita memiliki array yang _GET kami. Kami memiliki variabel ini. Dan itu punya beberapa hal di dalamnya. Sekarang, kita hanya memiliki satu variabel yang berlalu untuk itu, yang merupakan nama. Tetapi jika kita tekan Enter, sekarang kita dapat memiliki dua variabel. Kita dapat memiliki nama dan usia, misalnya, jika kita ingin mendapatkan usia dan juga nama seseorang, Lucunya. Jadi sekarang _GET akan menjadi kamus dengan dua elemen, dengan dua pasangan nilai kunci. Dan KEY- pertama aku akan menulis satu ini di papan juga. Kami memiliki kamus kami adalah _GET. Maaf, itu agak sulit untuk melihat. Tapi di dalam kamus kami, kami memiliki nama, yang akan menjadi sesuatu bahwa kita diberikan. Dan kita akan memiliki usia, yang juga akan menjadi sesuatu yang kita diberikan. Dan ini adalah keseluruhan yang kamus kami. Jadi itu punya dua elemen di dalamnya. Dan karena foreach loop cerdas, kita mungkin berpikir, dan benar mungkin berpikir bahwa foreach dapat iterate melalui ini kamus, mencetak nilai yang diberikan oleh nama dan usia. Jadi mari kita sebenarnya melakukan hal itu. Mari kita membangun foreach loop. Dan kita akan lakukan untuk _GET sebagai. Dan kita akan melakukan hal berikut. Jadi mari kita lihat apa yang terjadi jika kita mengetik hanya kata, dan kemudian mengucapkan kata echo. Kami juga akan echo baris baru hanya untuk membuatnya sedikit lebih jelas, apa yang sedang terjadi. Jadi mari kita lihat. Ini tidak memberi saya kesalahan. Dan kami akan menutup ini. Pada website kami, Anda akan melakukan banyak yang selama pset7. Jadi kita katakan nama saya Sam. Usia saya adalah 45. Ini bukan. Tapi mencetak, seperti yang diharapkan, Sam 45. Dan Anda akan melihat bahwa apa loop foreach did-- sini, mari kita kembali ke yang jadi terserah pada board-- kita mendapatkan _GET sebagai kata. Dan ada empat hal di _GET. Tapi itu hanya dicetak dua hal. foreach, menjadi diri intelijen, diasumsikan bahwa apa yang kita inginkan adalah nilai-nilai, bukan kunci. Tapi ada cara yang kami bisa mencetak keluar kunci juga, jika kita ingin. Jika kita ingin juga tahu apa variabel-variabel ini disebut, ada cara yang kita dapat mengakses ini juga. Dan cara untuk semacam melakukan itu, sehingga kita dapat mengatakan, memungkinkan benar-benar membagi menjadi pasangan nilai kunci. Jadi mari kita lihat apa yang terjadi sekarang. Jadi kita memiliki kunci. Kami memiliki nilai. Kami memiliki baru lain baris untuk dibaca. Dan mari kita lihat apa yang terjadi ketika kita melakukan ini sekarang. Saya tidak tahu berapa lama Jason adalah. Jason 15. Jadi kita memiliki nama Jason, usia 15. Jadi kami mampu mengakses kunci dan nilai pasang kamus ini hanya dengan mengatakan poin sebagai kunci untuk nilai. Dan itu adalah sintaksis foreach gula bit yang memungkinkan Anda untuk mengakses hal-hal dalam kamus. Jadi mudah-mudahan ini semacam menekankan kekuatan loop foreach. Anda dapat cukup banyak lemparan sesuatu yang tampaknya iterable, seperti apa yang memiliki beberapa unsur-unsur seperti sebuah array, seperti dictionary-- mereka adalah dua hal utama yang Anda akan bekerja dengan baik dalam kehidupan dan dalam pset 7. Sehingga Anda dapat membuang barang-barang yang itu, dan itu akan mencari tahu apa yang ingin Anda lakukan dengan itu. Itu akan mengatakan, OK, aku akan mendapatkan hal-hal ini dari data yang disahkan untuk saya. Dan itu adalah sesuatu yang Anda akan menggunakan banyak dari di pset 7. Aku akan gulir cepat turun hanya untuk melihat di mana aku di. Apakah orang memiliki pertanyaan pada saat ini? Pertanyaan sama sekali? Iya nih? AUDIENCE: Jadi dengan kunci dan nilai, Anda bisa nama itu apa pun dan masih akan bekerja? SPEAKER: Ups. Wow, aku benar-benar menghapus seluruh baris. Pekerjaan besar. Jadi, sebuah. Kunci dan nilai hanya konvensi. Ini membantu. Anda akan mendapatkan beberapa desain poin, mungkin beberapa poin gaya untuk melakukan itu karena benar-benar menyampaikan niat. Tapi kita katakan dan Yarp. AUDIENCE: Anda tidak perlu mengubah apa pun dalam file HTML untuk mencerminkan itu? SPEAKER: Tidak sama sekali. AUDIENCE: Dan itu hanya tahu bahwa karena sama than-- lebih besar SPEAKER: Ya. AUDIENCE: Indikator -yang yang that's-- SPEAKER: Ya. Itu adalah sintaks foreach, tapi ya. AUDIENCE: Tidak ada jenis. Jadi bagaimana jika Anda ingin usia hanya berupa angka? Apakah ada cara untuk melakukan itu? SPEAKER: Ada cara untuk memeriksa apakah variabel sesuai dengan jenis tertentu. Jadi PHP meminta sedikit lebih dari Anda karena tidak ada jenis di. Beberapa cara itu meminta kurang. Dalam beberapa hal itu meminta lebih. Karena jika Anda hanya memiliki sesuatu dalam variabel, Anda tidak tahu apa jenis itu. Tetapi jika Anda cerdas tentang variabel bahwa Anda menetapkan jenis untuk dan pastikan yang berfungsi hanya return-- Anda ingin fungsi hanya pulang salah satu jenis nilai sehingga Anda pada dasarnya dapat berharap bahwa variabel Anda kembali dari fungsi akan menjadi jenis yang Anda pikir itu akan, pada dasarnya. Tapi ada beberapa metode dengan mana Anda dapat memeriksa. Saya tidak ingat mereka dari atas kepala saya. Aku menunggu untuk itu membiru. isint? isstr? Ada metode dibangun ke PHP yang dapat memeriksa jenis variabel untuk Anda. Tetapi jika Anda menetapkan variabel cerdas, Anda tidak harus harus melakukan itu terlalu banyak di pset 7. Tapi metode-metode yang ada. Dan itu sesuatu yang adalah dalam bahasa itu sendiri. Dan saya tidak ingat sintaks yang tepat. Kita bahkan bisa mencarinya. Tapi kali adalah esensi. Apakah ada orang lain memiliki memiliki pertanyaan lebih? Iya nih. AUDIENCE: Saya punya satu lagi. Jadi Anda sebutkan metode GET, tapi Anda tidak menyebutkan metode POST. Apakah kita kembali ke itu? SPEAKER: Ya, kami akan datang kembali ke itu. Itulah yang saya cari di ponsel saya, yang sekarang tertidur, tapi aku akan menemukannya. Hanya memastikan kita memukul semua catatan PHP. Yap, tidak ada versi debug. Ya, kami memiliki beberapa hal lagi yang kami ingin lakukan sekarang pada saat ini. Jadi berbicara tentang POST, yang Anda sebutkan, satu-satunya perbedaan antara GET dan POST yang ingat ketika kita melihat di URL ini dan kami melihat, oh, nama sama dan usia sama Yarp tepat di URL sana untuk kita. POST sedikit lebih rahasia dengan melewati nya informasi. Jadi jika Anda tidak ingin pengguna tahu, misalnya, Anda tidak ingin username dan password dari orang login ke ditampilkan dalam URL, yang merupakan hal yang wajar tidak ingin dalam URL, karena seseorang bisa melihatnya. Jika mereka link seseorang untuk halaman, Anda tidak ingin URL mereka terpampang di sana, karena yang akan memungkinkan orang untuk login hanya dengan menyisipkan URL bukannya untuk benar-benar mengisi formulir. POST adalah sedikit lebih rahasia. Dan satu-satunya hal yang kita harus mengubah adalah metode ini, perubahan dari mendapatkan ke posting. Dan kemudian di dalam HTTP, bukannya mengakses _GET array, kita akan mengakses _POST array. Dan kita akan melihat bahwa, jika kita membuka kembali ini lagi, Jason perlahan menurun di usia. nama Jason, usia 14. Hal yang sama muncul. Tapi kami pergi ke URL dan variabel tersebut tidak ada. Dan cara yang POST passes-- jadi ingatlah bagaimana melihat sumber halaman. Kami pergi ke jaringan. Kami menyegarkan. Dan ini adalah hal lain yang POST akan memberikan peringatan tentang. Anda mungkin telah melihat sebuah kotak, teks kotak seperti ini di browser Anda. Apakah kamu yakin kamu mau untuk mengirim formulir lagi? POST adalah apa s 'mengirimkan formulir ini. Karena pada dasarnya jika Anda mengirim Anda Informasi kartu kredit kepada seseorang, itu tidak akan muncul dalam URL. Itu akan menjadi permintaan POST. Jadi, ketika Anda me-refresh halaman, itu kirim kembali bahwa permintaan posting. Jadi sekarang kita ingin mengirim membentuk lagi karena itu tidak akan untuk menciptakan duplikat pembelian. Dan kita akan melihat bahwa di sini, metode yang kami gunakan adalah POST. Dan itu memang mentransfer byte. Ditransfer 401 dari mereka. Program cukup kecil. Tapi ada tempat yang bisa kita lihat nilai-nilai yang sedang berlalu. Halaman web sendiri bisa melihat, tapi kita sebagai pengguna tidak dapat melihat, kecuali jika Anda hacker. Jika Anda seorang hacker yang baik, Anda dapat melihat. Jika Anda tahu dasar format HTML, nilai-nilai akan membuat sendiri dikenal di halaman. Anda akan dapat melihat. Nilai-nilai akan berada di sana, mereka hanya sedikit kurang jelas untuk Anda untuk mengakses, pada dasarnya. Apakah kita memiliki lebih pertanyaan tentang GET, POST before-- apa yang akan kita lakukan selanjutnya sebenarnya melihat beberapa kode bahwa Anda menyerah pset 7, berbicara tentang bagaimana menggunakan beberapa konsep-konsep ini, dan berbicara tentang hal-hal yang Anda akan harus melakukan sedikit di pset 7. Pertanyaan lagi sebelum itu? Pertanyaan lebih kalian punya? Besar. Baiklah, mari kita lihat sedikit di pset 7, tidak diragukan lagi apa yang Anda semua paling bersemangat. Maksud saya, ini adalah sesuatu yang David melewati sedikit. Tapi kita akan memiliki tiga direktori di atas, serta file konfigurasi. Itu untuk database, yang kita akan bicarakan di sekitar lima menit. Termasuk, Anda tak perlu untuk melihat dalam direktori ini jika Anda tidak ingin, tapi itu bagus untuk tahu ada segala macam pembantu. Pembantu seperti fungsi membantu. Dan kemudian kita memiliki konfigurasi, yang menetapkan beberapa hal up. Ada beberapa fungsi yang CS50 memiliki tertulis yang berada di helper dan config. Dan beberapa PHP yang sudah keluar di file akan melakukan banyak lebih semacam pekerjaan kaki dari tumpul untuk Anda. Seperti jika kita pergi ke publik login.php, yang adalah apa yang muncul tepat ketika Anda pergi ke pset 7. Kita akan melihat bahwa ada ini membutuhkan pernyataan. Dan semacam seperti tajam termasuk, hashtag termasuk jika Anda dari generasi yang lebih baru. Tapi ini pada dasarnya mengatakan bahwa saya membutuhkan akses untuk semua fungsi di config.php. Dan Anda bisa memiliki memerlukan untuk segala macam hal lainnya. config sebenarnya membutuhkan pembantu. Jadi, setiap kali Anda butuhkan config, Anda juga termasuk atau membutuhkan pembantu juga. Sehingga memberikan Anda akses ke semua fungsi keren bahwa kita akan menggunakan, hal seperti membuat. Aku benar-benar akan memudahkan ini turun sedikit. Jadi fungsi maka kita akan berjalan melalui sebelum kita melanjutkan ke SQL sedikit bit adalah fungsi login.php, hanya karena menggunakan beberapa topik yang baru saja kita bicarakan di PHP. Anda melihat hal pertama adalah jika $ _SERVER. Ini adalah variabel global lain yang Anda akan berurusan dengan. Ini seperti _GET dan _POST, tapi apa server berisi adalah ini dapat membiarkan Anda tahu apakah metode permintaan adalah GET atau POST. Seperti sebelumnya apa yang kami lakukan hanya dalam kode kita bahwa kita menulis, kami hanya mengubahnya menjadi GET dan POST tergantung pada apa HTML memiliki. Tapi ada halaman yang dapat diakses dengan kedua jenis permintaan. Dan Anda mungkin ingin melakukan hal yang berbeda tergantung pada jenis permintaan, seperti masuk tidak. Sehingga Anda dapat memeriksa permintaan yang Metode melalui mengakses kunci, melalui menggunakan kunci dan mendapatkan nilai sesuatu dalam kamus _SERVER. Jadi itulah global yang lain variabel seperti _GET dan _POST. Jika itu GET, kami ingin membuat form login. Render adalah fungsi yang pada dasarnya hanya memasang HTML yang sesuai dan dibagikan beberapa parameter. Judul ini adalah parameter yang digunakan dalam menampilkan, anehnya, judul halaman di pertanyaan, hal di sini, katakan atau halo di contoh sebelumnya. Sekarang kita memiliki hal yang berbeda. Lain jika itu POST, kita melakukan hal-hal lain. Kami menggunakan metode kosong. Itu tidak ada, itu kosong. Dan kita lihat sebelumnya, PHP memiliki cukup banyak dibangun dalam metode yang David will-- jika ada adalah metode yang berguna untuk Anda, mereka akan disiagakan untuk Anda dalam berjalan melalui bahwa David memberikan gambaran di awal, dan juga Zamyla ini bit membantu. Dia kembali semua orang. Kita semua bisa bersukacita. meminta maaf adalah fungsi aptly bernama yang pada dasarnya hanya mencetak beberapa pesan kesalahan, karena CS50 sangat sopan. Dan sekarang ini, ini adalah sedikit rumit karena ini adalah di mana kita query database. Sekarang kita belum berbicara tentang database. Dan kita akan di depan lima menit atau lebih, maksimum. Tapi ini adalah fungsi CS50 yang telah menulis untuk mendapatkan meja pada dasarnya dari database bahwa kami bekerja dengan di pset 7. Aku benar-benar buruk dengan saya nol pengindeksan hari ini. Tapi ya, itu adalah 7. Jadi permintaan itu akan mengembalikan array, pada dasarnya adalah bit kunci. Dan karena hal ini tidak memiliki mengetik, sehingga baris adalah array dari array. Karena ketika kita berpikir tentang meja, apa yang akan kita lakukan adalah, seperti yang Anda pelajari di psets seperti permainan 15, anyway di mana Anda harus menggunakan Array ganda, kita pada dasarnya memiliki array lainnya array membuat meja. Dan Anda punya baris dan kolom. Dan kemudian Anda dapat mengaksesnya seperti [0] [1], Anda mendapatkan [0] [1]. Hal-hal dasar seperti itu. Jadi apa yang kita lakukan di sini di fungsi ini, kami meminta database jika pengguna itu mencoba untuk login, yang akan dikirim melalui metode POST. Kita akan melihat kita mendapatkan username dari _POST. Mereka akan telah mengirim, pengguna atau Anda, akan mengirim nilai melalui bentuk melalui POST karena itu username dan password barang. Kami sedang memeriksa username untuk melihat, apakah ini dalam tabel? Karena jika pengguna login di, maka username harus disimpan dalam tabel pengguna yang ada untuk situs ini. Jadi pada dasarnya jika pengguna dalam database, permintaan akan kembali bahwa baris, yang merupakan array. Tapi bagian yang sulit adalah bahwa jika bahkan jika array ganda hanya dari satu baris, bahkan jika itu adalah satu baris array-- seperti Anda punya basically-- jika Anda punya ukuran satu array yang memegang array lain, Anda benar-benar berurusan dengan satu kolom. Tapi masih diperlakukan seperti array ganda. Dan ini adalah di mana kadang-kadang bisa mendapatkan rumit, karena kita punya baris di sini. Variabel kita adalah baris. Dan kemudian kita menciptakan variabel yang disebut baris baru dan pengaturan sama dengan baris pertama dari baris. Dan Anda akan melihat komentar yang bilang itu pertama dan hanya baris. Jadi ini adalah rumit bagian di mana sekarang fungsi dapat kembali array sangat mudah. Tidak ada mallocs. Anda tidak akan melihat mallocs. Jadi Anda tidak akan melihat kesalahan seg. Tapi fungsi masih akan melewati sekitar array dan data dalam kelompok. Dan Anda harus berhati-hati terhadap apa yang persis fungsi Anda akan kembali. Dan bahkan jika itu salah satu kolom seperti ini, permintaan masih akan kembali array ganda. Jadi untuk akses yang column-- atau Anda bisa memikirkan semua ini sebagai terbalik karena kita sedang berbicara tentang baris. Tetapi untuk mengakses satu baris, Anda tidak bisa hanya mengatakan baris. Meskipun satu baris, Anda harus jangan rowsrows [0] untuk semacam ini menghilangkan bit luar array dan baru saja Anda satu baris. Melakukan beberapa hal lainnya. Ada fungsi disebut password_verify yang memverifikasi sandi yang diposting. Dan kemudian kita melihat dunia lain variabel sini, _SESSION. Pada dasarnya sesi id adalah bagaimana Anda melacak dari jika seseorang login atau tidak. Jadi sekarang dengan login.php, kita login pengguna di. Jadi apa yang ingin kita lakukan adalah kita ingin mengatakan id sesi adalah sama dengan baris id, yang hanya masuk akal karena setiap baris akan memiliki id yang berbeda Jumlah sebagai bagian dari meja. Kami akan masuk ke dalam SQL kedua, jadi jika semua ini tampaknya sedikit seperti bla, maka semua akan dibersihkan. Tapi kita akan mengatur id sama dengan hal yang tepat, penebangan pengguna dalam. Mohon maaf jika ada yang tidak beres. Dan itu adalah login tujuan dalam hidup sebagai Profesor Malan akan mengatakan. Jadi itu login.php. Dan banyak kode PHP Anda menulis di pset 7, mereka akan menjadi sedikit. Jangan lupa untuk chmod ke izin yang tepat. Akan ada sedikit tentang bahwa di awal spec. Tapi PHP yang Anda menulis akan menjadi melakukan hal-hal yang mirip dengan ini. Anda akan menjadi mengakses beberapa hal yang diberikan kepada Anda dalam variabel global PHP yang berurusan dengan saat ini login pengguna, apakah ada memiliki pernah permintaan dikirim ke ini Halaman, hal yang berbeda seperti itu. Dan itu juga akan berpotensi iterasi melalui baris hal ini. Dalam fungsi yang berbeda, query tidak kembali array yang ganda ini. Dan jika ada lebih dari satu baris di dalamnya, jika ada are-- ya, jika ada lebih dari satu baris di dalamnya, maka akan meja. Dan Anda mungkin ingin beralih melalui baris array ini menggunakan loop foreach yang kita dijelaskan. Jadi jika Anda melakukan foreach pada ganda array, apa yang akan word-- di sini, Aku benar-benar akan menuliskannya. Aku akan menulis cepat di sini. Jika kita memiliki foreach baris sebagai baris, apa jenis baris? Apakah ada yang tahu? Anda mendapatkannya? Jadi baris adalah array ganda. Jadi apa yang foreach akan menyimpulkan yang kita inginkan dari berbagai ganda ini jika kita iterasi itu? Kami pada dasarnya dapat mengasumsikan bahwa itu akan menjadi baik elemen, atau baris, atau kolom, pada dasarnya. Dan baris dan kolom kita dapat memperlakukan sebagai hal yang sama. Pada dasarnya apa loop foreach akan lakukan adalah itu akan kembali baris. baris akan menjadi tipe baris, sedangkan baris adalah array ganda. Jadi jika Anda memberikan foreach array ganda, itu tidak akan iterate lebih dari satu tingkat yang mendalam. Yang pada dasarnya adalah untuk mengatakan jika ada delapan sel dalam table-- 1,2, 3 4, 5, 6, 7, 8-- yang foreach loop tidak akan pergi melalui setiap sel-sel ini. Apa loop foreach akan melakukan apakah itu akan melalui baris ini, memberikan seluruh baris ini. Dan kemudian akan pergi melalui baris itu. Sehingga hanya iterates satu tingkat dalam. Jika Anda menambahkan bersarang loop foreach, maka Anda dapat mengobati setiap baris kembali dari baris, anda melakukan foreach baris sebagai elemen, Katakanlah. Dan kemudian Anda bisa menggemakan elemen. Jadi itu singkat sedikit penyegaran tentang bagaimana Anda mungkin menggunakan foreach loop dalam konteks permintaan. Apakah ada pertanyaan tentang PHP? Apa-apa sebelum kita beralih ke berbicara tentang SQL dan menyenangkan database? Merasa baik? Merasa baik. Baiklah. Mari kita beralih kembali ke PowerPoint, yang mungkin Anda lewatkan. SQL, yay. Orang-orang yang berada di bagian saya biasanya akan tahu bahwa subpos dari akronim selalu hanya kata-kata pertama Saya pikir pertandingan bahwa algorithm-- singkatan itu. Ini bukan sebuah algoritma. Jadi SQL adalah database. Ini bahasa yang bekerja dengan database. Dan semua database yang adalah tabel, setidaknya di jalan SQL yang mewakili mereka. Cara lain untuk berpikir tentang database adalah database adalah satu set kunci dan nilai-nilai dasarnya. Anda dapat berpikir tentang database sebagai kamus dan juga sebagai meja. Pada dasarnya ini adalah cara untuk mengasosiasikan data yang berbeda dengan data lain, seringkali melalui baris dan kolom. Dan itulah jalan itu SQL yang terbaik. Jadi ini adalah salah satu contoh dari meja. Saya punya beberapa contoh orang di bagian saya, yang Saya tidak punya waktu untuk berubah. Tapi kami punya hal-hal seperti ID, Nama, negara adidaya, dan kampung halaman. Saya tidak tahu di mana siapa pun yang dari pada bagian saya, jadi aku hanya akan menganggap semua orang dari New York City karena saya memiliki tinggi statistik kemungkinan menjadi benar. SQL otomatis akan mengambil peduli dari ID kolom untuk Anda. Jika Anda menyisipkan baris baru ke dalam database SQL, itu akan kenaikan yang Nomor ID dan hanya pada dasarnya tetap seperti lima nama, adidaya, kampung halaman, siapa pun ke ujung meja itu. Jadi ID adalah kolom yang akan Anda tidak perlu khawatir tentang. Tapi, seperti dalam kasus dari login.php, ketika kita mendapatkan ID sesi dari meja dan hanya menggunakan ID, ID adalah cara untuk mengidentifikasi secara unik unsur database. Jadi jika kita memiliki dua Sams, kedua yang diajarkan CS50, dan kedua yang berasal dari Milwaukee, mereka akan masih memiliki nomor ID yang berbeda dan dengan demikian menjadi berbeda dalam konteks meja. Jadi ini adalah apa SQL berurusan dengan, bekerja dengan di bagian belakang. Sekarang ini adalah empat perintah bahwa Anda harus bekerja dengan SQL. Dan aku melemparkan mereka semua pada satu slide. Tapi kita akan pergi melalui mereka semua secara individual. Perintah pertama adalah UPDATE, yang melakukan apa yang Anda harapkan. Katakanlah Anda memiliki beberapa data dalam tabel yang keluar dari tanggal. Seperti jika Anda menjaga melacak nama orang dan usia, jika seseorang yang meningkat usia, maka Anda akan ingin pergi dan memperbarui usia hanya orang itu. Untuk contoh yang bekerja dengan table-- pertama kami jangan khawatir tentang menulis semua perintah ini pada waktu yang sama. Tapi jika Anda punya pembaruan bawah, yang akan menjadi baik untuk bagian ini, karena kita akan kembali ke meja. Jadi jika kita kembali ke meja, katakanlah sesuatu yang terjadi itu ada gempa bumi atau garis patahan yang memisahkan secara langsung melalui New York City. Dan kami ingin memperbarui semua orang yang tinggal di New York City. Mereka semua harus pindah ke Pennsylvania. Itu bukan kampung halaman. Mereka semua harus pindah ke New Haven. Di sana kami pergi. Jadi semua orang di New York bergerak ke New Haven. Dan jadi itu sesuatu yang mengedit tiga baris dalam tabel ini. Namun dalam SQL, Anda dapat melakukan bahwa hanya dalam satu pernyataan. Jadi kita kembali ke UPDATE. Biarkan saya cepat menghapus papan ini lagi. Ketika kita berbicara tentang memperbarui, ada beberapa bagian dari sintaks yang merupakan kunci. Nah, semua sintaks adalah kunci. Tetapi hal-hal hijau adalah opsional. Putih yang diperlukan, seperti yang telah ditetapkan nama. Dan biru muda adalah hal-hal yang berbeda-beda tergantung di atas meja. Jadi itulah apa yang terjadi dengan skema warna di sini, di sana. Jadi jika kita ingin memperbarui hanya mereka baris dari orang-orang yang tinggal di New York, sehingga apa yang kita akan lakukan jika kita mengatakan UPDATE? Jadi tabel di mana kita menempatkan nama meja kami. Katakan saja nama dari meja kami adalah meja satu. Jadi kami ingin UPDATE meja satu. Dan kami ingin set-- apa yang kita ingin mengatur? Nah kita ingin mengatakan, PHP sehingga column-- memperlakukan baris sebagai pengidentifikasi unik. Dan kemudian kolom berbagai bidang dari elemen-elemen dari database. Jadi elemen pertama dari database memiliki nama Sam, negara adidaya dari CS50, dan kelahiran Milwaukee. Jadi jika kita berkata set, mari kita lihat parameter lagi set yang mengambil. Kami memiliki kolom sama nilai. Jadi kita ingin mengatakan beberapa column-- yang ingat adalah field-- kita ingin melihat bidang sama dengan sesuatu yang baru. Jadi jika kita hanya mengatakan pembaruan Tabel 1, menetapkan nama yang sama Elliot. Dapatkan beberapa orang dari bagian baru di atas ini. Tetapi jika kita hanya melakukan update tabel 1 menetapkan nama yang sama Elliot, apa yang akan tabel terlihat seperti setelah itu? Orang punya ide? Ya. AUDIENCE: Segala sesuatu di bahwa baris akan menjadi Elliot. SPEAKER: Segala sesuatu di mana berturut-turut? AUDIENCE: Pada baris pertama. SPEAKER: Pada baris pertama? Mengapa baris pertama? Saya tidak bermaksud untuk memilih pada Anda. AUDIENCE: Mungkin semuanya di seluruh meja? SPEAKER: Segala sesuatu di seluruh tabel, ya. Dan itulah yang benar because-- Saya hanya membantu Anda keluar sedikit there-- karena kita dihilangkan opsional klausa WHERE. Jika Anda tidak memiliki WHERE klausa, apa perintah ini akan melakukan apakah itu akan bekerja dengan setiap baris tunggal dalam tabel. Nama semua orang akan menjadi Elliott, pada dasarnya, yang Elliot sangat senang. Atau Yanni, salah satu dari dua. Tapi nama semua orang akan berubah. Jadi cara kita menggunakan WHERE clause-- dan ini berlaku untuk semua wheres yang berada di masing-masing hal-hal yang berbeda. Jadi Anda akan melihat bahwa SET memiliki nilai yang sama kolom. Dan begitu juga MANA. Tapi ini berbeda jenis laporan. Jadi kolom sama nilai di SET dalam tugas. Seperti kita katakan kita ingin untuk mengatur nama sama dengan Elliot. Namun dalam klausul MANA, ini adalah pernyataan kesetaraan. Jadi katakanlah kita hanya ingin mengubah nama seseorang untuk Elliot jika nama mereka adalah Ryan, katakanlah. Jadi ketika kita mengatakan WHERE nama sama Ryan, yang akan berhasil hanya perubahan name-- itu hanya akan ubah field nama di baris dimana kolom nama sama dengan Ryan. Jadi jika kita memiliki beberapa orang bernama Ryan, semua nama-nama mereka akan berubah ke Elliot. Hal ini mirip dengan contoh dari jika garis patahan membagi New York City dan setiap orang harus pindah ke New Haven, cara kita bisa melakukan itu dalam satu pernyataan adalah UPDATE table1 SET kampung = New Haven di mana kampung halaman sama dengan New York City. Ini adalah kekuatan pernyataan UPDATE. Kita bisa memilih sejumlah baris melalui pernyataan benar tentang bidang di baris itu. Kita tidak bisa mengatakan UPDATE table1 set name = Elliot MANA baris = 1, kecuali bahwa kita dapat jika kita katakan ID = 1. Jadi kita akan menjadi bekerja dengan kesetaraan bidang, kesetaraan kolom. Tetapi menggunakan bidang ID adalah cara untuk pilih baris individu secara khusus, karena bidang ID adalah unik identifier dalam database SQL. Jadi seperti memperbarui baris satu, ID sama dengan 1. Memperbarui baris dua, hanya mengubah nomor ID. Tapi kekuatan MANA pernyataan adalah kita bahwa dapat memperbarui sesuatu berdasarkan apa yang mereka nilai-nilai saat ini hal-hal tertentu yang. Ya Elliot? AUDIENCE: Dan bagaimana jika Anda ingin to-- lagi, ini adalah pertanyaan lain. Tapi pertanyaan pertama saya adalah, di mana hal ini terjadi? Dimana saya memperbarui ini? Apakah ini dalam kode PHP? SPEAKER: Dimana Anda memperbarui, ya. Kita akan berbicara tentang di mana semua ini terjadi semacam setelah kami pergi melalui semua perintah. Tapi apa yang Anda butuhkan untuk tahu untuk saat ini pada dasarnya adalah bahwa database SQL Anda ada sebagai sesuatu untuk diakses oleh query fungsi, yang CS50 mendefinisikan. Jadi, jika Anda menggunakan fungsi query, Anda dapat mengakses tabel ini. Jadi Anda akan mengirim ini perintah ke meja Anda dalam file PHP melalui fungsi query. Anda juga dapat bermain-main dengan meja Anda langsung. Dan itulah cara terbaik untuk menguji hal-perintah. Dan kita akan pergi melalui persis bagaimana untuk melakukan itu hanya sedikit. Jadi itu perintah UPDATE. Dan sisa perintah akan menjadi semacam sama, mengerjakan hal yang serupa. INSERT INTO mungkin yang paling berbeda dari UPDATE. Aku akan meninggalkan di sana untuk hanya sedikit dan bekerja di sini. Jadi INSERT INTO, Anda akan melihat tabel yang masih sama. Anda ingin INSERT INTO. Kapitalisasi, SQL adalah kasus sensitif. Jadi Anda tidak perlu memanfaatkan hal-hal ini. Dengan konvensi, kata-kata putih dikapitalisasi. Tapi saya juga kode warna mereka. Satu-satunya alasan bahwa Anda memanfaatkan mereka ketika Anda mengetik mereka hanya untuk menekankan bahwa mereka adalah konstanta. Dan sehingga Anda dapat melihat kapitalisasi atau fakta bahwa saya telah berwarna mereka berbeda. Jadi kita punya INSERT INTO, mari kita lakukan table1 lagi. Ini semua dalam satu baris. Aku hanya memisahkannya dengan laporan yang berbeda. Jadi jangan khawatir tentang fakta bahwa table1 membuat ke baris kedua. Jadi kami ingin INSERT INTO table1 beberapa nilai. Dan Anda akan melihat opsional bit, yang saya akan sampai ke dalam kedua. Jadi kita punya NILAI. Jadi katakanlah kita ingin menambahkan Andi ke meja kami, karena kami kehilangan Andi. Andi sakit. Jadi mari kita tambahkan Andi ke meja kami. Ingat bahwa nomor ID diperbarui secara otomatis. Jadi satu-satunya bidang kita perlu khawatir tentang adalah nama, negara adidaya, dan kampung halaman. Dan cara kita melakukan itu, melihat sintaks kami, adalah kita sudah baru saja kurung, dengan koma nilai dipisahkan, masing-masing adalah nilai. Jadi jika kita ingin memasukkan Andi ke kami tabel, yang harus kita lakukan adalah benar Andi. Apa adidaya Andi, orang di bagian Andi? Dia suka penerbangan, atau seperti kecepatan, atau sesuatu. Apa yang sudah kita miliki di sana? Kami memiliki CS50, penerbangan, kecepatan, dan kekuatan. AUDIENCE: perjalanan waktu. SPEAKER: Waktu perjalanan, menakjubkan. Jadi kita punya Andi, waktu perjalanan, dan kota kelahirannya. Itu pertanyaan yang benar-benar baik. New York City, kecuali seseorang tahu. Semua orang dari New York adalah pelajaran untuk mengambil dari hari ini. Jadi pernyataan ini akan menyisipkan, sebagai baris kelima, dengan perjalanan waktu adidaya dan kelahiran New York City. Tapi bidang opsional pada dasarnya adalah cara untuk menentukan dengan tepat yang kolom Anda ingin memasukkan hal-hal di. Cara yang kita lakukan sekarang, Andi, perjalanan waktu, New York City, akan dalam urutan yang tepat dari kami Nama table--, negara adidaya, kampung halaman. Dan jika Anda ingin melakukan sesuatu selain itu, seperti mengatakan Anda tidak tahu adidaya seseorang, seperti bagaimana saya tidak tahu Andi adidaya di awal. Jadi semua saya tahu adalah dia nama dan kota kelahirannya. Apa yang bisa saya lakukan adalah saya bisa do-- Aku akan menghapus ini cepat. Saya ingin hanya memperbarui kolom. Dan ini adalah di mana opsional daftar kolom datang ke dalam bermain. Saya hanya ingin memperbarui nama dan kampung halaman. Dan kemudian saya akan mengatakan NILAI. Saya akan melakukan Andi dan New York City. Jika saya telah dihilangkan daftar kolom dan hanya dilakukan dua hal, di mana akan New York City telah pergi? Kolom akan yang New York Kota telah ditempatkan di? Orang punya ide? Adidaya, persis. Jadi ini hanya akan pergi dalam rangka. Dan setelah mencapai akhir daftar, itu hanya akan berhenti mengisi hal-hal di. Dan nilai-nilai yang akan tetap di semua kolom hanya akan menjadi NULL. Jadi karena kita ditentukan Nama dan kampung halaman, kita akan memiliki ID 5, nama Andi, negara adidaya NULL. Jadi adidaya adalah nilai diinisiasi. Anda tidak akan selalu mendapatkan kesalahan Valgrind yang sama jika Anda mencoba dan mengaksesnya. Semuanya akan baik memusatkan perhatian keluar, karena NULL adalah nilai di SQL. Itu adalah sebuah konstanta. Dan kemudian kampung halaman akan New York City. Jadi itulah INSERT INTO perintah. Sebelum kita bergerak, ada dua perintah lagi. Apakah orang-orang memiliki pertanyaan tentang UPDATE, sekitar INSERT INTO, sekitar SQL umumnya sebelum kita bergerak ke bit terakhir kami? Orang merasa baik, besar. Menyukainya. Jadi mari kita bicara tentang SELECT. Akan parit UPDATE di sini. Dan SELECT akan menjadi sangat mirip. Tujuan dari SELECT, Tujuan SELECT dalam kehidupan adalah untuk memberikan sekelompok kolom yang memenuhi kondisi tertentu. Dan ketika saya mengatakan memuaskan kondisi tertentu, pikiran Anda segera mungkin kembali ke yang klausa WHERE yang muncul di UPDATE. Dan ayat yang tepatnya ada di SELECT. Jika kita tidak menempatkan WHERE klausa dan kita katakan nama SELECT, hometown-- dieja yang sedikit Nama SALAH, kampung halaman DARI table1. Jika kita hanya mengatakan bahwa, apa SELECT akan memberi kita adalah itu akan memberi kita double-- meja, bukan. Sebuah array ganda jika kita berpikir tentang di PHP indra. Tapi itu hanya akan memberi kita Array ganda dari dua nama columns--, dan kampung halaman. Dan itu akan mengabaikan ID. Dan itu akan mengabaikan adidaya. Dan itu hanya akan memberi kita setiap baris tunggal dari meja itu. Jadi jika kita hanya dimasukkan Andi, kita akan memiliki Andi. Dan kita akan memiliki empat aslinya. Jika mereka telah diperbarui, yang akan tercermin, dan sebagainya, dan sebagainya. Jadi ini adalah karena kita tidak menggunakan klausa WHERE. Tapi kita bisa menggunakannya dalam persis cara yang sama kita menggunakannya di UPDATE. Jika kita hanya ingin meja nama dan kekuatan super orang yang hidup di New York, kita dapat mengeksekusi pernyataan seperti nama SELECT, superpower-- Aku hanya akan meninggalkan itu-- DARI table1 MANA kampung = New York City. Jadi ini pergi untuk menunjukkan bahwa Anda dapat mendapatkan kolom yang sama sekali berbeda, dan kemudian menempatkan kolom yang Anda tidak bahkan mendapatkan kembali klausa WHERE. Kami bahkan tidak ingin kelahiran orang. Tapi kami ingin nama dan negara adidaya orang yang kampung halaman adalah New York City. Jadi itu sesuatu yang kita dapat melakukan dengan WHERE klausul adalah kita bisa berurusan dengan kolom bahwa kita tidak selalu ingin kembali. Dengan cara yang sama di UPDATE, kita dapat menangani dengan kolom yang kita lakukan belum tentu ingin memperbarui. Kami dapat memperbarui kota orang yang nama yang adalah Sam, misalnya. Kami dapat memperbarui kota setiap orang yang nomor ID adalah 2. Jadi hanya memperbarui Kota baris kedua di mana kita tidak harus berurusan dengan diperlukan pertanyaan umum. Dan DELETE adalah, karena Anda akan berharap, DELETE FROM table1. Dan kemudian kami punya klausul MANA lain. Jadi kita bisa mengatakan WHERE ID = 1. Hapus baris pertama. Dan DELETE akan selalu menghapus berturut-turut, atau akan menghapus beberapa jumlah baris. DELETE FROM tabel WHERE kampung = New York City akan menghapus semua orang di New York City. Itu jika ada wabah tragis tiba-tiba dan Anda hanya ingin menghapus semua orang dari meja yang tinggal di kota tertentu yang terkena wabah. Semoga mereka beristirahat dalam damai. Ini adalah empat perintah SQL bahwa Anda akan perlu menggunakan. Anda bahkan tidak perlu menggunakan mereka semua. Tapi ini adalah empat yang CS50 mengharapkan Anda untuk menjadi nyaman dengan masuk ke baik kuis 1 dan juga pset7 dan pset8. Hanya ada meja itu lagi. Dalam satu ini, Roy negara adidaya memiliki telah diperbarui untuk sinar laser, yang adalah contoh saya tidak menggunakan. Saya tidak tahu mana yang Roy lebih suka, tapi kekuatan. Roy memiliki kekuatan adidaya. Katherine tidak berhasil hari ini. Itu disayangkan. Tapi dia memiliki kecepatan super. Baik itu PHP. Sebelum kita berbicara tentang MVC, apakah ada yang punya pertanyaan tentang PHP? Sekarang SQL, atau PHP jika Anda tiba-tiba memiliki datang dengan pertanyaan tentang PHP? Besar. Baiklah, kita sudah siap saat itu. Jadi berbicara sedikit tentang model tampilan kontroler, mari kita kembali ke beberapa dari hal-hal di pset7. Jadi apa model tampilan kontroler is-- aku tidak akan menyimpan perubahan saya untuk login karena saya benar-benar dibantai itu. Tapi pada dasarnya kita memiliki dua hal yang terpisah terjadi. Kami memiliki publik direktori yang berisi kode yang akan dieksekusi dan halaman web yang akan dikunjungi. Dan kami juga memiliki direktori views ini. Dan pandangan berisi template. Ini adalah apa fungsi render-- kami melihat render fungsi dalam sekelompok kode PHP CS50 yang telah ditulis untuk Anda, yang mengambil parameter tertentu. Apa kode yang melakukan yang itu akan menjadi pandangan, yang set seperti Kode HTML prewritten, dan itu memasukkan nilai-nilai ke tempat-tempat tertentu. Ini adalah bagaimana ketika Anda masuk ke CS50 Keuangan, header yang sama pada setiap halaman. Footer sama pada setiap halaman. Hal ini karena jalan yang membuat karya itu akan otomatis menambal di header yang dan viewer yang dapat Anda temukan di tampilan. Kami benar-benar bisa masuk ke header, dan lihat, itu sebuah file HTML dengan kepala. Itu punya beberapa stylesheet. Anda tidak perlu melihat CSS untuk pset7 jika Anda tidak ingin. Tapi Anda bisa memodifikasi mereka jika Anda ingin, membuat Keuangan Anda terlihat sedikit berbeda. Itu punya beberapa PHP di header sedikit untuk melihat jika ada judul yang berbeda itu harus dimasukkan ke dalam header ini. Tapi hanya beberapa script lainnya, dan link, dan hal-hal lain. Kepala berakhir, tubuh mulai, dan oops, kami memiliki aneh ini sedikit akhir bit. Dan ada div, seperti semacam berbentuk elemen yang memiliki ide menengah. Dan kemudian ketika kita melihat footer, kami memiliki akhir div. Kami memiliki bottom, yang di mana teks footer adalah. Akhir div, akhir tubuh, akhir HTML. Jadi apa yang membuat adalah lakukan adalah membuat semacam dari menambal header, sebuah file PHP yang berbeda yang akan berisi hal-hal aktual yang Anda akan melihat, seperti meja Anda dari saham jika Anda membeli atau menjual saham. Dan kemudian akan menambahkan di footer. Dan model tampilan Ide controller kita bahwa ingin memisahkan bagaimana hal terlihat dari kode. Ini kita ingin memisahkan frontend dan backend, di mana frontend adalah hal-hal yang melihat pengguna, bagus visuals-- HTML, CSS, hal-hal seperti itu, gambar, dan lain-lain. Dan backend adalah PHP. Ini adalah kode yang Anda tulis. Ini adalah tempat kode itu melakukan operasi yang sebenarnya. Ini adalah ketika Anda menambahkan saham ke meja Anda, ketika Anda membeli dan jual, itu backend. Dan kita bisa, seperti yang Anda lihat, termasuk PHP langsung dalam HTML. Jadi apa yang bisa kami lakukan untuk tugas ini hanya memiliki file HTML untuk setiap halaman, seperti login. Dan kemudian pada halaman tersebut, hanya memiliki blok besar kode PHP, termasuk semua kode yang Halaman yang secara khusus akan membutuhkan. Dan kemudian kita bisa memiliki melakukan itu untuk portofolio. Kita bisa melakukan semua pembelian dan menjual dalam halaman individual. Tapi karena kita render terpisah dari mana kita menulis backend kode, kita bisa dengan mudah mengubah bagaimana hal-hal terlihat tanpa mengubah setiap file. Kami melakukan hal-hal seperti hanya menambahkan div baru ke bawah of-- Halo Saya diubah footer. Anda hanya dapat melakukan hal-hal seperti itu. Tapi juga, Anda dapat mengubah seluruh tata letak visual yang tanpa mempengaruhi apa akan di backend. Dan Anda dapat mengubah Seluruh backend dan masih memiliki terlihat seperti itu sebelumnya. Ini Apakah ide model view controller. Dan itu sebenarnya paradigma dikenakan di beberapa bahasa pemrograman Anda mungkin ingin menggunakan untuk proyek-proyek akhir. Jika Anda melakukan pengembangan iOS, mereka memiliki pandangan, yang adalah apa yang Anda lihat pada iPhone, dan kemudian backend sebagai seperti hal yang terpisah. Anda dapat berpikir tentang sedikit. Ada banyak binari di ilmu komputer, yang lucu, karena segala sesuatu yang ada di biner. Aku tidak merencanakan itu. Itu pelesetan yang tidak diinginkan. Ya, pun tidak dimaksudkan. Tapi seperti H file dan file c, ada banyak memisahkan dari hal-hal yang kita mungkin tidak perlu. Jadi kami hanya bisa mengedit file h, atau seseorang hanya dapat melihat file H dan tahu persis fungsi yang berada di C file tanpa harus mengetahui pelaksanaannya. Gagasan komponen memisahkan yang bergantung pada satu sama lain tetapi dapat semacam mengakses satu sama lain melalui saluran yang berbeda, lewat variabel, hanya meliputi laporan, hal seperti itu, prinsip ini membantu untuk membuat aplikasi yang dapat lebih mudah disunting oleh beberapa orang, dapat lebih mudah berubah atau dimodifikasi pada skala besar, dan lebih mudah untuk debug di banyak cara. Benar-benar cepat, saya harus beberapa tips untuk pset7, yang saya akan membuat layar penuh sehingga Anda tidak hanya melihat the-- ujung ujung penerima informasi. Ada tidak banyak tips. Tapi saya sebutkan PHP sulit untuk debug. Dua dan tiga memeriksa. Jika kode Anda hanya tidak muncul pada halaman, itu mungkin kesalahan PHP, maaf. Anda tidak perlu melihat CSS jika Anda tidak ingin. Tapi begitu Anda selesai, itu bisa sedikit menyenangkan hal yang baik untuk hanya pergi di dan mess dengan parameter CSS. CSS dan HTML adalah contoh model lihat gaya pengendali hal juga, kan? Anda bisa memiliki tag gaya dalam elemen HTML. Tapi jika Anda semacam Outsourcing mereka untuk CSS, mereka lebih mudah untuk mengedit, dan bermain main dengan, dan bersenang-senang dengan. Perlakukan CS50 helper berfungsi sebagai kotak hitam. Anda tidak perlu tahu apa render lakukan, tapi percaya untuk selalu melakukan kanan Hal tergantung pada apa yang Anda lulus, hal-hal seperti ini. Dan saya akan merekomendasikan menonton walkthrough Daud, melalui semua hal, bukan hanya todos, tapi Anda benar-benar dapat mengobati kotak-kotak hitam. Jangan pergi ke dalam fungsi mencari bug. Dan menyambut kembalinya dari Zamyla tuan kami. Besar. Apakah ada pertanyaan terakhir sebelum kita semacam bangkit untuk hari? Apakah aku masih hidup? Besar. Orang livestream Hi. Besar. Apakah ada lagi pertanyaan? Tidak? Dan kemudian saya pikir kami baik untuk pergi untuk hari ini. Aku akan tetap sekitar sedikit sesudahnya jika orang memiliki pertanyaan mereka takut untuk bertanya pada sungai. Tapi sebaliknya, memiliki hari yang baik.