>> [MÜZİK OYUN]
DAVID J. MALAN: Pekala.
Tekrar hoşgeldiniz.
Bu CS50 olduğunu.
Bu hafta 8 sonudur.
Ve bildiğiniz gibi, biz oldukça var Birkaç düzenli ofis saatleri
yemek salonlarının, Annenberg dahildir.
Ve takımın bazı nazik Son zamanlarda bazı fotoğrafları aldı.
Ve onuruna Cadılar Bayramı, biz diye düşündüm
yerine bize yakaladı birini paylaşmak sürpriz burada Annenberg Salonu'nda sadece
Geçen gece.
Sizin sınıf arkadaşı Jacob için poz Bu fotoğrafı, ama daha eğlenceli oldu
Facebook oldu, takip eden sonra oldu konuşma.
Yanıt >> Onun ilk yazı Onun fotoğraf bu oldu.
Birkaç dakika sonra, diye karar verdi Bu ile kendini yukarı birine.
Bu, bu gitmek için o gitti ve daha sonra, daha eğlenceli
annesi ipucu verdi ne zaman olduğunu.
Sonra, sonuçta, Bu sadece oldu görünüyor
Bir için harika bir aldatmaca Bu oluyor oynamak.
>> Peki, eğer isterseniz Jacob ve diğerleri görmek için,
Aralarında Cynthia Meng, kim CS50 bölge personelin perde arkasında,
Bu URL ve burada bu oyun için baş.
Bu yüzden daha fazla uzatmadan, bugün web programlama bu göz devam
ve programların gerçek oluşturma Bu, komut satırında tüketmemek
ancak bunun yerine bir tarayıcı içinde çalıştırmak.
>> Muhtemelen şimdi, ya da çok kısa bir süre, sen gidiyorsun
uygulama ortasında olmak Kendi web sunucusu, hangi
Web programlama farklıdır.
pset6 web sunucusu tüm hakkında bilen yazılım yazma almak
Bir tarayıcı HTTP istekleri, hatta sizden, bir insan,
Bir program ile Telnet denir ve sonra ya bu isteklere cevap
Bir HTML dosyası tükürme yoluyla, ya da jpeg, gif veya, hatta bir .php dosyası.
>> Ama bir web sunucusu ile, öyle değil Sadece bir PHP dosyasını açmak gerekiyordu,
php biten bir şey, ve Daha sonra içeriğini tükürmek.
Bunu yapmak gerekiyordu ne önce bu dosyaya?
Yani konuşmak.
Derlemek değil, biz, Pazartesi günü yaptığı açıklamada, ama rather-- Yani, bunu yorumlamak.
>> PHP bir dil olduğunu, ve bu yüzden web anahtar özelliklerinden biri
Sunucu, bizim tarafımızdan uygulanmaktadır olsa, Web sunucusu için bu yetenek
oh, fark.
Bu php biten bir dosyadır.
Bana sadece göndermek vermeyelim Bunun gibi kullanıcı, statik içerik var
ama doğrusu bana bunu satır okuyalım çizgi, soldan sağa, ve bunu yorumlamak.
>> Ve yapmak, size o adamlar aslında olacak
Cihazda bir programa punt, ve bilgisayar sistemlerinin bir sürü,
Sadece PHP denir.
Bu PHP adıdır dilin kendi tercüman.
Yani, bu parça bizim için uygulamak Eğer, ne sizin için kalan
sonuçta, bir sayıdır parçalarının, bunlar arasında
destek uygulamaktadır Statik içerik için.
>> Ama şimdi, ve ile Sorun sen, yedi set
geçiş başlamak için gidiyor Aslında PHP kodu yazma
Bu yorumlanır alır Bir arka uç konuşurken
bilgi depolayan veritabanı.
Yani ilk anlamak daha iyi yapalım Bu süper küreseller bir çift
ve sadece ne kadar güç size ücretsiz kutunun dışında olsun
PHP gibi bir dil ile.
Eğer yoksa şeyler Kendinizi uygulamak.
>> Peki, biz, Pazartesi $ _GET gördüm hangi bir süper küresel olduğunu,
PHP küresel için hangi konuşmak sadece bir Her yerden erişebileceğiniz değişken.
Ve _GET dolar içeride ne var?
Bu içinde neler var görüyoruz ki superglobal?
Şüphesiz istatistiksel olarak en az bir kişi bilir.
Ne _GET dolar içeride?
Evet?
>> İZLEYİCİ: Bu değişkenler var Eğer sorgu dizesi koymak.
>> DAVID J. MALAN: Mükemmel.
Bu değişkenler var Sorgu dizesi koymak.
Yani, bizim eski örnekte Biz ne zaman Google'a reimplementing
Bir URL, ve sonra soru işareti, hangi HTTP başlangıcını demarcates
parametreler, o zaman eşit q vardı şey, q kediler eşittir gibi,
otomatik içeri ne gitmek istiyorum Sizin için süper küresel o $ _GET ve,
PHP, çünkü, Q'nun bir anahtardır ve kedilerin bunların değeri.
>> Diğer bir deyişle, $ _GET ve hepsinde bunlar ilişkisel diziler,
türlü hash tabloları, o mağaza anahtarları ve değerleri.
Şimdi, geri pset5 içinde, karma tablo hayata olabilir,
ya sen olabilir deneyin Gerçekten, hayata geçirdik
etkin bir şekilde ilişkisel oldu Dizi, bir veri yapısı
böylece sen ilişkilendirebilirsiniz değerlere sahip tuşları.
>> Ancak pset5 içinde, değerler önemsiz olmuştur.
değeri esas doğru veya yanlış oldu.
Sözlükte kelime mi?
Yani, ne zaman elma gibi bir kelime karma elma sözlükte olup olmadığını görmek için,
sizin kontrol fonksiyonu muhtemelen doğru veya yanlış döndü.
Bu nedenle, etkili biçimde var: değeri geri alıyoruz.
>> Ama biz Pazartesi günü gördüm kısaca, kesinlikle can
daha ilginç ilişkilendirmek Sadece doğru veya yanlış daha değerler
elma gibi tuşları ile.
Sen aslında bir geri dönebilirler keyfi dize, ve gerçekten,
bu ne $ _GET ve bu var Diğer değişkenler yapalım.
>> Peki $ _POST, ruhu benzer ancak posta yoluyla bir formu göndermek eğer,
bu farklı bir HTTP yöntemi Kredi kartları gibi şeyler için kullanılır,
ve özel bilgi ve hatta fotoğraf gibi ikili bilgi,
bu şeyler $ _POST içinde bitirmek.
Ve aslında dosyalar için jpegler ve etajer gibi,
Hatta değil başka var Burada aynı zamanda $ _FILES denir.
>> Peki, sunucu biz de üzerinde durmayacağız çok, ama size erişim sağlar
hakkında alt düzey ayrıntıları sıralamak Kullandığınız sunucu kendisi.
Çerez ve oturum olsa da, biz etkili şimdi göreceğiz.
son biz uygulamak için kullanmak ne Bir alışveriş sepeti kavramı.
Bir süper basit bir, ama geri çağırma biz, burada bu örnek vardı
kaç kez size sayma daha önce bu sayfayı ziyaret etmişti.
>> Ama bugün, sadece bakmak yerine Bunun etkisi, en yukarı açalım
Chrome'un Müfettiş, hangi genellikle yapabilirsiniz
Sağ tıklayarak veya Kontrolü yapmak herhangi bir web sayfasında tıklayarak,
ve ardından elemanı kontrol seçin.
Ya da menüler arasında gidebilirsiniz Biz pset6 spec olarak açıklayın.
Ve ben Ağ sekmesine gidiyorum Burada, ve bir an için atalım
Var HTTP trafiği ileri ve geri gidiyor.
>> Beni ilk devam edelim ve net Chrome'un önbellek.
Yani sizin bazı tanıdık olabilir zaten bu teknikle,
ve biz bunu kullanmak için gidiyoruz Burada hata ayıklama amacıyla.
Şimdi bilgisayar olarak Bilim adamları başlatmak için gidiyoruz
hata ayıklama için yapıyorum amaçlar, burada
Biz önbelleği temizlemek olacak, tipik olarak, bu yüzden biz
çerezler denilen şeylerin kurtulabilirsiniz.
Yani muhtemelen genellikle bilginiz ne kurabiye azından, ya da
onlar var, ama ne Bunlardan anlayış,
sadece bir kullanıcı olarak bilgisayarlar, bir çerez nedir?
Evet.
>> İZLEYİCİ: Biraz, of-- iyi değil bilgisayar bilimleri bir dönemde biraz.
Bu verilerin bir parçası olduğunu bir Web sitesi için size gönderir
size istatistiklerini kaydetmek mümkün.
DAVID J. MALAN: Tamam, iyi.
Yani veri parçası olduğunu bir Sunucu, bilgisayarınıza koyar
ve o da hatta genelleme izin daha fazla, o anahtar value-- iyi olduğunu,
Bu daha hassas oluyor.
Bu bir parçasıdır bilgi, veri parçasıdır,
Bir sunucu mümkün olduğunu Bilgisayarınızda koymak
ve çok sık, sunucu yapar Bu kim hatırlamak şekilde.
Örneğin, oran Yani muhtemelen konum vardır
Facebook gibi sitelerde oturum, veya Gmail veya diğerleri, daha önce
ve ile oturum senin kullanıcı adı ve şifre,
ve bundan sonra, bir dizi dakika veya saat veya hatta gün,
Sunucu hatırlar sen, aslında, giriş.
Şimdi, nasıl gerçekten oluyor ki?
Kesinlikle yeniden yazmak değil, çünkü Kullanıcı adınızı ve şifrenizi her zaman
Eğer gitmek Facebook'ta farklı bir sayfa.
Bu yüzden çıkıyor Çerezler yanıt veriyor.
>> Siz aklınıza gelebilecek bir çerez, tür, bir dijital el gibi
Bir eğlence olsun olabilir damga Park veya bir kulüp, aslında
Burada olmuştur gösterir önce, ve zaten var
için, fedai için kimliğinizi gösterilen Örneğin, ve o kulüp veya Park
Şimdi size farz gerekir önceden doğrulanmış olması.
Zaten onun tarafından tespit edilmiştir.
>> Akılda So, burada sayaç kadar açalım.
Ben sadece yaptım, beni önde gidelim, ve benim kurabiye tüm temizleyin.
Ve şimdi ne yapacağım olduğunu Sadece iyi ölçmek için, Shift tuşunu basılı tutun,
ve zorla sayfayı yeniden yükleyin.
Sadece emin Shift hiçbir şey önbelleğe alır.
Ve burada istek var Bu geri ve ileri gitti.
Yani burada biz bir isteği var, ve izin Beni buraya yakınlaştırmak ve bu bir sürü
için çeşit ilginç ayrıntılar olduğunu tarayıcı otomatik vardır artık
gönderdi, ama en Görüntüle tıklayın edelim Kaynak ham başlıklarını görmek için.
>> Ve zaten pset6 içine daldı ettik, kesinlikle şeyler tanımak gerekir
Bu gibi ve belki bazı Burada bu hatların,
ama ne bugün için daha ilginç Ben değil, istek gidin eğer
ancak sözde tepki, Bu çizgi muhtemelen tanıdık görünüyor.
Bu iyi bir şey Eğer 200 OK görünce.
Görünüşe göre bu sunucu üzerinde tarih ve saat
ve malzeme bir demet var.
Ah, bu ilginç.
>> Eğer her kullandığınızda çıkıyor En azından bu sunucuda PHP,
Sunucu çıkarır ne PHP sürümü kullanıyorsanız.
Güvenlik için aslında hangi, amaçları, iyi bir şey değil.
Ama, biz bu geri geleceğim belki başka bir zaman.
Ama şimdi bu, sulu çizgi bugün ve biz, kısaca bunlardan bazılarını gördüm
Biz dürttü zaman Facebook ile düşünüyorum o zaman Denetçisi'nde çevresinde
set çerez ekim budur bilgi o küçük parça
bilgisayarınıza.
>> Bu bir HTTP başlığı ise Bu etkili olduğunu
Tarayıcınızı söylüyorum, Krom, IE, ne olursa olsun,
Kullanıcı en hey tarayıcı mağaza Sabit disk ya da kullanıcının RAM içinde,
a, PHPSESSID adı verilen bir anahtar oturum kimliği için steno gösterim,
ve o bir değer vermek 0vlk8t, nokta, nokta, nokta.
Gerçekten uzun sözde rastgele alfanümerik dize.
Bu, sadece gerçekten büyük sayı ama bu harfler ve sayılar ile kodlanmış oluyor
bu yüzden boyutu olabilir yalnız sayılar daha büyük.
Ve sonra, bu arada, Yol = / o Sadece bu çerez olması gerektiği anlamına gelir
ile ilişkili web sitesinin tamamı,
Sadece özel olmayan sayfa her şey.
Yani bu sanal el damgası.
Bu, sunucuya, Facebook sanki bulunuyor ya bizim durumumuzda cihaz içinde,
kelimenin tam anlamıyla yazılı 0vlk8t vardır ve benzeri, elinizin üstünde.
, Ne sunucu en dikkat yapmıyor o değil ise
Kesinlikle, benim adınızı depolama Şifremi saklamak değil.
>> Bunun yerine, bu gibi görünmektedir sözde rastgele bilgileri depolamak
hiç kimse tahmin böylece Benim el damgası nedir.
Sunucu tarafında, Bu arada, sunucu
Muhtemelen, hatırlamak için gidiyor Bir veritabanı veya bir şey,
Bu kullanıcı, gelecekte kim 0vlk8t bir el damgası sunar, nokta
nokta, bu ile ilişkili olmalıdır dot Özellikle alışveriş sepeti, tabiri caizse.
Başka bir deyişle, şimdi gidersem Buraya ve bu sayfayı yeniden yükleyin,
Sunucu biliyor nasıl Ben bir kez ziyaret ettiğini?
Ben tekrar yapmak durumunda >> Ya, nasıl sunucu yapar Ben bunu iki kez ziyaret ettik biliyor musun?
Peki ben bu aşağı giderseniz En son isteği, hangi
Ben yolladım şimdi üçüncü toplam, şimdi benim isteği fark.
Hala bu var Burada, aynı yukarı talep
daha önce olduğu gibi, yine bir sürü var Daha önce olduğu gibi göz ardı ettik şeyler,
ama son başlık, bu Zaman, ben daha önce burada oldum çünkü,
bir sunum Bu sanal el damgası.
>> Burada bu hat Mademki, set değil çerez ancak çerez kolon PHPSESSI = 0vlk8t,
bu sadece benim tarayıcı otomatik var Böylece bu el damgası sunumu
Şimdi sunucu, bu fark en kısa sürede, ooh, bu kullanıcı 0vlk8t nokta ise, nokta, nokta,
Ben şimdi o kim hatırlayabilir ve o kullanıcı ile reassociate ne olursa olsun
bilgiler istiyorum, ve tüm Bu bilgiler, sizin tarafınızdan saklanabilir
$ _SESSION programcı.
Gerçek kadar hızlı açarsanız >> Yani, açık olmak gedit bu gerçek dosya, counter.php,
Benim yerel ana kamu dizinde daha önce olduğu gibi, aslında, fark,
Ben sonuçta saklanması ediyorum $ _SESSION Alıntı unquote "karşı,"
Bir önceki sayaç değeri olan Ben buraya biz o bu hatlardan olsun
Son kez artı bir baktı.
Kaputun altında Yani, tüm çerezleri Olarak.
Bu dijital sadece sıralama var el damgası, ileri ve geri gidiyor
ve açıkçası Chrome adlı açarsanız Herhangi bir web sitesinde Müfettiş
Eğer, bugün ziyaret süper yüksek olasılık,
Eğer, belki bir tane görmek için gidiyoruz belki yarım düzine kurabiye
Sizin tarafınızdan anılıyor.
>> Ve daha kötüsü, eğer bu Web sitesi ziyaret ettiğiniz
Tüm reklamlar, sahip olduğu , kesinlikle bugün oldukça yaygındır
ve bu reklamlar geliyor eğer bazı merkezi parti, birinden
Google AdWords veya benzeri gibi onlar kendi ürünlerimizden birini arayın
veya bu gibi başka satıcılar bu reklamları satmak, ilginç ne,
ve biraz ne açıkçası endişe verici, HTTP nasıl çalıştığı hakkında,
Eğer varsa bir reklam gömülü olduğunu Facebook.com ve Google.com olarak,
ve Harvard.edu, herhangi bir sayıda sitesi, bu nedenle bu tür var:
hizmet veren bir orta adam var ki bu web sitelerinin her üç reklamlar kadar,
o çıkıyor Çerezler etki başı.
>> Eğer var ise bir reklam gelen Farklı web sitelerinde aynı şirket,
Bu şirketin etkin bir kim izleyebilirsiniz Eğer bu web sitelerinin tamamında vardır.
Harvard bilmiyor olabilir Eğer Facebook ziyaret ediyoruz.
Facebook bilmiyor olabilir ve Eğer Harvard ziyaret ediyoruz.
Ama ne olursa olsun reklam hizmeti Bu etki ise onlar kullanıyorsanız
Her iki Harvard.edu ağ-içinde mevcut sayfaları ve web sayfalarını Facebook.com,
Bu orta adam kesinlikle kim bilir Bu çerezler paylaşılan nedeniyle
arasında, daha doğrusu için O aracı sözde.
>> Yani biz bu geri geleceğiz bunların güvenlik etkileri,
ama çok fazla bilgi var her zaman senin hakkında depolanan sen
en herhangi bir web sayfasını ziyaret edin İnternet ve gerçekten
Bu çok basit bir mekanizma azaltır.
Ne olursa, o zaman, olur süper paranoyak değilsin
ve Chrome veya IE içine gitmeye karar veya ne olursa olsun ve çerezleri kapatın?
Ne oluyor?
Evet?
Sen bu hakkı yaptık gerçekten--?
TAMAM MI.
Hayır, devam et.
>> İZLEYİCİ: Bazı web siteleri yok Onsuz bir işlev Facebook gibi.
DAVID J. MALAN: Evet!
Yani bazı web siteleri Sadece çalışmayı durdurur.
Ve çoğu web sitelerinde bu gün Bu temelde, kurabiye güveniyor
onlar oturum varsa özellikle içinde, onlar sadece kırmak için gidiyoruz.
Düşünün Çünkü Alternatif, eğer web sitesi
, sen hatırlama yolu vardır ve bu nedenle web tarayıcı değil
Her HTTP ile temsil Bu el damga talebi,
etkin bir şekilde web sitesi Facebook'un gitmesinin gibi
size soracak zorunda Her lanetlemek zaman giriş
Eğer sayfaları değiştirmek, ya da bir bağlantıyı tıklatın hangi özellikle iyi bir kullanıcı kesinlikle değil
deneyim.
>> Yani orada da olduğunu ticaret off arasında.
Fazla uzatmadan Yani, atalım web programlama ile bu verilen,
PHP gibi dillerde, hatırlıyor olabilir Sorunun böyle bilgiler set
Kendi uygulamak yedi Satın almak E * Trade-benzeri web sitesi
ve stokları satmak, tam olarak hatırlayacağım ne kullanıcı satın aldı ve sattı
ve o kim Bu oturumun yoluyla.
Ama biz ihtiyacımız olacak E-posta daha meraklısı yolu
etrafında bilgiyi tutmaya başlaması.
Doğru?
>> Pazartesi günü, biz Frosh anlık konuştuk ve nasıl web sitesinin sürümünde biri,
yıl önce, yaptığımız tüm oldu kim Proctor e-posta
intramural spor sorumlu Program, isim ve cinsiyet,
ve bir kaptan olduğunu olsun ya da olmasın, ve birinin yurt kim
intramural spor için kayıt.
Yani kötü değil, ama o ya da sonra o kendi e-posta yoluyla trol vardı,
Bir elektronik tablo veya bir şey gibi yapmak Bu, her şeyi organize tutmak için.
Yani kesinlikle biz programcılar olarak Bu proctor için bunu yapabilirsiniz.
Ve böylece SQL girin, Structured Query Language,
güzel bakmak için gidiyor hangi C ve PHP hem de farklı,
ve çok fazla el dalış olacak PHP ve problem, aynı zamanda yedi ancak SQL set
veya SQL, bu bir dil olduğunu Bir veritabanına konuşmak için kullanabilirsiniz.
>> Ama bir veritabanı ne?
Peki bir düşün Veritabanı, en azından şimdilik,
tıpkı bir Excel dosyası gibi olmak, ya da Mac kullanıcı numaraları dosya iseniz,
veya bir Google Apps iseniz Kullanıcı bir Google elektronik tablo,
etkin bir veritabanı var, ya da gerçekten özellikle ilişkisel veritabanı.
Bir ilişkisel veritabanı sadece bir satır ve sütunları olan bir şey,
ve her türlü saklayabilirsiniz Bu satır veya sütun bilgileri.
>> Peki SQL hakkında güzel ve Gerçek veritabanları hakkında, sadece
elektronik tablolar veya Google elektronik tablolar, Bir dil kullanabilirsiniz olduğunu
Aslında sorgularını yürütmek için veri verileri kaldırmak için eklemek,
Hatta, veri aramak için En önemlisi, ve size
oldukça elle kullanmak zorunda değilsiniz genellikle Google olabilir gibi
Böyle elektronik tablo.
SQL Yani >> bir demet var temel ifadeler veya adet
işlevsellik yerleşik.
Bunların dışında daha birçok var, ancak büyük bir mesafe gidebilirsiniz
sadece bilerek denilen bu dil
SQL en az dört sahiptir Eğer kaldıraç ifadeleri.
>> Verileri kaldırmak için, Sil, Satır eklemek için, ekleme,
Güncelleştirme, değiştirmek için satır ve Seçme,
satırları geri almak için ve Bu gerçekten SQL ne var.
O yüzden satır tamamen çalışır Eklemek veya kaldırma zaman,
veya güncelleme veya sen ne seçin sözde sonuç kümesi olarak geri alma,
satır bir dizi gibi.
Bir tablodan satır bir demet.
>> Yani geri gün, ve hatta bu gün,
Eğer etkileşim kurabilir Komut satırını kullanarak veritabanı,
ancak kullanmak için özellikle eğlenceli değil Bu siyah ve beyaz tarzı penceresi
ve aslında komutları yürütmek ve veritabanı etrafında sokmak.
Bir grafik kullanıcı arayüzü, veya GUI, , belki çok daha tercih edilir
ve bu yüzden tavsiye aracı ve Cihazın sizin için önceden yüklenmiş
phpMyAdmin'in olarak adlandırılır.
O tam bir tesadüf Bu şeyin adı, o PHP vardır
sadece insanların anlamına gelir kim kendini bu programı yazdı
PHP yazdı.
>> Ama yönetme konusunda sonuçta var Bir MYSQL sunucusu gibi bir veritabanı sunucusu,
Eğer sahip olabilir, size gibi CS50 cihazda yapmak.
Bu yüzden daha fazla detay burada daha var biz bugün umurumda gerekir
ama ne anahtar solda olduğunu taraftaki veritabanlarının bir listesi
Bilgisayarınızda olması, senin CS50 cihaz üzerinde,
veya nihai projeler geldiğini size olabilir Üçüncü parti, bir şirketin var
Web sitesi veya web sunucusu, bu Eğer boşluk ödeme olabilir.
Yani sol olduğunu veri tabanları, tek bir bunlardan
Gelecek ödünç pset7 olduğunu üzerine daha sonra hafta payar ve
Bir var orada fark sekmelerin demet biri
veritabanları, SQL, durumu, bir benzeri kullanıcılar, ihracat ve.
Yani uzun gidebilirsiniz şekilde sadece gerçekleştirerek
kullanıcı arayüzü en Üst sol sütunda ise
ve oraya doğru üstünde.
Yani biz aslında bu ne yapabilirim?
Peki, bir yaratma başlayalım bilgi bit olarak izler.
>> Aşağıdaki durumda varsayalım Sadece bir kaç gün olacak gibi,
Bir uygulamak istiyorum CS50 Finans adlandırılan web sitesi,
ve bu web sitesi satın sağlar unquote alıntı ve stokları satmak.
Ve anlamaya gidiyor Bu hisse senetlerinin fiyat,
sonuçta göreceğiniz gibi, Yahoo Finance konuşarak.
Hangi harika, ücretsiz bir hizmeti vardır Bir hisse senedi geçmek sayede
Google için GOOG ve bunun gibi olacak Google'ın mevcut stok size geri vermek
Geçmişte içinde fiyat birkaç dakika en azından.
>> Peki, sonuçta, bu kullanacağız kullanıcı için rol yapmak
satın almak ve gerçek satmak Sanal para kullanarak stokları,
ama çok ilk şey Kullanıcı görmek için gidiyor
onlara sorar bu giriş ekranı kendi kullanıcı adı ve şifre.
Ve böylece, ilk bir pset7 sizin için zorluklar
arka uç uygulamak olacak veritabanı, elektronik tablo eğer sen,
Bu depolamak için gidiyor Kullanıcıların adları ve şifreleri
ve sonuçta onlar kendi ne stokları, ve kaç ve ne kadar para onlar,
bu nedenle diğer şeylerin bir demet içinde diğer tabloları veya elektronik tablolar.
>> Yani nasıl bu bir göz atalım İlk bakışta görünebilir.
Ben geri gidiyorum Ben ve cihaz
Burada bu URL'ye gidecek phpMyAdmin localhost / phpmyadmin
ve bunu görürsünüz Bir arabirim beni alır
Tam olarak gördüğümüz gibi ekran görüntüsü, ve burada ben
Ek veritabanı var Bugün için çağırdı ders
ve beni önde gidelim İlk ve pset7 tıklayın.
>> Ben birkaç seçeneğiniz var gibi görünüyor, Yeni için bir tane, yeni bir tablo oluşturmak için,
kullanıcılara ve bir bağlantı, hangi Ben zaten oluşturulmuş bir tablodur.
Yani bir tablo nedir?
Excel kullanılan Yani eğer önce ve yasiyorsaniz
Kullanılmış sayılar veya Google Tablolar, bir pencere açmak
ve bir sürü olsun satır ve sütun,
ama sonra genellikle çalışma sayfalarını var alt, ya da ayrı sekmelerde boyunca.
Her düşünebilirsiniz bir tablo olarak çalışma
böylece veri tabanı, sonuçta, bir bir ya da daha fazla tablo kombinasyonu, tek bir
ya da daha fazla çalışma sayfası içinde Normal bir elektronik tablo dünya.
Bu yüzden bana öncesinde gidelim ve Bu çalışma sayfasında tıklayın
bir önceden hazırlanmış olduğu, adı verilen kullanıcılar da bilinir
Veritabanı tablo.
Ve ben burada aşağı doğru ilerleyin eğer, Bana biraz uzaklaştırmak izin,
Bu phpMyAdmin anlatıyor ne Bize şu anda bu tablonun içinde.
İlk başta biraz kafa karıştırıcı bakışta UI değil çünkü
dünyanın en güzel şey, ama ne ilginç burada bu parçasıdır.
Kimlik, adınızı ve karma.
>> Önceden ve elle olacak Bu sorun, yedi set
size bir süper içeren bir dosyayı vermek küçük bir veritabanı tablo, aslında ödünç
korsan baskısından sorunu, iki set
ki içinde altı sıra vardır.
Tüm Belinda için bir yol aşağı Zamyla için birine,
ve bu sol fark adları, biri gibi benzersiz kimlikleri
iki, üç, dört, beş, altı, tam sayılar, ve daha sonra sağa sağlamalarının vardır.
>> Ve oran olup, eğer, sen yapmadın Hacker baskı sorunu, iki set
ama bir karma şifreli gibi sadece bir Birkaç uyarılar ile şifre.
Ve böylece, sen burada ne olduğunu görmek altı şifreli versiyonları
Sorunun bizim şifreleri ikinin korsan baskı ayarlayın.
Şimdi sola sadece bazı GUI şeyler, Bu satır düzenleme bu satır kopyalama,
Bu satır silme.
>> Ama ne ilginç Şimdi şudur.
Aslında başlayabilirsiniz Bu tablo ile deneme.
Yani gidip SQL tıklarsanız sekmesi, ben bu büyük metin kutusu olsun.
Ve bu biz gidiyoruz nasıl değil aslında kod yazarken bunu.
Açık olmak gerekirse, phpMyAdmin bu sadece bir araçtır
Bize veritabanı etrafında kurcalamak izin vermeyeceğim ve bize sorgu ile deneme sağlar.
>> Yani örneğin, varsayalım Ben tam bu yürütmek.
Bunlardan biri Seç, anahtar kelimeler Ben, daha önce, yıldız sözü
hangi tüm temsil Bir tablodaki sütunlar.
Hangi tablo mı?
Peki, kullanıcılar.
Ve haber bu var SQL garip kongre
nerede aslında kullanmak Lütfen, tipik haliyle, kene
Tek değil tırnak ve çift tırnak değil Eğer tablo isimleri hakkında konuşmak,
böylece geri alıntı üzerindeki şeydir Klavyenizin sol üst çoğu
fazladır.
>> Bu yüzden bana şimdi devam edelim ve sadece yalnız bırakmak
ve aşağı ilerleyin ve tıklayın Git, biz konum aslında aynı şeyi göreceğiz.
Biz sadece bir SQL sorgusu idam var seçeneğini herşey yıldızı söyleyerek
tablo kullanıcıları çağırdı, ve ne geri almak bu.
Sonuçta, biz mümkün olacak kodunda aynı şeyi yapmak,
ama şimdi tüm ben istedim Benim tarayıcıda görmek olduğunu yoktur.
Peki en birşeyler yapalım biraz farklı.
Beni SQL sekmesine geri dönelim ve Sadece ne diyelim?
Zamyla onun tüm kaybetti para, ve bu nedenle, bu
Bizim için zaman bir kullanıcı olarak onu silmek için.
O artık giriş ediyor.
>> Yani from-- silmek demek için gidiyorum iyi, harf korumak
tutarlılık için, silmek nerede kullanıcılardan.
Ve böylece, bu olabilir sayıda dayanak ya da bu
Benim deyimi sonunda elemeleri, Nerede ve nasıl Zamyla silebilir miyim?
Onun adı Zamyla tarafından, bu yüzden Kolon bir tek sütun
adlı, bu nedenle burada name = "Zamyla" oldu.
Ve burada ben çift kullanmak tırnak veya tek tırnak,
Sadece geri ne zaman keneler kullanın Örneğin, isimler hakkında konuşuyor,
tablo veya alanları.
Ve beni burada git tıklayın verelim.
Ve şimdi, web sayfası Biraz gergin olmak.
>> Ya, gerçekten silmek yürütmek istiyorum adı Zamyla eşittir kullanıcılardan?
Evet.
Yani şimdi, benim tabloya geri giderseniz tıklayarak kullanıcılar tarafından, Hm dikkat edin.
Ben goofed.
Ve aslında, ben tür Çok hızlı uzak tıklanan
bile görmedim belki de kırmızı hata iletisi.
Neyi yanlış yaptım?
HEDEF KİTLE: Sen gerek yoktu Adını yararlanmak için.
DAVID J. MALAN: Evet ben onun ismini büyük harfle
ama onu ben aslında kullanıcı adı; Sağ, bir kaç hata yaptı?
Bir, onun kullanıcı adı zamyla, küçük Z,
ve sütun adı adı olan, değil isim, bu yüzden yine bu yapalım.
Bana devam edelim ve kullanıcılar nerede silmek
Kullanıcı adınızı alıntı unquote "Zamyla" eşittir.
Tamam?
Yani bu biraz daha iyi görünüyor, let Beni aşağı ilerleyin gidin ve Git düğmesini tıklatın.
Hala gidiyor Emin olmak için bana bağırma.
Ben Evet 'i tıklatın, ve şimdi gördüğümüz Açıkçası bu gerçekten oldu
hızlı, daha az bir İkinci kesinlikle, bu
Tam idam var sorgu.
Onaylamak için, beni kullanıcıları tıklayın izin ve gerçekten şimdi Zamyla gitti.
Şimdi tam tersini yapalım.
Gabe istiyor varsayalım web sitesi için kayıt.
SQL sorgusu nedir, ne Ben Gabe eklemek için yazabilirsiniz komut?
Peki oldukça basittir.
Kullanıcılar içine yerleştirin, ve şimdi biraz şifreli alır.
Ben, sunucu, belirtmek gerekir ne atamak istediğiniz alanlar.
Ben gerçekten umurumda değil ne Gabe kimliği sayı, yani o atlamak için gidiyorum.
Ben bunun yerine söylemek için gidiyorum Kullanıcı adınızı, karma, ve sonra
değerler Ben koymak istiyorum Gabe olmak için orada olacak.
Ve sonra onun karma, bilmiyorum.
Şimdi Yani, ben gidiyorum yapmak için büyük bir şekilde bırakıyorum.
Biz geri geleceğiz Sorun set o
aslında bunu ne şekilde spec.
>> Peki fark, yine, sözdizimi.
Tablo adı içine, daha sonra bir ekleme alanların parantez listesi,
sütunlar eklemek istediğiniz için değerler, ve sonra sadece
Aynı kesin sipariş için sol Eklemek istediğiniz değerlerin doğru,
ve sırf sarma oluyor Metin biraz uzun.
Yani şimdi bana Git tıklayın verelim.
Bir satır eklenir.
Ve şimdi ben geri gitmek Kullanıcıların, ne ilginç
Sadece gabe artık değildir olmasıdır Veritabanı, onun kimliği görünüşte ne?
>> Peki yedi bulunuyor.
Neden ben eklemek vermedi yedi zaman?
Bu yüzden de, biri özellikleri veritabanı olsun.
Bir çok işlevselliği yerleşik.
Bu zaman çıkıyor Bu tabloyu yarattı,
Ben otomatik bulunuyor önceden Böyle bir şekilde bir kimlik atamak
bu artışlarla söyledi.
Yani hiç dürttü ettik ve ne Facebook ID baktı
sayı, gerçekten değil bu gün Bir şey, bir API olarak, ancak Facebook yapmak
Uygulama Programlama Arabirimi, bu sayede geri alabilirsiniz
veri bütün bir demet hakkında Kendiniz, arkadaşlarınız hakkında,
ve bağlantıları.
Ve ne kullanılan tür olmak serin, geri gün,
bakmak için ne, sizin Facebook ID numarası oldu.
Mark Zuckerberg kıyafetleri, Örneğin, üçtür
O sitenin yazarı beri.
Hikayeye gibi Ve o yarattı İki test hesapları, kullanıcıların bir ve iki,
hangi o silinir.
Ve böylece, Zuck gibi onun kullanıcı adı Facebook, kimlik numarası üçtür
ve hepimiz çok sayıda var daha büyük üç bugünlerde.
Aslında, bir noktada Facebook uzağa taşındı
Hatta bir int, kullanarak hangi 32-bit değeri kullanarak, bir
Bir sonraki adım, aslında uzun uzun bu yüzden
onlar karşılamak olabilir kayıt da daha fazla kullanıcı.
Yani bir eğlenceli küçük tarihsel gerçek.
>> Yani bu sadece temel sözdizimi hangi
Biz bir çift yürütmek olabilir sorgular, ama biz aslında can
SQL ile bir demet daha fazla şeyler yapmak.
Ve sen, sonuçta, göreceksiniz problem yedi set
Eğer bir yapmak zorunda olduğu tasarım kararlarının sayısı,
aralarında olacak hangi veri türlerini kullanmak.
Yani sadece C gibi, veri vardır Bir veritabanında türleri, MySQL gibi,
ve veri türleri seçmek zorunda Burada bu alanları içerir.
Char, varchar, Orta, Büyük int, ondalık ve tarih saat ve diğerleri.
Yani aslında bu yapalım.
En we did iddia edelim el, bu kullanıcının tablo
ve ben için, go ahead ve oluşturmanıza izin kendimi, derslerde database--
Aslında bana go ahead ve silmenize izin Ben zaten burada var tablo
Böylece biz aslında bu oluşturabilirsiniz.
Whoops.
Ben bu damla gidiyorum masa, ve şimdi ben değilim
tekrar gidecek Burada veritabanını ders,
Ben bir tablo oluşturmak için gidiyorum denilen kullanıcıları ve hadi
sadece üç sütun yapmak Başlangıçta ve Git'i tıklatın.
>> Şimdi, büyük bir kısmı, Yine, bu sadece bir
denilen bu grafik aracını kullanarak phpMyAdmin, ve şimdi ne yapıyoruz
Bir tablo yaratıyor.
Yani bu dosya gibi oluyor, Yeni, ve yeni bir Excel dosyası oluşturarak.
Bu yüzden bana bir kaç soruyor sorular, gelen, soldan sağa
İlk sütunda adı ne, ve daha sonra, ikinci sütun adı,
ve üçte adı.
Yani bu yeniden edelim.
Kimlik ve ardından kullanıcı adı, bir oldu ve daha sonra karma başka oldu.
Peki veri türü olmalıdır ID gibi bir alan için şimdi olacak?
>> İşte veri türleri bütün listesi Bir veritabanında sizin için kullanılabilir,
ve şimdi Sadece int ile gidelim.
32-bit değeri, I do not Ben gerçekçi düşünüyorum
fazla 4 milyar olacak Hesabımda kullanıcılar, benim hizmet,
bu yüzden hareketli tutmak için gidiyorum Bir sonraki soruya.
Ben belirtmek için gitmiyorum uzunluğu veya değerler,
bu geçerli değil Burada int per se.
Ve şimdi ben, belirtebilirsiniz görünüşe göre, bir varsayılan
Ben belirtmek için gitmiyorum değer.
Bir harmanlama, ben ne olduğunu bilmiyorum.
Bir özellik.
Şimdi biz aslında yapmak Bir tasarım kararı var.
Yani hepsi değil, burada bir kaç alanları var hangi uygulanabilir, ancak imzasız
Sadece ne demektir?
O int olmalı?
Sadece negatif olmayan.
Yani yukarı 0 olmak zorunda.
Hayır, çünkü kontrol etmek için gitmiyorum Her kullanıcı bir kimlik istiyorum,
null olamaz.
Ve sonra, biz biraz daha almak Böyle ilginç tasarım kararları.
Biz, bir an bu geri geleceğiz veritabanı ama ne başka özelliği
, size söyleyebilirim ki veritabanı sunucusu devam
ve kendinizi optimize, sizin yanınızdaki RAM ve sabit disk alanı,
Bu seçer, ve ekler ve böylece siler ve güncellemeler gerçekten çok hızlı.
Pset5 ile kontrast.
>> Bir şey aramak istedim senin karma tablo, hangi
Eğer bir veritabanı olarak düşünüyorum Tüm yapmak zorunda kim
senin karma tablo hızlı yapmak için çalışıyoruz.
Bu, tabii ki, gibi değil.
Doğru?
Sen her zaman cezası koymak zorunda Bir hash fonksiyonu elde şeyler ayarlama
Doğru, dışarı nasıl bulmaktan Birçok kovalar var.
>> Ama yine güzel ne Bir veritabanı
sadece tüm punt diğer insanlara bu
kim bu düşünce Ne sizin için içinden ve
Ben burada altında söylemek için gidiyorum endeks benim kimlik alanı olduğunu
birincil yolu olacak Bu veritabanında kullanıcıları tanımlamak.
Bence gitmiyorum Zamyla olarak Zamyla bölgesinin,
Ben düşünmeye gidiyorum Onu sayısı 6 olarak.
>> Neden, belki de, o kadar iyi olduğunu sezgisel ve model düşünmek
kullanarak bireysel her satır yerine bir şey bir dizi
Zamyla gibi bir dize gibi Gabe veya hala uzun bir dize ya da?
Evet?
>> İZLEYİCİ: Bir kimlik tektir?
DAVID J. MALAN: Tekrar söyle?
HEDEF KİTLE: Bir kimlik tektir?
David J. MALAN: bir kimlik özeldir ancak suppose--
Genel olarak duruma göre adları ile, varsayalım
Ayrıca sadece olabilir bahsedilen bir Dünyada Zamyla ve sadece bir gabe.
Ben tekliğini dayatabildiğinı Ben isteseydim, çok dizeleri sınırlandırılmasına.
Yani kötü bir düşünce.
>> İZLEYİCİ: Daha güvenli.
>> DAVID J. MALAN: Daha güvenli, neden?
HEDEF KİTLE: söyleyemem hangi Kullanıcı gibi olan.
DAVID J. MALAN: Tamam, sen hangi kullanıcının söyleyemem
yani bir var hangi buna gizlilik yönü,
özellikle kimlikleri belki URL'ler görünen.
Yani emin ki, işin tür olabilir de.
Diğer düşünceler?
Evet?
>> İZLEYİCİ: Bu kadar kolay Bir int işlemleri gerçekleştirmek.
DAVID J. MALAN: Gerçek vurucu.
Bu, sadece daha verimli veya bilgisayar için daha kolay,
Bir tamsayı işlemleri gerçekleştirmek için.
Doğru?
Bir int garantilidir 32-bit olması Zamyla ise
Gabriel bir kaç karakter uzunluğunda , birkaç karakter uzunluğunda
Davenport gerçekten uzun, ve bu yüzden var kullanmak için özellikle verimli
dizeleri değerleri karşılaştırmak ve bakmak alanları, ve güncelleme alanları için,
Kurtulmak eğer Sadece bir tamsayı ile.
Sadece 32 bit.
Adları Yani, çok, bu yolu, benzersiz olması gerekmez,
onlar muhtemelen gerektiği rağmen olabilir, ve hatta bu yolla çok
Bir kullanıcı için izin olabilir onun adını değiştirin.
>> Peki şimdi bu bırakalım kullanıcı tanımlama birincil yolu.
Bu veritabanını anlatıyor devam edin ve kendinizi optimize
böylece kimliği o bakmak ups süper hızlı.
AI, korkunç sadece adında Otomatik Artım demektir,
ve bu çek Biz kontrol etmeniz gerekir kutusu
ID alanına belirtmek için benim için otomatik olarak güncellenir,
ve sonra ben gidiyorum Burada sağa ilerleyin
ve açıkçası ben gerçekten ilgilenmiyorum Bu alanlardan herhangi daha fazla.
Kesinlikle bugün.
>> Yani, buraya gitmek için gidiyorum İlk kolonuna
Ben adı belirtmeniz gerekir ve karma ve atalım
üzerinde en az odak noktasında Şimdi ikinci bir.
Int muhtemelen doğru çağrı değil, peki belki daha mantıklı?
>> İZLEYİCİ: Metin.
DAVID J. MALAN: Tekrar söyle?
HEDEF KİTLE: Metin.
DAVID J. MALAN: Metin?
Tamam, ben metin duydum.
Başka ne?
Biz tür seçimler bir grup var doğada metinsel olduğunu.
Peki ne zaman ve niçin yapmak Bunlardan bazılarını kullanmak?
Karakter Peki, aksine ne olabilir bence, tek bir karakter değildir.
Bu karakter belirli bir sayı.
Bildiğimiz Yani tüm kullanıcı adlarının ki sekiz karakter gibi olmalı,
Eski ortak olmak için kullanılan bilgisayar sistemleri, ben char, söyleyebiliriz
ve sonra ben burada 8 söyleyebiliriz.
Üçüncü sütun haline o zaman Uygulanabilir bir tablo oluştururken.
>> Ama bu tür can sıkıcı bulunuyor Bazı insanlar olabilir, çünkü
uzun bir adı var istiyorum Sekiz karakterden daha,
bazı insanlar isteyebilirsiniz kısa adı var,
Peki neden kendimi taahhüt Belirli bir sayıya?
Neden bir değişken yok karakter sayısı ve sadece
demek ki bir isim maksimum uzunluğu , ben 64 karakterleri gibi, bilmiyorum.
Ben herhangi bir arkadaş düşünemiyorum kim 64 karakterden fazla isimleri uzun olması,
Bu çok kısa olsa bile ve sen-ebil kesinlikle keyfi o kadar tutabilirim.
>> Böylece Varchar bir değişkendir karakter sayısı.
Metin kötü bir içgüdü değil, ve açıkçası bu tür o ne diyor,
ancak bir metin alanı olabilir en az 65,000 bayt gibi.
Yani muhtemelen overkill alan ve aslında, evet, 65.535.
Yani muhtemelen overkill isim, bu yüzden genellikle, çakacağım,
metinsel için varchars ile Çok saha ve karma.
Karma, o çıkıyor, biz yapabiliriz varchar de veya böyle bir şey,
ama biz bugün odak olmaz Orada şifreleme ve sayılar
biz aslında olabilir ki uzunluğu için kullanmak istiyorum.
>> Ama ben sağa gidin verelim.
Sadece bir tane olabilir Bir tablo için birincil göstergesi,
ama ben bunlardan herhangi uygulamak istiyorum, Şimdi, kullanıcı adı, sen söylerdin?
Ne kullanıcı adı gereken bir belirsiz dayalı Bu dört seçenekten anlayışı?
Sadece kendi isimleriyle?
>> İZLEYİCİ: Benzersiz.
>> DAVID J. MALAN: Yani benzersiz, değil mi?
Yani bu sadece olabilir çıkıyor Eğer, önceden, bir veritabanı söyle
Bu birincil yoludur alanları tespit edilmesi.
Ayrıca bu olduğunu söyleyebiliriz benzersiz bir alan olacak.
Bu olacak değil Ben güveniyor şey,
ama ben veritabanı istiyorum esas olarak, eğer durum var
ben hiç kayıt çalıştı Aynı isimde iki kullanıcı,
Veritabanı düz dışarı Bana izin gitmiyor.
Ben bazı ek kod olabilir kadar önler PHP,
ancak veritabanı da sağlayabilirsiniz Bu asla ne olacak ki.
>> Şimdi, gibi bir kenara, özellikle nihai projeler hakkında düşünmek,
zihin indeksi ve tam tutmak Metin aslında oldukça yararlıdır.
Eğer büyük bir veritabanı değil, birlikte varsa onlarca, ancak yüzlerce veya binlerce
alanların hatta milyonlarca yapabilirsiniz Ayrıca peşin veritabanı söylemek
Bu Ben gidiyorum bir alandır Bir çok arama için.
Belki onun adı, sen eğer belki biyo, var
Bir Facebook gibi web sitesi yapma o Kullanıcı en izin paragraflar vardır
Eğer isterseniz kaydedebilir, ve peşin veritabanını söylemek
Ben bu alanda arama için gidiyorum Bir sürü, ama, mutlaka benzersiz değil
Bana bir dizin oluşturmak belirtebilirsiniz.
Ya da, sen de demek yapmamı izin verebilirsiniz Komutanlığı gibi keyfi aramaların tür
veya Control F, senin gibi Bir sözcük işlemci olabilir,
böylece keyfi dizeleri bakmak olabilir Bu alanda ya da alt dizeleri.
Diğer bir deyişle, alıyoruz dönem noktaya
hakkında endişelenmenize gerek yok burada ne kadar etkin şeyleri uygulamak.
Sadece hakkında bilmeniz gerekenler tasarım kararları böylece sen emin olmak için
için doğru araçları kullanarak özellikleri kaldıraç için ticaret
diğer insanların sizin için inşa etmişlerdir.
Yani Özetle, birincil sadece gerektiği bir tane var, sadece bir tane olabilir
ve size işliyorsun şey benzersiz alanları tanımlamak için kullanıyor.
Benzersiz, ruhu sadece benzer ancak Sadece ara sıra kullanmak olabilir,
ancak veritabanı bunu empoze etmek istiyorum.
Endeks sadece preemptively demektir Gelecekte şeyler hızlandırmak
Ben arama böylece Bu alanda şeyler.
Ve sonra tam metin için genellikle paragraflar, ya da deneme, ya da büyük kuruluşlar
nereye metin Ayrıca sahip olmak isteyebilirsiniz
yıldız eşdeğer gibi vahşi kartları.
Sağ.
>> Yani bu tür oldu Aynı anda tüm bir sürü.
Biz damıtmak değil Bakalım Bu özelliklerin bir çift
ve sonra bir şey inşa Oldukça basit, ama güçlü.
Aralarında Yani tasarım kararları sen
sonuçta birlikte sahip olduğu gidiyor depolama motorları hatları.
Ve bana sadece bu söz yapalım Nihai proje beklentisiyle,
ve beklentisiyle yapalım say-- hayır yapalım şunu.
Şimdi bu küçük inşa edelim İlk uygulama.
Benim terminale gitmek için gidiyorum Pencere ve burada değil
Sadece counter.php, şimdi gidiyoruz olarak artık germane kurtulmak için,
ama biz bir sürü var dizinleri ve bu
ruhu çok benzer olacak Eğer sorun görürsünüz ne yedi set.
>> Yani biz üç dizinleri var kamu ve şablonları içeren
tam olarak nerede biz bıraktığı Bizim bütün MVC ile Pazartesi.
Ve Özetle, kamu gidecek Ben kullanıcıları istediğiniz herhangi bir dosya aslında
v ziyaret edebilmek URL yoluyla tarayıcı.
Şablon.
Biz şablonları ne koydun?
Ne gibi şeyler?
Orada değildi çok ama bir çift Pazartesi günü en az dosyaları.
Evet.
>> İZLEYİCİ: Üstbilgi ve Altbilgi?
>> DAVID J. MALAN: Üstbilgi ve Altbilgi.
Bu yüzden de, bugün benzer bir şey var.
Biz birkaç dosya var ama Alt Ben, ben görmek Başlığını görmek
ve daha sonra diğer dosyaları bir demet.
Yani bu eşdeğerdir Hangi V MVC görünümünde, bir,
Tekrar olacak biraz daha Sorunun açık, yedi set
ama bu ben sadece bir klasör Benim estetik bir sürü koyarak.
Benim HTML, benim formları bir sürü bir sürü.
Bununla birlikte, içerir, başka bir şeydir Bu üç dosya vardır dizin
ve en bunlar kısaca bir göz atalım.
>> Ben önde gitmek için gidiyorum ve config.php açmak.
O, çok çıkıyor gibi vadede daha önce olduğu gibi,
keskin dahil Pset7 ile CS50 nokta s.
Bugünün örnekte, gidiyoruz Bunun eşdeğer yapmak
Bir ihtiyaç deyimi ile Bu etkili
Bu birkaç satır içerir.
Yani açık olmak, bu Bir dosya config.php çağırdı.
Ve ne yaptığını fark.
Bu görünüşte bir şey yapıyor şifreli, açma hata iletileri
tarayıcıda görmek onları böylece.
Görünüşe göre, o, var diğer iki dosya gerektiren
yani bu, C # include gibidir ve sonra gördün mü bu bir,
ve biz dayanıyordu ettik, bu yanar işlevselliği gibi bu alışveriş sepeti.
>> Bu çerez irade demektir ileri ve geri gönderilmesi.
Peki neden bu ilginç?
Peki, biz bu geri giderseniz dizin ve örneğin, açmak,
constance.php.
Dikkat PHP desteği sabitleri yaptığı, oldukça C. #define gibi değil
Bunun yerine, kelimenin tam anlamıyla tanımlanmış demek, ve ihbar
Ben önceden depolanmış ettik Bu dosyada dört sabitler.
Bugünün veritabanı biri için şifrem, İsmimin için,
ve sunucu adını.
Peki bu gerçekten olacak Sorunun oldukça benzer yedi set.
Ve son olarak, ve bu ben nerede bazı güzel işlevselliği alacağım
personel, functions.php içinde Biz yazdık kod bir demet, bir
ve ben bu bazı çaldı Sorun yedi kümesinden
Bugün için, bu şeylerin bir demet yapar ve sadece onlardan biri bakalım
özellikle.
Burada bu işlev, Sorgu, olacak
Biz diyoruz PHP işlevi SQL yürütmek için.
Bir an önce biz kullanmaktaydı phpMyAdmin, ama bu sadece
öğrenme amaçları tür için ve teşhis amaçları
ve veritabanı seti unutmadan.
Ne zaman aslında kullanmak sizin veritabanı, sen, insan,
Açıkçası gitmiyor Bir web yukarı çekerek olmak
sayfa her zaman birileri kaydeder.
Sen kod yazmak için gidiyoruz insert ve talep kullanıcıları siler,
ve biz bunu yapmak için gidiyoruz Sorgu işlevi yoluyla.
Ben şimdi aşağı doğru ilerleyin, orada var birkaç özellik olacak.
Yönlendirme gidiyor Biz yazdığı bir işlevi olabilir
sizin için size izin verir Başka bir URL'ye göndermek,
ve render oldukça gibi, bir fonksiyon olduğunu biz aslında işler o, Pazartesi günü gördüm
Şablon, ama daha bunlara ile pset7 kendi yürüyüş biçimi.
Şimdilik, en önde gidip ve bu yapalım.
>> Benim dersler tabloya gidelim ve Şu anda hiçbir şey görmek
Burada henüz, ve ben de gidelim Benim kamu dizine, içine
Sadece bir dosya index.php, var.
Bu dosya süper basit gibi görünüyor Şu anda, sadece bu gibi görünüyor.
Çok nasıl gibi biz Pazartesi günü kapalı bıraktı.
Ben, bu dosyayı gerektiren ediyorum içinde Config.php,
Bir dizin, içeren nokta nokta olan, ailem,
ve sonra sadece bu dosyayı render ediyor.
Yani bu dosya nedir?
>> Benim şablonları açalım geçip, ve biz bu görürsünüz.
Süper basit, görünüşe göre bu formu Bir $ _GET veya $ _POST tarafından teslim olacak.
Hızlı aklı kontrol.
Kelimenin tam anlamıyla görsel dosyayı arayın.
Yöntem sonrası eşittir.
Yani gibi, URL kullanmak için gitmiyor Google, derinin sıralamak için gidiyor, yok
arkasında bilgi sahneler ve var
Bir göndermek için gidiyor register.php adı dosya
ve bu dosya var Henüz yazılı değil
ama ne bu oluyor Bu gibi bakmak.
Ben ayrı bir sayfaya giderseniz >> Bu ne localhost / index.php gibi görünüyor.
Ve yine, sunucunun Sadece index.php varsayarak.
Girin.
Biz olduğun yerde Yani var de, ve ne yapmak istiyorum
şeyleri yazın mümkün olacak David gibi, ve sonra
benim telefon numarası, diyecekler Şimdilik 617-555-1212, kayıt
ve şimdi register.php bulunamadı.
Yani bu uygulamak gerekir.
Yani hızlı kırbaç edelim Bu kadar gibi bir şey.
Benim kamu dizine gidelim ve register.php ve gedit yapmak,
ve şimdi ben önde gitmek için gidiyorum ve biz Pazartesi günü yaptığımız gibi, PHP modunu başlatmak,
ve yakın PHP'nin etiketi, ve en birkaç şey yapalım.
>> Yani bir, ben gelen, biliyorum Bu formu yazılı olan,
Ben aşağıda kontrol etmek istediğiniz.
Boş ise, ne olursa olsun kullanıcı Daha sonra, ad alanına yazdığınız
Bir şey söylemek için gidiyorum gibi adı eksik özür dileme.
Bu arada, olan, Özür değil PHP şey inşa,
biz yazdığı bir işlev bulunuyor pset7 için functions.php içinde
böylece ona erişebilir.
Diğer alan ise Else Boş, sayı, o zaman ben değilim
için özür dileyecek Kullanıcı ve eksik sayıda söylüyorlar.
Bu dosyayı kaydedin.
>> Şimdi benim tarayıcıda geri dönelim, Tekrar deneyin geri forumunda gidin.
Kayıt.
TAMAM MI.
Hiçbir şey iyi olduğu, oldu.
Ben bir hata mesajı alamadım.
Ama onun yerine eğer, en bu yeniden izin sayfa ve hiçbir şey sağlamaz.
Kahretsin.
Bunu yap.
Kayıt.
Neyi yanlış yaptım?
Boş olursa, $ _POST adı.
Tekrar söyle?
>> Ah, tabii.
Ben en önemli kısmı, unuttum hangi ("../ / config.php içerir.") gerektirir olduğunu.
Ben erişimi olması gerekir fonksiyonu özür dilerim hangi
hiçbir şey oluyor neden olduğunu.
işlevi aslında yok.
Yani tekrar deneyelim.
En sayfayı yeniden yükleyin olsun, Kayıt tıklayın.
TAMAM MI.
Orada öyle.
Bu nedenle, çıktı we ' Burada görme sonucudur
bir özür dileme, bir çağırıyor fonksiyonu, süper basit,
ve sadece yazdırır ne olursa olsun Ben bir argüman olarak verin.
>> Pekala, o yüzden işbirliği edelim.
Benim adını verelim David gibi, kayıt,
numara Tamam diyelim kayıp bunu da sağlar.
617-555-1212.
Kayıt.
TAMAM MI.
Yani tüm şimdi de sadece bir şey değildir ilginç oluyor.
Şimdi en fazla bir şey yapalım ilginç Böyle olur.
Beni phpMyAdmin içine gidelim, ve diyelim Aslında, kullanıcılar adında bir tablo oluşturmak
Ben bunu üç vereceğim sütunlar ve çabuk olacak
Daha sonra kimliği oluşturmak ve isim, ardından sayı,
ve ID alanı ben değilim int olarak terk edecek.
Ben gidiyorum adını alan Bir varchar olarak bırakmak,
ve biz biraz keyfi, 64, söyleyeceğim.
Ben gidiyorum sayısı yapmak için, biliyor musun?
Biz içine gidiyoruz Burada ABD numaralarını destek,
bu yüzden bir şey yapacağım karakter gibi ve daha sonra 10 karakter
alan kodu max ve daha sonra yedi basamak.
Ve sonra buraya, ben gidiyorum , otomatik artış bu alan belirtmek
Bu bir birincil anahtar yapmak ve Ben önde ve gitmek için gidiyorum
bu kutulardan herhangi edin.
>> Peki şimdi nihayet Kaydet dediğinizde, ve ben, benim kullanıcıların tabloya geri dönmek
Bu da eğer benziyor I Şimdi Yeni Sekme yapısını tıklayın.
Yani bu, açık olmak Sadece phpMyAdmin'nin yoludur
Veritabanı tablo söyleyerek bir kimliği, bir isim, ve bir numarası vardır
bu özel konfigürasyonları ile ve biz alanların geri kalanını göz ardı edeceğiz
Orada şimdi.
>> Peki şimdi ne yapmak istiyorsun?
Ben içine şimdi gidersem Yani benim kaynak kodu, tüm iyi ise
Ben şu sorguyu yürütmek istiyorum.
Içine yerleştirin, ve ben sadece can Kullanıcıların Ben kesinlikle yok demek
o ise o geri keneler gerekir kullanıcılar gibi değil tehlikeli bir kelime.
Adını söylemek için gidiyorum, sayı, sonra da burada ben
Sert kod gitmiyor Henüz değerlerin haneli.
Ben iki soru işaretleri koymak için gidiyorum.
Ve bu bir kuralıdır Birçok dilde
bu sayede sahip olmak istiyorsanız bir dize için bir yer tutucudur
Soruyu kullanmak için gidiyoruz işaretleri, nedenlerle yaparız
hakkında sohbet gel Güvenlik ve burada
Ben bu geçmek için gidiyorum iki alan adı sonrası,
ve sonra, numarayı sonrası ve şimdi dosyayı kaydedin.
>> Ve şimdi ben gidiyorum Bir süper buraya gitmek
sadece rendersuccess.php, demek ki Başka bir şablon olacak.
Ben gerçekten hızlı oluşturmak için gidiyorum.
Geditsuccess.php ve ben sadece gidiyorum Bu dosyada H1 başarı demek.
Tamam.
Şimdi, en geri dönelim Ben daha önce ziyaret tarayıcı.
En önde gidelim ve ben yazdım onaylamak David, ben, bir telefon numarası yazdı
kayıt.
Kahretsin.
Neyi yanlış yaptım?
Yani, burada bir hata görüyorum SQL sözdizimi bir hata var.
Bana geri gedit atlamak edelim, edelim Bana, register.php geri dönmek
ve ben ne yaptım ihmal Önemli son ne zaman oldu?
Ben bu ihtiyacım var.
Sizden dışında başka bilmek istiyorum yaptırmadan önce fark, ama buna ihtiyacım var.
>> Peki şimdi geri dönelim, ve bu tarayıcıda görmek için yararlı oldu
ve bu yüzden config.php var Biz hataları tükürmek.
, En önde gidip ve yeniden edelim Devam başarı tıklayın.
Yani şimdi beni yanına gidelim benim Burada veri tabanı ve kullanıcılar tıklayın
ve göz, ve şimdi ben fark Burada benim veritabanında David var.
Şimdi teknik olarak bu web sitesi henüz kamu internet,
bu yüzden başka olamaz Burada koyarak insanlar,
ama şimdi, istedim Örneğin, kendime bir kısa mesaj göndermek.
Burada bir uzuv dışarı gidelim Bu gerçekten çalışıp çalışmadığını görmek.
Ben önde gitmek için gidiyorum ve bu satırı silin
ve biz bu bulanıklık olacak video dışarı sonra
bu yüzden yok Tüm internet, beni manifatura
ve biz bugüne kadar gidecek Tarayıcı ve biz ders üzerinden gidersiniz
ve farklı yazın edeceğiz sayı Burada, başarı kayıt.
>> Peki şimdi, kendi sayı içinde muhtemelen var Veritabanı ve şimdi eğlenceli kısmı.
En aslında yapmak PHP kullanmak edelim bir şey programlı,
Ya komutu line veya başka bir yerden,
ve şimdi ben sadece basit tutmak için gidiyor
ve ben gitmek için gidiyorum benim Burada dizin ve aşağıdakileri yapın.
Gedit komut yaparız, diyelim metin, #! / kullanıcı / bin / env PHP diyoruz
gibi son kez gördüm.
PHP.
>> Şimdi gerektirir gidiyorum config.php içerir,
Hatta bu kudreti olsa hafif bir hata neden olur.
Ve şimdi ben önde gitmek ve söylemek için gidiyorum kullanıcıların satırlar, sorgu seçin yıldız,
ve şimdi burada ben bir teknik yapacağım satır olarak her satır için son kez.
Ve ben basit bir şey yapacağım.
Adı bu diyelim printf, ve sayı bu, ters eğik n.
Ve şimdi ben geçmek gidiyorum satırda, unquote adını alıntı
ve satır alıntı unquote numarası, ve şimdi en önde gidelim
ve benim terminal penceresi chmod Bu + x yapmak
Metin çalıştırılabilir denilen bu komut.
Ve şimdi metnini çalışmasına izin.
>> Tamam, bu yüzden ilerleme.
Yani şimdi yazdım bir Komut satırı komut,
Bu, PHP adında bir dilde, bundan dolayı, çizgi gerektirir
Tüm bu yapılandırma erişebilir Ben Belirtilen sabitler.
veri tabanı ve benzeri adı.
Aslında, sadece temiz olması için Bu bir tesadüftü olmadığını,
beni go ahead ve kayıt izin Rob gibi başka gerçekten hızlı, birisi
ve ona 555-1212 numarası verecektir.
>> Ve şimdi, ben senaryoyu çalıştırırsanız Yine, güç fark
Biz veritabanı ile yapıyoruz ne.
Şimdi ben hemen ne gördüm Diğer iki satır benim veritabanında bulunmaktadır.
Yani şimdi bir şeyler yapmaya çalışalım içinde bile meraklısı,
ve bu biz ettik parçası önceden test değil,
böylece son kez yaptım şeyler, korkunç ters gitti
Biz bu yönde video var.
>> Aslında, evet, komik bir kenara.
Son kez Yani, bir İki yıl önce olduğu gibi ders,
biz olmak, karar verdim, karar Tüm bu harika bir fikir olacaktır
dinamik e-postaları oluşturmak için sınıf, tüm veritabanı CS50 kullanarak
Bize numaralarını vermişti öğrenciler, ve cep telefonu taşıyıcıları size hangi
pset0 gelen çağırmak olabilir, o çıkıyor, muhakeme nasıl
Benim programda küçük bir hata vardı ve 2012 yılında bir kaç hata yaptım, sanırım.
>> Bu sayede, bir ben döngü için vardı , şey tam olarak bu tür yaptım
veritabanı üzerinde yineleme, veritabanından bir isim almak,
Her ardından veritabanından isim ve Bu döngü yineleme Ben bir e-posta gönderdi.
Ama bunun yerine bir e-posta göndermek, ben bir e-posta gönderdi, ilk yineleme,
ve iki e-postalar, ikinci tekrarında, gönderilen Üç e-postalar, ikinci tekrarında, hangi
Eğer hatırlayacağınız gibi bizim asimptotik gösterimi tartışma
n gibi kötü bu büyük Ç, kare Ben ne kadar gönderilen mesajlar demektir
ama o bile e-postalar değildi o metin mesajları oldu.
Bildiğiniz gibi >> Ve, katılım değil, Sonunda dönem doğru süper yüksek
ve bu yüzden de sevimli olacağını düşündüm Zaman "Neden size sınıf değil?" demek için
Metin mesajı I'de tüm sınıfa gönderdi,
ve% 50 gibi komik oldu sınıf, ancak diğer% 50, bazı kişiler
çıldırdı, ben inanılmaz gönderdi özür dileyen tatlı notlar
Personel için özür dileyerek için ders cevapsız sadece
Bu kez, değil mi?
>> Yani korkunç ters olur.
O ruhu Yani, bunu deneyelim Tekrar ama sadece benim numarası ile.
Önceden, functions.php olarak, Ben burada bu fonksiyonu yazdım.
Bu metin denir, ve o var üç argümanla alır.
Bir sayı, bir taşıyıcı madde ve bir mesaj görüntülenir.
>> Ben bir switch deyimini kullanıyorum, hangi Harika PHP, sadece dizeleri almak
tamsayılar ve ben uygulamak değil Henüz bunun için tüm destek,
Ben sadece AT & T ve Verizon yaptık.
Çıkıyor Çünkü Bu taşıyıcı bu
Onlar, SMS ağ geçitleri e-posta var bu sayede aslında can
Bir adrese bir e-posta göndermek vtext.com de telefon numarası gibi
ve kullanıcı bloke edilmemiş ise mesajlar, içinden gidersiniz
Bir metin mesajı olduğunu.
>> Şimdi bunu yapmak için, ben eklemek zorunda gidiyorum Benim veritabanına gerçekten hızlı bir alan.
Ben gitmek için gidiyorum Benim yapısı ve ben
go ahead ve bir eklemek için gidiyoruz Tablonun sonunda alan.
En Git seçeneğini tıklatın edelim, ve ben Bu taşıyıcı arayacaksın
ve şimdi ben gidiyorum bar metin olarak bırakıyoruz,
ama gelecekte meraklısı olabilir.
Ben hızlı bir şekilde gitmek için gidiyorum Benim tabloya, ve ben
Rob kurtulmak için gidiyoruz, Bu sahte numara çünkü,
Ben burada düzenlemeye gitmek için gidiyorum ve ben elle benim taşıyıcı değiştirmek için gidiyor
Verizon olmak gerekirse onu ve şimdi burada bitti.
>> En hızlı aklı onay yapalım.
En bizim metin komut, açalım hangi Bu gibi görünüyor, taşıyıcı,% s.
Biz çok fazla hata yapıyoruz Ben, 2012 yılında taşıyıcı mi daha kontrol.
Ve şimdi, ben gidiyorum önde ve komut dosyasını yeniden çalıştırın.
TAMAM MI.
Taşıyıcı anlamına Verizon olan Şimdi umarım ben sadece bunu yapabilirsiniz.
Doğru, bu yıl, umarım, burada biz gitmek.
>> Yani döngü için bu içinde, ben değilim Bu printf sahip değil sadece gidiş,
Ben de metni aramak için gidiyorum ve Bu fonksiyon çağırma kullanımı
oldu bir, bir sayı alır Taşıyıcı ve bir mesaj.
Yani bakalım, numara gidiyor satır alıntı unquote olmak "numarası,"
satır alıntı unquote "taşıyıcı" ve sonuncusu mesajı oldu.
Bu yıl noktalı virgül berbat etmeyin.
>> Tamam.
Parmaklar geçti.
Bu işleri Bakalım.
Böylece Pekala,.
İşte başlıyoruz.
En telefon kilidini edelim, parmaklarınızı çapraz, kahretsin.
Tanımsız değişken may-- oh gerçek hızlı, bekle, bekle.
Gerçek hızlı, gerçekten hızlı.
Bu tamamen buna değer.
Beni uh-oh, kapmak izin ver, yakala olsun.
Metinler var, teşekkür ederim başkası başladı.
Beni go ahead ve gerçek açalım Burada hızlı, dropbox.php / posta.
Yanında Olmak.
Tamamen buna değer.
İndirme.
Tamam, kaynak src8m.
TAMAM MI.
>> Burada bir tane daha çizgi gerekir.
Ah orada o Frosh öyle olduğunu Sohbet, o üç de siciline var.
Merhaba Ah, Margo, size çok teşekkür ederim.
Tamam, ben burada bu çizgiyi eksikti.
Bu yüzden bana çabuk kapmak izin Bu kod satırı,
Hangi posta veya kütüphanesini içerir Aslında kullanmak istediğiniz,
Ben hızlı bir şekilde gidiyorum fonksiyonları geri gitmek,
Ben bu üstüne gitmek için gidiyorum dosya ve de bu dosyayı gerektirir,
ve şimdi gerçekten geçmeye gidiyorum benim Ben komuta geri dönmek parmaklar
içinde olan hat yazısı, Bugünün yerel ana bilgisayar dizini.
Run metin.
Girin.
Posta.
Yanında Olmak.
Posta.
Tamam, evet.
İşte başlıyoruz.
>> Posta yeni PHP mailler alır.
Ben bu hakkı yapmak mı?
Kahretsin.
Bekle, bekle, bekle, oh amaçlara yönelik.
Yanında olmak.
Ben bu, söz o kadar değer olacak.
Adres.
Ben yapmayın Bu yüzden Sağ sınıfın önünde örnekler.
Ugh.
Aşağıdaki alıcılar başarısız oldu.
En son bir şey deneyelim.
Adresi eklemek, ayarlanabilir SMTP, Adres gerçekten olmasıdır.
Adresinde bu son bölümünü deneyelim.
Ah, ben şu anda gerçekten üzgünüm.
Teşekkür ederim.
Ama ben gerçekten takdir metinler gönderme oldum.
Bu David var.
Bunu üfleme ediyoruz.
Orada bırakalım ve biz Pazartesi günü çözecektir.
Sonra görüşürüz.
>> Daven FARNHAM: Ve şimdi Derin DAV Farnham tarafından Düşünceler.
Bir ikili ağaç bir orman düşerse ve kimse C bu-- [gülerek] etrafında olduğunu.