[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. 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.