>> DOUG LLOYD: Jadi dalam kita video pada PHP sintaks,
kita bercakap banyak tentang bagaimana PHP boleh digunakan pada baris arahan
untuk menjalankan program dengan cara yang kami cukup biasa dengan dari C.
Tetapi seperti yang saya juga menyebut kerana video, PHP
pada mulanya dibangunkan untuk melaksanakan pengaturcaraan web, laman web.
Dan sebagainya dalam video ini kami akan bercakap tentang bagaimana kita
menggunakan PHP dalam konteks pembangunan web.
>> Kita tahu, sudah, dari video kami pada HTML,
bahawa laman web yang dibina daripada satu set tag HTML
bahawa semantik menentukan struktur laman web.
Tetapi laman web yang dibina dengan tulen HTML
mengalami yang sangat, batasan yang sangat serius.
>> Dan untuk menggambarkan had ini, mari kita mempertimbangkan berikut.
Jadi sekarang saya mahu untuk membina laman web itu, apabila pengguna lawatan itu,
ia memberikan saya semasa masa di Cambridge, Mass.,
memaparkan ia ke minit terkini.
Jika saya telah membuat hak ini sekarang, Saya mungkin berkata sesuatu seperti ini.
Masa semasa di Cambridge-- jadi saya perlu Tag, tag kepala, tag tajuk,
badan tags-- semasa masa di Cambridge adalah 14:08,
mencetak masa tentera.
>> Apakah yang akan berlaku jika ia kini 02:09, 14:09?
Baik setakat ini, dengan HTML, saya mempunyai untuk masuk dan menukar kepada 14:09.
Dan kemudian satu minit kemudian, Saya perlu menukar sekali lagi.
Dan seperti yang anda boleh bayangkan, itu mungkin kerja yang paling teruk pernah.
Anda webmaster untuk laman web, dan setiap minit, 24 jam sehari,
anda perlu mengemas kini masa semasa oleh secara manual membuka time.html dan menukar
hanya itu coretan kod untuk mengatakan masa semasa dalam jam dan minit.
Itu mungkin tidak yang sangat baik menggunakan sumber,
kedua-dua manusia dan pengiraan.
>> Laman web yang semua HTML benar-benar statik.
Satu-satunya cara anda boleh mengemas kini kandungan, seperti yang kita telah lihat,
adalah untuk membuka secara manual sumber mereka fail, mengedit, dan menyelamatkan mereka.
Dan kemudian apabila pengguna menyegarkan halaman,
atau melawat halaman tersebut untuk pertama masa, mereka akan mendapat kandungan terbaru.
Tetapi hanya kerana kita ada manual menyuntingnya.
>> Jika kita bermula untuk campuran beberapa PHP di sana, kod kami boleh mendapatkan banyak yang lebih fleksibel.
Dan kita boleh mempunyai cara untuk halaman kami menjadi dinamik, atau mengemas kini diri mereka sendiri,
tanpa memerlukan miskin kami webmaster dalam contoh sebelum ini
menjadi manual mengemaskini sesuatu.
Mereka boleh melakukannya secara automatik.
Kami tidak perlu campur tangan.
Kita boleh mendapatkan beberapa tidur.
Yang mungkin satu perkara yang baik jika yang anda lakukan banyak pengaturcaraan web.
>> Jadi dalam CS50 IDE, kami menjalankan pelayan web dipanggil Apache.
Ia adalah sangat biasa digunakan, sumber terbuka sistem pelayan web.
Sistem ini mempunyai keupayaan untuk mentafsir
PHP, yang akan menjadi berguna jika anda mahu melakukan apa-apa pengaturcaraan PHP.
>> Dan dalam CS50 IDE, kita mempunyai arahan yang untuk membuat ini sangat mudah untuk dilakukan,
apache50 bermula.
Dan kemudian palang yang jalan, slash ke, slash
dir, itu hanya satu cara yang benar-benar biasa menunjukkan apa yang telah dinyatakan di sini
adalah laluan kepada sesuatu direktori yang anda
mahu menjadi akar lokasi, atau halaman akar,
atau folder dari mana pelayan web anda akan mula memeriksa fail dan berkhidmat
mereka kepada pelanggan yang meminta mereka.
Jadi mari kita pop ke CS50 IDE, hanya untuk menunjukkan kepada anda, benar-benar cepat, bagaimana ini berfungsi.
>> Jadi di sini dalam CS50 IDE, saya dalam satu direktori dipanggil Minggu Zero Nine.
Dan saya mempunyai two-- Saya mempunyai menyempurnakan suatu perintah LS hanya
di atas menunjukkan bahawa saya mempunyai dua direktori di sini, PHP,
yang merupakan set fail yang saya digunakan dalam video sintaks PHP, dan kemudian PHP-laman web
yang merupakan set fail yang saya ingin menggunakan dalam video ini.
>> Dan saya ingin memulakan contoh pelayan web
dengan kandungan folder PHP-web kerana fail-fail tersebut disampaikan ke atas.
Jadi apa yang saya akan lakukan?
Saya akan menaip ruang apache50 mula, PHP ruang, dash web.
Itulah laluan ke direktori dari mana saya kini am.
Kemudian aku tekan Enter.
Ia akan melakukan sedikit sedikit barangan di sini.
Dan kemudian ia akan berkata, Apache bermula dengan jayanya.
Laman web anda adalah kini boleh didapati at-- dan kemudian ada URL untuk laman web ini.
Jadi apa yang saya akan lakukan?
Saya akan cepat menyalin ini.
Dan saya akan membuka up-- dan Saya akan zum keluar sedikit sini--
Saya akan membuka tab baru dalam Chrome.
Dan saya akan melawat URL tersebut.
>> Saya akan tekan Enter.
Ia akan memuatkan.
Dan saya akan zum keluar lagi.
Dan kita boleh lihat di sini adalah yang kandungan direktori web PHP saya.
>> Jadi sekarang apa yang pada asasnya berlaku di sini ialah, contoh saya CS50 IDE
berkhidmat sehingga fail-fail ke sesiapa yang meminta mereka.
Dan sepanjang video ini, kami akan menyusun daripada
kita lihat pada sekumpulan ini fail yang berbeza dalam konteks.
>> Untuk menguji bahawa Apache anda pelayan sedang bekerja,
yang biasanya akan menjadi kes dalam CS50 IDE,
tetapi jika anda melakukan ini lebih umum, dan anda mula membina web anda sendiri
pelayan, ada benar-benar jenis biasa analog kepada,
"Dunia hello," yang biasanya digunakan untuk pembangunan PHP web.
Iaitu untuk mempunyai fail yang yang terdiri daripada hanya code-- ini
sebuah pemisah PHP ditetapkan dengan PHP info, kurungan, koma bertitik di antara.
Yang pada dasarnya yang istimewa PHP fungsi yang memberitahu anda
apakah versi PHP anda jalankan.
>> Jadi dalam CS50 IDE, saya mempunyai fail yang didapati hanya
untuk menunjukkan kepada anda apa ini akan kelihatan seperti.
Jadi, saya melihat indeks saya daripada contoh PHP saya.
Contoh Apache saya berjalan kandungan PHP-Web.
Dan saya mempunyai fail yang di sini dipanggil info.php.
>> Saya akan klik, zum keluar.
Ini adalah apa yang anda akan untuk melihat, cukup banyak.
Ini hanya memberitahu saya bahawa server Apache saya bekerja.
Dan ini adalah, nampaknya, versi PHP yang saya berjalan.
Ini adalah analog saya untuk "hello dunia."
>> Jadi saya tahu perkara-perkara yang operasi.
Oleh itu, kita baik untuk pergi.
Kita boleh meneruskan dari sini.
>> Jadi mari kita melihat semula yang contoh masa kita
bercakap mengenai dengan webmaster miskin kami yang terpaksa mengemas kini halaman sentiasa.
Ini mungkin menjadi satu penyelesaian untuk bagaimana Saya akan melaksanakan perkara-perkara
supaya webmaster tidak perlu terus mengemas kini masa.
Ia akan hanya jenis berlaku secara automatik.
>> Ke bawah di bawah, HTML, ia agak sama, dengan satu pengecualian.
Tetapi di sini saya telah mendapat beberapa PHP di bahagian atas.
Saya, nampaknya, dipanggil ini fungsi date_default_timezone_set.
>> Dan kita tidak bercakap mengenai semua fungsi-fungsi ini dalam CS50,
kerana PHP mempunyai mungkin puluhan ribu.
Yang mungkin menjadi sedikit yang keterlaluan, tetapi ia tidak mungkin.
Ia mempunyai banyak fungsi-fungsi terbina dalam.
Dan sebagainya ini adalah fungsi yang pada zahirnya menetapkan zon masa saya sebagai US / Timur,
yang merupakan zon masa di mana saya kini dalam membuat video ini.
>> Kemudian saya membuat panggilan kepada fungsi dipanggil, setakat ini.
Dan, nampaknya, saya menyimpan HIS sesuatu yang dinamakan, masa.
Jadi apa yang berlaku di sini?
>> Nah, pada dasarnya apa yang berlaku ialah, saya membuat panggilan
kepada beberapa pelayan yang akan beritahu saya apa masa yang masa ini.
Dan saya ditukarkan kepada format yang jam, minit, saat.
Dan sebab itu modal H adalah ini yang akan memberi saya masa 24 jam, bukan 12
masa jam, yang akan menjadi huruf kecil h.
Dan saya hanya menyimpan yang dalam pembolehubah yang dipanggil, masa.
Supaya baris kedua PHP sana, panggilan ke majlis itu,
Setakat ini, hanya mendapat beberapa rentetan, iaitu
akan memberikan saya tarikh, dan masa, dan mempunyai banyak maklumat lain.
Dan hujah pertama di sana, bahawa NYA, hanya mengeluarkan bahagian yang penting
yang saya sayang untuk contoh ini, yang merupakan jam, minit, dan kedua.
Jadi itu sahaja yang yang berlaku.
Jadi saya menyimpan bahawa dalam $ masa yang berubah-ubah.
Dan kemudian turun di sangat bawah di sana, saya
mempunyai bahawa singkatan untuk mencetak masa semasa.
Jadi saya hanya akan mencetak apa masa semasa.
>> Jadi mari kita lihat ini dalam IDE CS50 dan melihat bagaimana kami kini
penjimatan webmaster yang banyak masalah.
Baiklah, jadi di sini saya lagi kembali pada direktori akar
Contoh yang Apache saya.
Dan saya mempunyai fail yang di sini dipanggil time.php.
Saya hanya akan klik pada itu.
Dan saya akan tatal ke atas, kerana kita dizum dalam cantik ini.
Masa sekarang ialah 14:20:34.
Jadi, saya melakukannya jam, minit, dan saat.
Dan saya boleh menyegarkan halaman dan mendapatkan masa baru.
--41.
Saya akan muat semula halaman ini dan mendapatkan masa baru, 44, 46, 47.
>> Jadi, saya jelas tidak mengubah apa-apa diri saya sendiri.
Saya di sini semula halaman.
Jadi saya tidak boleh kembali ke sana menyuntingnya.
Dan saya berjanji kepada anda, saya tidak mempunyai apa-apa menentang kebenaran
yang mengedit fail bagi pihak saya di sebelah.
>> Saya hanya menggunakan fungsi PHP, masa, untuk menjana masa untuk saya
secara automatik.
Supaya walaupun jika saya tidur, dan pelayan web saya sedang berjalan,
pengguna yang melawat laman tersebut masih akan mendapatkan tepat masa semasa.
Jadi, itu cukup baik.
Saya telah membuat laman saya lebih dinamik dengan kod PHP tidak terlalu banyak.
Ia hanya dua baris kod dan kemudian sedikit kenyataan cetak.
Dan sudah saya mempunyai Laman web yang lebih dinamik
daripada itu contoh pertama kita lihat pada awal video.
>> Jadi, ingat dari video pada PHP sintaks bahawa apabila jurubahasa PHP berjalan
program kami, ia mengabaikan segala-galanya itu bukan di dalam pembatas PHP,
meludah keluar.
Dalam contoh itu, apa perkara yang bahawa ia telah meludah keluar HTML.
Dan ini bermakna saya boleh sekarang diselang seli HTML dan PHP bersama-sama.
Kerana jurubahasa akan hanya mengabaikan HTML dan benar-benar outputnya.
Yang baik, bukan?
>> Kerana mungkin, pada akhir hari,
Saya mahu laman web saya untuk dibina HTML.
Supaya mana-mana pelayar web boleh mentafsir , atau memahami HTML pada halaman
dan menjadikannya sebagai sesuatu yang kita benar-benar dapat memahami sebagai manusia.
Dan saya hanya boleh menggunakan PHP untuk bahagian-bahagian laman saya
yang memerlukan dinamisme, yang memerlukan saya mempunyai perkara-perkara yang mengemas kini sentiasa.
Maklumat yang statik boleh tinggal yang sama.
>> OK, jadi itulah denda.
Tetapi mengapa saya akan lakukan ini?
Mengapa saya akan bercampur HTML dan PHP?
Saya hanya boleh mencetak semua HTML, menggunakan fungsi PHP cetak.
Kenapa saya tidak berbuat demikian?
Fikirkanlah untuk kali kedua.
>> Mengapa, apabila saya hanya boleh mencetak out-- Saya boleh mempunyai baris PHP yang hanya berkata,
cetak HTML tag, kepala cetak.
Kenapa saya tidak berbuat demikian?
Kenapa saya mencampurkan PHP dan HTML?
>> Nah, jika anda berfikir mengenainya untuk kali kedua.
PHP, jurubahasa mempunyai untuk mentafsir apa yang ia lihat.
Dan maka ia akan mempunyai untuk melaksanakan baris kod.
Cetak HTML.
Mencetak tag kepala terbuka.
Mencetak tag tajuk terbuka.
Ia akan perlu melaksanakan dan mentafsir
bahawa setiap langkah dari jalan.
Mengapa tidak hanya membiarkan jurubahasa hanya menyembunyikan
perkara yang ia tidak memahami dan melakukannya secara automatik?
Ia akan menyelamatkan saya banyak masa untuk bergaul HTML saya dan PHP saya bersama-sama.
>> Dan itulah sebabnya mengapa kita tidak hanya perlu terbuka PHP pembatas
dan kemudian hanya mencetak keseluruhan kandungan laman kami sebagai salah PHP gergasi
panggilan kepada fungsi, Cetak, dan kemudian berhampiran PHP pembatas dan kami selesai.
Jadi itulah sebabnya kita campuran mereka bersama-sama.
>> Setakat ini, kami tidak melihat terlalu banyak perbezaan dari umum PHP sintaks.
Ia adalah agak mudah.
Kami telah melihat tanda tanya, sama.
Kami melihat beberapa panggilan fungsi baru, tetapi tiada apa yang benar-benar mewah berlaku.
Mari kita mungkin membuat perkara sedikit pelamun.
Bagaimana jika kita mahu memberikan maklumat antara fail PHP yang berbeza,
supaya mungkin pengguna boleh mengemukakan maklumat kepada saya.
Dan kemudian saya boleh melakukan sesuatu dengan pada laman lain.
>> Jadi PHP mempunyai sokongan untuk sesuatu yang dinamakan Super Global
Pembolehubah, yang berbunyi cukup menggerunkan.
Mereka benar-benar hanya array bersekutu gergasi
yang membantu melaksanakan ini fungsi yang berlalu
maklumat antara PHP fail yang yang sedia ada pada pelayan web kami.
>> Pertama super ini globals dipanggil $ _GET.
Dan ia mungkin paling mudah untuk difahami.
Apa yang berlaku dengan $ _GET?
Nah, pada dasarnya, pengguna adalah akan menaip maklumat tambahan
pada akhir URL kami.
Dan apa sahaja yang mereka menaip, dengan andaian ia diformat dengan cara yang tertentu
dipanggil rentetan pertanyaan, yang hanya satu set pasangan nilai utama dipisahkan
oleh ampersands.
Mereka pasangan nilai utama adalah disimpan dalam $ _GET pelbagai bersekutu.
Dan dari video kami di PHP sintaks, kita tahu
bagaimana untuk bekerja dengan array bersekutu sudah.
Jadi di sini adalah satu contoh beberapa PHP, mana mungkin saya
mengekstrak semua pasangan nilai utama untuk setiap pengguna yang dibekalkan dalam URL.
Jadi saya perlu Terbuka PHP pembatas saya.
Saya mempunyai gelung foreach.
Saya iterating seluruh Super Array global dipanggil $ _GET.
>> Dan saya mahu dapat untuk merujuk kepada kedua-dua utama dan nilai.
Dan saya hanya mencetak mereka keluar, masing-masing satu di nampaknya
tag perenggan sendiri di sini.
Saya mencetak beberapa HTML dan interpolasi nilai
kunci dan nilai ke dalam kenyataan itu.
>> Oleh itu, mari kita lihat bagaimana ini sebenarnya akan bekerja pada IDE kami.
Dan mungkin ini akan membantu menggambarkan sedikit
apa DAPATKAN sebenarnya lakukan.
Jadi saya kembali ke sini dalam akar web saya.
Dan saya akan zum dalam sedikit untuk menunjukkan kepada anda
bahawa saya mempunyai fail yang dipanggil, get1.php.
>> Jadi mari kita klik pada get1.php.
Dan saya tidak melihat apa-apa kandungan.
Itu yang pelik, bukan?
Well, tidak benar-benar sebenarnya.
Kerana saya tidak membekalkan apa-apa dalam URL.
Saya akan get1.php, tetapi saya tidak membekalkan apa-apa pasangan nilai utama
sebagai sebahagian daripada rentetan pertanyaan saya.
Jadi mari kita menambah rentetan pertanyaan dan ketahui fail ini boleh lakukan.
>> Untuk memulakan rentetan pertanyaan anda hanya menaip tanda tanya.
Maka mungkin saya akan mengatakan name = Doug & tahun = 2015.
Dan kemudian saya akan tekan Enter.
Sekarang perhatikan apa yang berlaku.
Saya masih dalam get1.php.
Tetapi sekarang saya telah dibekalkan pasangan nilai utama, dan saya
mencetak mereka keluar sendiri nama paragraph--, tahun Doug--, 2015.
Itulah kod yang kami hanya melihat pada slaid sebentar tadi.
>> Dan jika saya ingin menambah satu lagi mungkin pasangan nilai utama, & class = CS50.
Sekarang saya mempunyai satu lagi nilai utama pasangan yang yang dicetak
apabila saya melihat semula URL yang lagi.
Sekarang mungkin ini tidak diformat betul-betul juga.
Jadi saya mempunyai satu lagi versi get.php.
Ia get2.php.
>> Perbezaan dalam ini satu adalah saya mempunyai fail CSS,
dan ia format perkara-perkara yang sedikit lebih baik untuk saya.
Ia mungkin bukan yang paling CSS indah di dunia.
Tetapi ia hanya satu lagi cara untuk melakukannya.
Oleh itu, saya masih boleh mendapatkan akses kepada pembolehubah saya menggunakan $ _GET.
Dan dalam kes ini, saya hanya jenis membuat CSS lebih sedikit mewah.
Dan jika kita pop ke IDE saya untuk kali kedua,
Saya akan menunjukkan kepada anda dalam PHP web saya direktori sini, get2.php.
Kami akan membukanya, beberapa HTML di sini.
Rupa-rupanya saya menghubungkan kerana Fail CSS saya bercakap tentang.
Saya membuka tag jadual.
Dan kemudian di sini adalah gelung foreach saya.
>> Di sini ialah, apa yang saya menunjukkan pada slaid sebelum ini.
Satu-satunya perbezaan adalah saya mempunyai kunci ini dan nilai CSS
gaya yang saya memohon kepadanya.
Tetapi itu sahaja yang saya lakukan, adalah saya iterating seluruh $ _GET untuk mendapatkan semua
pasangan nilai utama.
>> Dan saya mencetak mereka keluar kerana meja.
Dan, nampaknya, saya memformat kekunci dalam satu cara, dengan <td class = "kunci".
Jadi nampaknya yang boleh digunakan untuk beberapa pemilih kelas GET.CSS fail CSS saya.
Dan, nampaknya, saya mencetak nilai-nilai saya cara yang sama sekali berbeza.
Yang cukup banyak apa yang kita lihat di sini, di mana
nilai-nilai kita telah dicetak dengan latar belakang biru,
dan kunci kami telah dicetak dengan latar belakang kuning.
Jadi itulah bagaimana saya mendapat gaya-gaya yang berbeza.
Kerana saya menggunakan kelas CSS berbeza.
Tetapi itu cukup banyak selama GET.
Suka saya hanya mengeluarkan maklumat.
Dan dalam kes ini, saya hanya mencetaknya ke skrin.
Saya mendapat ia keluar dari URL, dan itulah yang GET tidak untuk kita.
>> Adakah anda melihat kemungkinan masalah di sini walaupun?
Mengapa kami mungkin tidak mahu menggunakan $ _GET?
Bagaimana jika, mungkin, saya telah membuat pertanyaan ini?
get3.php --to, yang saya tidak ada di IDE saya.
Ia hanya satu fail yang dibayangkan.
Tetapi perhatikan di sini bahawa nampaknya lulus kata laluan saya masuk.
Dan mungkin kata laluan saya memalukan.
Atau mungkin saya tidak mahu orang tahu apa kata saya ialah, betul.
>> Jika saya lulus though-- jika saya menggunakan kaedah $ _GET, apa yang berlaku adalah,
yang akan berada di dalam URL.
Jadi beberapa pengguna yang berniat jahat mungkin dapat melihat apa yang saya lakukan.
Saya boleh lulus mereka maklumat sensitif.
Atau mungkin ia tidak walaupun pengguna yang berniat jahat.
Mungkin ia hanya rakan anda yang berdiri di atas bahu anda.
Dan kini mereka tahu kata laluan ke akaun Facebook anda.
>> Dan mungkin mereka tidak akan berbuat apa-apa dengannya.
Tetapi jika kata laluan anda adalah dikemukakan melalui $ _GET ke Facebook,
kini mereka tahu kata laluan Facebook anda.
Kerana ia di sana di URL yang apabila anda telah melakukan mengemukakan maklumat.
>> Dan jadi mungkin itu bukan yang terbaik cara untuk memberikan maklumat sensitif.
Ia adalah satu cara yang baik untuk memberikan maklumat bahawa kita tidak terutamanya
mengambil berat tentang sebagai terlalu sensitif.
Kerana GET agak cepat, relatif kepada globals super yang lain
kita akan bercakap tentang.
Tetapi mungkin tidak alat yang terbaik untuk maklumat sensitif.
>> Untuk itu, kita mungkin mahu menggunakan sesuatu yang dinamakan $ _POST,
yang merupakan satu lagi ubah Super Global.
Ia adalah satu lagi pelbagai bersekutu.
Jadi ia berfungsi cukup banyak sama seperti GET.
Kecuali, bukannya mengeluarkan maklumat dari URL,
ia sesuatu melalui header HTTP.
Jadi ingat dari kami video pada HTTP, kita bercakap
tentang bagaimana pelayar, pelayan, dan pelanggan berkomunikasi.
Dan maklumat diluluskan kembali dan sebagainya dalam pengepala HTTP.
>> Dengan $ _POST, maklumat biasanya dihantar melalui mereka header HTTP.
Dan kita paling biasa akan melihat $ _POST dalam konteks mengemukakan borang HTML.
Anda masih boleh menggunakan bentuk HTML mengemukakan perkara yang GET.
Tetapi mereka biasanya digunakan dalam konteks POST.
>> Jadi di sini adalah satu contoh bentuk HTML.
Sekarang kita telah melihat ini sebelum ini, tetapi kita perlu tidak melihat bahagian ini, tindakan = "post.php".
Oleh itu, apabila kita bercakap tentang bentuk-bentuk dalam konteks HTML, saya mempunyai butang Submit.
Dan jika anda masih ingat, saya klik Hantar dan kemudian halaman hanya segar,
tidak berbuat apa-apa.
>> Dalam kes ini, saya mengemukakan apa yang saya taip di borang ini,
kepada fail PHP dipanggil post.php.
Dan, nampaknya, cara yang saya lakukan yang dalam borang ini menggunakan kaedah POST.
Jadi semua maklumat yang saya taip ke dalam borang ini
akan diserahkan melalui tajuk HTTP.
>> Ia akan boleh diakses dalam post.php, kerana itulah tindakan bentuk saya.
Ia akan boleh diakses dengan pergi ke $ _POST.
Dan nampaknya, cara saya boleh mendapatkan di setiap elemen individu
dengan itu pelbagai bersekutu adalah dengan sifat ini,
atribut Name tag input kami.
>> Jadi nampaknya saya boleh katakan $ _POST persegi kurungan menamakan untuk mendapatkan apa pengguna
ditaip dalam bidang pertama.
Dan $ _POST kata laluan, di pw sebaliknya, untuk mendapatkan pada apa pengguna ditaip
dalam bidang yang kedua.
>> Oleh itu, mari kita lihat pada lebih ini dalam CS50 IDE.
Jadi di sini kita, dan saya akan zum masuk untuk kali kedua.
Dan kita mempunyai fail yang dipanggil post.html.
Saya klik pada post.html.
Di bahagian paling atas di sini saya mempunyai borang web sangat mudah.
Ia adalah bentuk yang kita hanya melihat pada slaid kedua yang lalu.
>> Saya boleh menaip, Doug, dan saya boleh menaip kata laluan kepada saya, yang kita semua
tahu ialah squadgoals.
Dan saya akan melanda Hantar.
Dan nampaknya, yang mengemukakan kepada post.php.
Dan saya nampaknya percetakan itu.
Jadi, saya menghapuskan semua keselamatan yang POST memberikan saya dengan hanya mencetak
nama pengguna dan kata laluan.
>> Nama pengguna adalah Doug.
Kata laluan pengguna adalah squadgoals.
Bagaimana saya lakukan ini?
Nah, pop ke IDE lagi untuk kali kedua.
Kami akan tatal ke bawah untuk mengambil lihat post.php, yang
tindakan yang saya digunakan untuk mengemukakan di sini.
Itu adalah tindakan bentuk HTML saya.
Dan itu semua yang saya lakukan.
Nama pengguna ini, dan saya percetakan daripada kandungan $ _POST "nama".
Dan kemudian kata laluan pengguna adalah $ _POST "password".
Jadi saya telah diberi maklumat yang dengan menghantar borang HTML.
Dan saya kini boleh ekstrak menggunakan $ _POST kerana kaedah yang saya digunakan untuk menghantar
data borang itu adalah kaedah POST.
>> Sekarang ia mungkin tidak supaya great-- saya akan
kembali untuk kali kedua untuk sini-- set kami
ia mungkin tidak begitu besar jika saya mengemukakan maklumat dengan POST,
yang kononnya lebih selamat.
Ia mungkin tidak begitu besar jika saya melakukan itu dan kemudian
mencetak kata laluan pengguna.
Ia sepatutnya menjadi lebih selamat.
>> OK, tetapi ia tidak begitu selamat.
Jadi dengan ini sedikit snippet di sini saya ingin
hanya menarik perhatian anda kepada beberapa masalah keselamatan data, hanya sesuatu
untuk berfikir tentang kerana anda bekerja atau menggunakan internet.
Ini hanyalah sesuatu yang perlu dipertimbangkan.
>> Saya memberitahu anda bahawa maklumat dikemukakan melalui header HTTP
apabila anda menggunakan kaedah POST.
Yang bermakna mereka tidak sepenuhnya selamat.
Mereka sukar untuk mencari daripada menggunakan kaedah GET, di mana
ia hanya betul dalam URL.
Tetapi masih ada satu cara untuk menemuinya.
Dan saya hanya mahu menunjukkan anda ini supaya anda mungkin
mula berfikir tentang ini seperti yang anda sedang bekerja, atau menggunakan
laman web dan mengemukakan kata laluan, dan mungkin menggunakan
kata laluan yang sama dalam banyak tempat-tempat yang berbeza.
Tahu bahawa adalah masih sebenarnya cukup mudah untuk mengetahui kata seseorang.
>> Dan sebagainya di sini, saya akan untuk pergi ke post2.html.
Dan perbezaan dengan post2.html dan post2.php adalah cukup halus.
Perbezaannya ialah hanya bahawa saya tidak mencetak
kata laluan apabila saya mengemukakan borang.
>> Jadi, saya akan menaip, Doug.
Dan saya akan menaip dalam, squadgoals, walaupun
walaupun kita tahu bahawa kata laluan.
Sebelum saya mengemukakan Borang walaupun, saya akan
untuk membuka Alat Pembangun, hanya untuk menunjukkan kepada anda apa yang akan berlaku di sini.
Jadi dalam Chrome, saya hanya akan melanda F12.
Dan itu akan membuka saya Alat Pembangun di sebelah tangan kanan.
Saya masih belum mengemukakan borang lagi.
Sekarang saya akan untuk memukul Hantar borang saya.
Dan nampaknya, saya membuat panggilan untuk, atau saya membuat permintaan
untuk post2.php, yang masuk akal.
Saya akan klik pada itu.
>> Maka di sini, saya akan klik pada Tajuk.
Ada banyak perkara yang berlaku di sini.
Tetapi jika saya tatal ke bawah untuk yang bawah, notis there-- hak kalendar saya
telah menyekatnya untuk hak second-- terdapat di sudut yang bawah,
name-- Doug, squadgoals pw--.
Jadi, walaupun saya menggunakan POST kaedah, yang lebih selamat,
anda perlu ingat bahawa apabila anda berbuat demikian, anda masih menghantar maklumat
melalui HTTP.
Dan ia masih boleh menjadi ditemui oleh musuh.
Ia hanya sesuatu yang kita akan perlu berurusan dengan benar-benar.
Mungkin ada beberapa cara untuk menyulitkan kami kata laluan sebelum kami menghantar mereka,
yang akan menjadi lebih baik, yang saya tidak lakukan di sini.
>> Tetapi anda perlu ingat bahawa POST kaedah mempunyai batasan juga.
Ia merupakan satu peningkatan berbanding GET dalam syarat-syarat yang segera kelihatan.
Tetapi ia bukan satu penyelesaian yang lengkap.
Jadi di sini adalah satu contoh cepat pada senaman di rumah
yang boleh anda gunakan untuk mendapatkan beberapa mengamalkan bekerja dengan PHP.
Mencipta pasangan berikut halaman web.
Pertama hanya perlu menjadi sangat mudah membentuk dengan medan tunggal dan Hantar
butang.
Jadi hampir sama dengan apa yang kita hanya melakukan dengan post.html.
>> Dan kemudian yang kedua memfailkan anda perlu membuat
adalah fail, fail PHP, yang menjangkakan input, melalui POST,
dan berdasarkan apa pengguna ditaip, yang anda boleh menganggap akan integer.
Anda tidak perlu melakukan apa-apa semakan ralat atau sebagainya.
Anda boleh menganggap pengguna akan menaip nilai integer,
atau sesuatu seperti yang ditafsirkan oleh PHP sebagai integer, ke dalam borang itu.
Anda hanya mahu mewujudkan n oleh jadual n pendaraban.
>> Jadi, jika pengguna menghantar 10, kita mahu mempunyai jadual 10 oleh 10 pendaraban.
Jika pengguna mengemukakan 12, kita mahu meja 12 12 pendaraban.
Hanya supaya anda boleh melihat apa yang kita sedang memandu di sini,
kami akan mengambil lihat fail ini dalam IDE saya.
>> Jadi di sini dalam IDE, saya mempunyai mult_form.html.
Saya akan klik.
Apa yang saya mahu lakukan adalah mengemukakan nilai.
Taip 10, memukul Hantar.
Dan nampaknya, mult_table.php, yang kita dapat lihat pada bahagian atas terdapat dalam URL,
Saya mewujudkan 10 oleh 10 jadual pendaraban.
>> Saya menaip 15 dan tekan Submit, sekarang saya mempunyai jadual 15 sebanyak 15 pendaraban.
Saya, sudah tentu, tidak akan menunjukkan anda kandungan mult_table.php,
kerana itu akan mengambil keseronokan daripada ini pada senaman di rumah.
Tetapi ia adalah satu cara yang baik untuk mendapatkan beberapa mengamalkan bekerja dengan gelung PHP
dan POST, sangat mudah, mudah-mudahan contoh percuma tekanan, hanya
untuk melakukan sedikit amalan.
Dan saya telah mendapat sedikit CSS berlaku di sini untuk untuk membuat jadual individu saya
sel-sel hanya jenis pop off sedikit dan kelihatan lebih sedikit
seperti jadual pendaraban, berbanding hanya teks sahaja
jenis duduk di sana.
Yang terakhir super global kita akan bercakap tentang dalam video ini adalah sesuatu yang dinamakan
$ _SESSION.
Dan mungkin ini sebenarnya contoh terbaik sesuatu
kita akan mempertimbangkan global.
Ia adalah lokasi lain.
Ia adalah satu lagi pelbagai bersekutu.
Tetapi ia boleh diakses melalui setiap File PHP yang wujud pada sistem kami.
>> Kami tidak perlu mengemukakan maklumat satu halaman pada satu masa
seperti yang kita lakukan dengan GET dan dengan POST.
Ia sentiasa ada.
Dan sebagainya ini adalah besar untuk halaman di mana anda log masuk, sebagai contoh,
dan anda mahu maklumat log masuk anda berterusan dari halaman ke halaman ke halaman.
>> Anda hanya boleh memulakan sesi dan kemudian menggunakan $ _SESSION menyimpan perkara-perkara seperti
Nama pengguna atau pengguna ini Maklumat ID, dan sebagainya.
Dan maklumat yang akan kekal dalam $ _SESSION Sehingga anda memusnahkan sesi
sedikit kemudian.
>> Penulisan laman web dinamik dengan PHP menjadikan mereka lebih baik.
Laman web anda menjadi sangat dinamik, dan anda tidak
perlu melakukan terlalu banyak lebih daripada apa yang anda sebaliknya akan dilakukan hanya
melakukannya dengan HTML.
Tetapi ia memerlukan amalan, banyak amalan.
>> Anda sudah tahu bagaimana untuk bekerja dengan C, dan sebagainya melompat untuk PHP tidak terlalu rumit.
Apa yang mungkin sedikit sedikit rumit berfungsi
dengan idea baru ini GET dan POST, dan mungkin mencampurkan HTML anda dan PHP anda
bersama-sama.
Tetapi juga sedar bahawa internet adalah repositori maklumat yang luas.
Dan dokumentasi PHP-kanak boleh didapati di banyak tempat, tetapi mungkin yang paling
canonically di php.net.
Dan anda boleh mencari di sana, banyak fungsi yang berbeza,
dan menggunakan kes, dan contoh apabila contoh, apabila contoh.
Di mana jika anda ingin mencuba dan angka bagaimana untuk melakukan sesuatu, kemungkinan adalah,
seseorang itu mungkin dilakukan sebelum anda.
Dan anda boleh menggunakannya sebagai inspirasi untuk melaksanakan apa sahaja
sahaja yang anda cuba untuk melaksanakan juga.
>> Saya Doug Lloyd.
Ini adalah CS50.