Üyeliğe dayalı bir site oluşturmak ilk başta göz korkutucu bir görev gibi görünüyor. Bunu kendi başınıza yapmak istediyseniz ve PHP becerilerinizi kullanarak bunu nasıl bir araya getireceğinizi düşünmeye başladığınızda pes ettiyseniz, o zaman bu makale tam size göre. Şifreyle korunan güvenli bir üye alanına sahip, üyeliğe dayalı bir site oluşturmanın her aşamasında size yol göstereceğiz.
Tüm süreç iki büyük bölümden oluşur: kullanıcı kaydı ve kullanıcı kimlik doğrulaması. İlk bölümde kayıt formunun oluşturulmasını ve verilerin MySQL veritabanında saklanmasını ele alacağız. İkinci bölümde ise giriş formunu oluşturup, kullanıcıların güvenli alana giriş yapabilmesi için kullanacağız.
Kodu indirin
Kayıt/giriş sistemine ilişkin kaynak kodunun tamamını aşağıdaki bağlantıdan indirebilirsiniz:
Yapılandırma ve Yükleme
BeniOku dosyası ayrıntılı talimatlar içerir.
Aç kaynak\include\membersite_config.php Dosyayı bir metin düzenleyicide açın ve yapılandırmayı güncelleyin. (Veritabanı girişi, web sitenizin adı, e-posta adresiniz vb.).
Dizin içeriğinin tamamını yükleyin. Formu göndererek Register.php dosyasını test edin.
Kayıt formu
Bir kullanıcı hesabı oluşturmak için kullanıcıdan minimum miktarda bilgi toplamamız gerekir. Adına, e-posta adresine ve istediği kullanıcı adı ve şifreye ihtiyacımız var. Elbette bu noktada daha fazla bilgi isteyebiliriz ancak uzun bir form her zaman tercih edilmeyen bir durumdur. O halde kendimizi sadece bu alanlarla sınırlayalım.
İşte kayıt formu:
Yani isim, e-posta ve şifre için metin alanlarımız var. Daha iyi kullanılabilirlik için ifadesini kullandığımızı unutmayın.
Form doğrulama
Bu noktada bazı form doğrulama kodlarını uygulamaya koymak iyi bir fikirdir, böylece kullanıcı hesabını oluşturmak için gereken tüm verilere sahip olduğumuzdan emin oluruz. Adın, e-postanın ve şifrenin doldurulup doldurulmadığını ve e-postanın doğru formatta olup olmadığını kontrol etmemiz gerekiyor.
Form gönderiminin yönetilmesi
Şimdi gönderilen form verilerini işlememiz gerekiyor.
Sıra şu şekildedir (indirilen kaynaktaki fg_membersite.php dosyasına bakın):
function RegisterUser() ( if(!isset($_POST["gönderildi"])) ( return false; ) $formvars = array(); if(!$this->ValidateRegistrationSubmission()) ( return false; ) $this- >CollectRegistrationSubmission($formvars); if(!$this->SaveToDatabase($formvars)) ( return false; ) if(!$this->SendUserConfirmationEmail($formvars)) ( return false; ) $this->SendAdminIntimationEmail($ formvars); true değerini döndür; )
Öncelikle form gönderimini doğruluyoruz. Daha sonra form gönderim verilerini topluyor ve 'sterilize ediyoruz' (bunu her zaman e-posta göndermeden, veritabanına kaydetmeden vb. önce yapın). Form gönderimi daha sonra veritabanı tablosuna kaydedilir. Kullanıcıya onay isteyen bir e-posta göndeririz. Daha sonra yöneticiye bir kullanıcının kaydolduğunu bildiriyoruz.
Verileri veritabanına kaydetme
Artık tüm verileri topladığımıza göre, bunları veritabanına kaydetmemiz gerekiyor.
Form gönderimini veritabanına şu şekilde kaydediyoruz.
function SaveToDatabase(&$formvars) ( if(!$this->DBLogin()) ( $this->HandleError("Veritabanı girişi başarısız oldu!"); return false; ) if(!$this->Ensuretable()) ( return false; ) if(!$this->IsFieldUnique($formvars,"email")) ( $this->HandleError("Bu e-posta zaten kayıtlı"); return false; ) if(!$this->IsFieldUnique( $formvars,"username")) ( $this->HandleError("Bu KullanıcıAdı zaten kullanılıyor. Lütfen başka bir kullanıcı adı deneyin"); return false; ) if(!$this->InsertIntoDB($formvars)) ( $this- >HandleError("Veritabanına ekleme başarısız oldu!"); return false; ) return true; )
Membersite_config.php dosyasında Veritabanı oturum açma ayrıntılarını yapılandırdığınızı unutmayın. Çoğu durumda, veritabanı ana bilgisayarı olarak “localhost”u kullanabilirsiniz.
Giriş yaptıktan sonra tablonun var olduğundan emin oluyoruz.(Eğer yoksa script gerekli tabloyu oluşturacaktır).
Daha sonra kullanıcı adının ve e-postanın benzersiz olduğundan emin oluyoruz. Benzersiz değilse hatayı kullanıcıya geri döndürürüz.
Veritabanı tablo yapısı
Bu tablo yapısıdır. Fg_membersite.php dosyasındaki CreateTable() işlevi tabloyu oluşturur. İşte kod:
function CreateTable() ( $qry = "Tablo Oluştur $this->tabloadı (". "id_user INT NOT NULL AUTO_INCREMENT ," "name VARCHAR(128) NOT NULL ," "email VARCHAR(64) NOT NULL ," " "phone_number VARCHAR(16) NOT NULL ," "kullanıcı adı VARCHAR(16) NOT NULL ," "şifre VARCHAR(32) NOT NULL ," "confirmcode VARCHAR(32)" , "PRIMARY KEY (id_user)." ")"; if( !mysql_query($qry,$this->connection)) ( $this->HandleDBError("Tablo oluşturulurken hata oluştu \nquery\n $qry"); return false; ) return true; )
id_user alanı kullanıcının benzersiz kimliğini içerecektir ve aynı zamanda tablonun birincil anahtarıdır. Şifre alanı için 32 karaktere izin verdiğimize dikkat edin. Bunu yapıyoruz çünkü ek bir güvenlik önlemi olarak şifreyi MD5 kullanılarak şifrelenmiş olarak veritabanında saklayacağız. MD5 tek yönlü bir şifreleme yöntemi olduğundan, kullanıcının unutması durumunda şifreyi kurtaramayacağımızı lütfen unutmayın.
Kayıtların tabloya eklenmesi
Veritabanına veri eklemek için kullandığımız kod aşağıdadır. Tüm verilerimizi $formvars dizisinde bulunduracağız.
function InsertIntoDB(&$formvars) ( $confirmcode = $this->MakeConfirmationMd5($formvars["email"]); $insert_query = "insert into ".$this->tablename."(ad, e-posta, kullanıcı adı, şifre, onay kodu) değerler ("" . $this->SanitizeForSQL($formvars["name"]) . "", "" . $this->SanitizeForSQL($formvars["email"]) . "", "" . $ this->SanitizeForSQL($formvars["kullanıcı adı"]) . "", "" . md5($formvars["şifre"]) . "", "" . $confirmcode . "")"; if(! mysql_query( $insert_query ,$this->connection)) ( $this->HandleDBError("Tabloya veri eklenirken hata\nquery:$insert_query"); return false; ) return true; )
Parolayı veritabanına eklemeden önce şifrelemek için PHP md5() işlevini kullandığımıza dikkat edin.
Ayrıca kullanıcının e-posta adresinden benzersiz onay kodunu oluşturuyoruz.
E-posta gönderme
Artık kayıt veritabanımızda olduğuna göre kullanıcıya bir onay e-postası göndereceğiz. Kullanıcının kayıt işlemini tamamlamak için onay e-postasındaki bir bağlantıya tıklaması gerekir.
function SendUserConfirmationEmail(&$formvars) ( $mailer = new PHPMailer(); $mailer->CharSet = "utf-8"; $mailer->AddAddress($formvars["email"],$formvars["name"]) ; $mailer->Subject = "".$this->sitename ile kaydınız; $mailer->From = $this->GetFromAddress(); $confirmcode = urlencode($this->MakeConfirmationMd5($formvars["email") ])); $confirm_url = $this->GetAbsoluteURLFolder()."/confirmreg.php?code=".$confirmcode; $mailer->Body ="Merhaba ".$formvars["name"]."\r\ n\r\n". "".$this->sitename." ile kaydınız için teşekkür ederiz.\r\n". "Kaydınızı onaylamak için lütfen aşağıdaki bağlantıya tıklayın.\r\n." "$confirm_url\r \n". "\r\n". "Saygılarımızla,\r\n". "Web Yöneticisi\r\n". $this->sitename; if(!$mailer->Send()) ( $this-> HandleError("Kayıt onayı e-postası gönderilemedi."); return false; ) return true; )
Güncellemeler
9 Ocak 2012
Şifreyi Sıfırla/Şifreyi Değiştir özellikleri eklendi
Kod artık GitHub'da paylaşılıyor.
tekrar hoşgeldiniz= $fgmembersite->KullanıcıTamAdı(); ?>!
Lisans
Kod LGPL lisansı altında paylaşılmaktadır. Ticari veya ticari olmayan web sitelerinde serbestçe kullanabilirsiniz.
Alakalı Gönderi Yok.
Bu girdiye ilişkin yorumlar kapalı.
Geçtiğimiz birkaç yılda web hosting dramatik bir değişime uğradı. Web barındırma hizmetleri web sitelerinin performans şeklini değiştirdi. Çeşitli hizmet türleri vardır ancak bugün bayi barındırma sağlayıcıları için mevcut olan seçeneklerden bahsedeceğiz. Bunlar Linux Bayi Barındırma ve Windows Bayi Barındırmadır. İkisi arasındaki temel farkları anlamadan önce bayi hostingin ne olduğunu öğrenelim.
Bayi Barındırma
Basit bir ifadeyle, bayi barındırma, bir hesap sahibinin, üçüncü tarafların web sitelerine satış yapmak amacıyla ayrılmış sabit disk alanını ve tahsis edilen bant genişliğini kullanabileceği bir web barındırma biçimidir. Bazen bir satıcı, bir barındırma şirketinden (Linux veya Windows) özel bir sunucuyu kiralayıp üçüncü taraflara kiralayabilir.
Çoğu web sitesi kullanıcısı ya Linux ya da Windows kullanıyor. Bunun çalışma süresiyle ilgisi var. Her iki platform da web sitenizin %99 oranında yükselişte olmasını sağlar.
1. Özelleştirme
Linux Bayi Hosting Planı ile Windows tarafından sağlanan Hosting planı arasındaki temel farklardan biri özelleştirme ile ilgilidir. Her iki oynatıcıyı da çeşitli şekillerde deneyebilseniz de Linux, Windows'tan çok daha özelleştirilebilir. İkincisi, muadillerinden daha fazla özelliğe sahiptir ve bu nedenle birçok geliştirici ve yönetici Linux'u çok müşteri dostu bulmaktadır.
2. Başvurular
Farklı bayi barındırma hizmetlerinin farklı uygulamaları vardır. Linux ve Windows'un her ikisinin de kendi uygulama yelpazesi vardır, ancak sayı ve çok yönlülük söz konusu olduğunda Windows'un bir avantajı vardır. Bunun Linux'un açık kaynak doğasıyla ilgisi var. Herhangi bir geliştirici, uygulamasını Linux platformuna yükleyebilir ve bu, onu milyonlarca web sitesi sahibi için çekici bir barındırma sağlayıcısı haline getirir.
Ancak, web barındırma için Linux kullanıyorsanız ve aynı zamanda Windows işletim sistemini de kullanıyorsanız, bazı uygulamaların çalışmayabileceğini lütfen unutmayın.
3. Kararlılık
Her iki platform da kararlı olsa da Linux Bayi Barındırma ikisinden daha kararlıdır. Açık kaynaklı bir platform olduğundan birçok ortamda çalışabilir. Bu platform ara sıra değiştirilebilir ve geliştirilebilir.
4. .NET uyumluluğu
Linux'un Windows'tan her bakımdan üstün olduğu söylenemez. .NET uyumluluğu söz konusu olduğunda Windows dikkatleri üzerine çekiyor. Web uygulamaları Windows barındırma platformunda kolaylıkla geliştirilebilir.
5. Maliyet avantajları
Her iki barındırma platformu da uygun fiyatlıdır. Ancak nakit sıkıntısı çekiyorsanız Linux'u tercih etmelisiniz. Ücretsizdir ve bu nedenle dünya çapında pek çok geliştirici ve sistem yöneticisi tarafından tercih edilmektedir.
6. Kurulum kolaylığı
Windows'un kurulumu muadillerine göre daha kolaydır. Söylenen ve yapılan her şeye rağmen Windows, tüm bu yıllar boyunca kullanıcı dostu özelliğini hala koruyor.
7.Güvenlik
Windows'tan daha güvenli olduğu için Linux bayi barındırmayı tercih edin. Bu, özellikle E-ticaret işlerini yürüten kişiler için geçerlidir.
Çözüm
İkisi arasında seçim yapmakihtiyacınıza ve maliyet esnekliğine bağlı olacaktır. Her iki barındırma hizmetinin de benzersiz avantajları vardır. Windows'un kurulumu kolay olsa da Linux uygun maliyetli, güvenli ve çok yönlüdür.
Bu yılın Mart ayında, bir medya şirketinin bana ödeme yapmayı ve e-postalarıma cevap vermeyi reddetmesiyle çok kötü bir deneyim yaşadım. Bana hâlâ binlerce dolar borçlular ve içimdeki öfke duygusu her gün nüfuz ediyor. Görünen o ki yalnız değilim ve diğer yüzlerce web sitesi sahibi de aynı durumda. Dijital reklamcılıkla aynı seviyede.
Dürüst olmak gerekirse, bu blogu uzun süredir kullanıyorum ve geçmişte farklı reklam ağlarında gezindim. Beni engelleyen o şirketin reklam birimlerini kaldırdıktan sonra eski halime geri döndüm. Şunu da belirtmeliyim ki Google'ın AdSense ürününü hiçbir zaman pek sevmedim, çünkü görüntülü reklamların "varilinin dibi" gibi geliyor, kalite açısından değil, gelir açısından.
Anladığım kadarıyla sitenizde Google reklamlarının olmasını istiyorsunuz ama aynı zamanda diğer büyük şirketlerin ve ajansların da bunu yapmasını istiyorsunuz. Bu şekilde talebi ve geliri en üst düzeye çıkarırsınız.
Olumsuz deneyimimden sonra Newor Media adında bir şirketi tavsiye etmem gerekti. Ve dürüst olmak gerekirse, ilk başta satılmadım çünkü onlar hakkında fazla bilgi bulamadım. Diğer sitelerde birkaç iyi inceleme buldum ve orada biriyle konuştuktan sonra denemeye karar verdim. .SÜPER yararlı olduklarını söyleyeceğim. Şu ana kadar çalıştığım her ağ, yanıtlar ve ilerleme açısından bana oldukça kısa davrandı. Her soruyu yanıtladılar ve bu gerçekten cesaret verici bir süreçti.
Birkaç aydır reklamları yayınlıyorum ve kazancım diğer şirkette kazandığımla hemen hemen aynı seviyede. Bu yüzden diğerlerinden çok daha iyi olup olmadıklarını gerçekten söyleyemem ama nerede öne çıkıyorlar bu gerçekten vurgulamak istediğim bir nokta. Onlarla olan iletişim, şimdiye kadar çalıştığım hiçbir ağa benzemiyor. İşte onların gerçekten farklı olduğu bir durum:
Paypal ile ilk ödemeyi zamanında bana ilettiler. Ancak ABD'de olmadığım için (ve sanırım bu herkes için geçerli) Paypal'dan bir ücret kestim. Temsilcime bu konuda e-posta gönderdim ve gelecekte bundan kaçınmanın bir yolu olup olmadığını sordum.
Ücretten kaçamayacaklarını söylediler. ama TÜM ÜCRETLERİ GERİ ÖDEMEYECEKLERİNİ.... EN SON ÖDEME DAHİL! Sadece bu da değil, geri ödeme ödemesi 10 DAKİKA içinde alındı! Ne zaman "finans departmanına" iletilmeden böyle bir talepte bulunabildiniz ve asla yanıt alamadınız?
Sonuç olarak bu şirketi seviyorum. Başka bir yerde daha fazlasını kazanabilirim, pek emin değilim ama ömür boyu benimle birlikte olacak bir yayıncıları var. Çok büyük bir site değilim ve çok fazla gelir elde etmiyorum, ama kendimi bir Onlarla konuştuğumda çok önemli bir müşteriyim. Dolandırıcılık ve yanıt vermemeyle olgunlaşmış bir sektöre gerçekten yeni bir soluk geliyor.
Raspberry Pi Vakfı tarafından 2012 yılında oluşturulan mikro bilgisayarlar, küçük çocuklarda yaratıcılık düzeylerini harekete geçirmede oldukça başarılı oldu ve İngiltere merkezli bu şirket, pi-top ve Kano gibi kodlamayı öğrenme başlangıç programları sunmaya başladı. Artık Pi elektroniklerini kullanan yeni bir girişim var ve cihaz, dokunmatik ekran, çoklu bağlantı noktaları, kontrol düğmeleri ve hoparlörler sunan el tipi bir konsol olan Pip olarak biliniyor. Cihazın arkasındaki fikir, genç bireylerin retro tarzdaki ama aynı zamanda web tabanlı bir platform aracılığıyla kod öğrenme deneyimi sunacak bir oyun cihazıyla etkileşime geçmesini sağlamaktır.
Pip'in sunduğu muhteşem yazılım platformu Python, HTML/CSS, JavaScript, Lua ve PHP'de kodlamaya başlama şansı sunacak. Cihaz, çocukların kodlamaya başlaması için adım adım eğitimler sunuyor ve hatta LED'lerin yanıp sönmesini bile sağlıyor. Pip hâlâ bir prototip olsa da, kesinlikle sektörde büyük bir hit olacak ve kodlamaya ilgi duyan çocukların ilgisini çekecek ve onlara genç yaşta kodlamaya başlamaları için gereken eğitim ve kaynakları sağlayacak.
Kodlamanın Geleceği
Kodlamanın harika bir geleceği var ve çocuklar kodlamayı bir kariyer olarak kullanmayacak olsalar bile, kodlamayı her zamankinden daha kolay hale getiren bu yeni cihazla kodlamayı öğrenmenin faydalarından yararlanabilirler. Pip ile en genç kodlama meraklıları bile farklı diller öğrenecek ve kendi kodlarını, kendi oyunlarını, kendi uygulamalarını ve daha fazlasını oluşturma yolunda ilerleyecek. Bu, elektronik çağın geleceğidir ve Pip, kodlamanın temel yapı taşlarında uzmanlaşmaya olanak sağlar.Bilgisayar bilimi eğitimin önemli bir parçası haline geldi ve yeni Pip gibi cihazlarla çocuklar evde eğlenirken eğitimlerini geliştirmeye başlayabilirler. Kodlama, web siteleri veya yazılım oluşturmanın çok ötesine geçer. Bir şehirde güvenliği artırmak, tıp alanındaki araştırmalara yardımcı olmak ve çok daha fazlası için kullanılabilir. Artık yazılımın egemen olduğu bir dünyada yaşadığımız için kodlama geleceğidir ve bu becerileri kariyer olarak hiç kullanmasalar bile tüm çocukların en azından kodlamanın nasıl çalıştığına dair temel bir anlayışa sahip olmaları önemlidir. Gelecek açısından kodlama günlük yaşamın kritik bir bileşeni olacak. Bu dünyanın dili olacak ve bilgisayarları veya nasıl çalıştıklarını bilmemek, üstesinden gelinmesi cehalet kadar zor olan zorluklara yol açabilir.
Kodlama aynı zamanda oyun dünyasında, özellikle çevrimiçi kumarhanelere erişim de dahil olmak üzere çevrimiçi oyun söz konusu olduğunda büyük değişiklikler sağlayacaktır. Kodlamanın oyun dünyasını nasıl geliştirdiğini görmek için kodlamaya dayanan en yüksek puan alan birkaç casino sitesine göz atın. Hızlıca bir göz atın ve kodlamanın çevrimiçi ortamda gerçekçi ortamları nasıl sunabileceğini görün.
Pip Çocuklarla Nasıl Etkileşime Geçer?
Kodlamayı öğrenme fırsatı söz konusu olduğunda çocukların birçok seçeneği vardır. Satın alınabilecek çok sayıda cihaz ve donanım var, ancak Pip bu cihazlarla farklı bir yaklaşım benimsiyor. Cihazın taşınabilirliği ve dokunmatik ekranı, piyasadaki diğer kodlama cihazlarına göre avantaj sağlıyor. Pip, Raspberry Pi HAT sisteminin yanı sıra elektronik bileşenlerle de tam uyumlu olacak. Cihaz standart dilleri kullanır ve temel araçlara sahiptir ve yeni başlayan kodlayıcılar için mükemmel bir cihazdır. Amaç, fikir ile yaratım arasındaki engelleri kaldırmak ve araçları hemen kullanıma hazır hale getirmektir. Pip'in diğer büyük avantajlarından biri de SD kart kullanmasıdır, bu sayede monitör ve fareye bağlandığında masaüstü bilgisayar olarak da kullanılabilir.Pip cihazı, çocuklara ve ilgilenen acemi kodlayıcılara, kodlamayı öğrenme ve pratik yapma konusunda yardımcı olacaktır. Sorunları çözmek için görev tamamlama ve düzeltmelerin bir kombinasyonunu sunan cihaz, kesinlikle genç neslin ilgisini çekecek. Cihaz daha sonra bu genç kodlayıcıların JavaScript ve HTML/CSS gibi farklı dillerde daha ileri düzeyde kodlamaya geçmelerine olanak tanır. Cihaz bir oyun konsolunu taklit ettiğinden çocukların dikkatini hemen çekecek ve onları küçük yaşta kodlamayla tanıştıracak. Ayrıca Pac-Man ve Minecraft gibi dikkati korumak için önceden yüklenmiş bazı oyunlarla birlikte gelir.
Gelecek Yenilikler
Gelecekteki yenilikler büyük ölçüde çocuğun mevcut kodlama becerisine ve süreci genel olarak anlamasına bağlıdır. Çocuklar, yeni Pip gibi cihazları kullanarak erken yaşta kodlamayı öğrendikçe, gelecekte harika şeyler yaratacak bilgi ve becerileri kazanacaklar. Bu, yeni oyunların, uygulamaların ve hatta tıbbi araştırma ve tedavilere yardımcı olmak üzere hayata geçirilebilecek fikirlerin tanıtımı olabilir. Sonsuz olasılıklar var. Geleceğimiz yazılım ve bilgisayarlar tarafından kontrol edileceğinden, genç yaşta başlamak en iyi yoldur, bu nedenle yeni Pip genç kalabalığa yöneliktir. Kodlama becerilerini öğretirken aynı zamanda oyun oynayabilecekleri bir konsol cihazı sunarak toplumun genç üyeleri, gelecekte tüm hayatlarımızı değiştirecek yazılımların yaratıcıları olma yolunda ilerliyor. Bu sadece bir başlangıç ama dünyanın her yerindeki milyonlarca çocuğun öğrenmeye ve ustalaşmaya başladığı bir şey. Pip gibi cihazların kullanımıyla kodlamanın temelleri anlatılıyor ve çocuklar, yetişkinliğe girerken harika yollara gidebilecek farklı kodlama dillerini hızla öğrenecekler.Yeni başlayanlar için bir eğitim! İnternette nereye giderseniz gidin, hemen hemen her yerde bulabileceğiniz bir temel şey vardır: kullanıcı kaydı. Kullanıcılarınızın ister güvenlik için ister yalnızca ek bir özellik için kaydolmasına ihtiyacınız olsun, bunu bu basit eğitimle yapmamak için hiçbir neden yok Bu eğitimde kullanıcı yönetiminin temellerini gözden geçireceğiz ve sonunda kendi web sitenize uygulayabileceğiniz basit bir Üye Alanı oluşturacağız.
Ekstra yardıma ihtiyacınız varsa veya bir kısayol istiyorsanız Envato Studio'daki PHP servis sağlayıcı çeşitlerine göz atın. Bu deneyimli geliştiriciler, hızlı bir hata düzeltmesinden tüm uygulamayı sıfırdan geliştirmeye kadar her konuda size yardımcı olabilir. Bu yüzden sadece sağlayıcılara göz atın, yorumları ve derecelendirmeleri okuyun ve sizin için doğru olanı seçin.
giriiş
Bu eğitimde, kullanıcılar arası özel mesajlaşma sistemiyle birlikte kullanıcı yönetim sistemi oluşturmanın her adımını inceleyeceğiz. Bunu, tüm kullanıcı bilgilerini depolamak için bir MySQL veritabanıyla PHP kullanarak yapacağız. Bu eğitim PHP'ye tamamen yeni başlayanlara yöneliktir, bu nedenle hiçbir ön bilgiye gerek yoktur - aslında deneyimli bir PHP kullanıcısıysanız biraz sıkılabilirsiniz!
Bu eğitimin amacı Oturumlara ve PHP'de Veritabanlarının kullanımına temel bir giriş yapmaktır. Her ne kadar bu eğitimin nihai sonucu size hemen yararlı görünmese de, bu eğitimden kazanacağınız beceriler, kendi üyelik sisteminizi oluşturmanıza olanak tanıyacaktır; kendi ihtiyaçlarınıza uygun.
Bu eğitime başlamadan önce aşağıdaki bilgilerin elinizde olduğundan emin olun:
- Veritabanı Ana Bilgisayar Adı- bu, veritabanınızın barındırıldığı sunucudur; çoğu durumda bu yalnızca "localhost" olacaktır.
- Veritabanı Adı, Veritabanı Kullanıcı Adı, Veritabanı Şifresi- Bu eğitime başlamadan önce, eğer yeteneğiniz varsa veya mevcut bir veritabanına bağlanmak için gerekli bilgiye sahipseniz, bir MySQL veritabanı oluşturmalısınız. Bu bilgiye eğitim boyunca ihtiyaç duyulacaktır.
Bu bilgiye sahip değilseniz barındırma sağlayıcınız bunu size sağlayabilmelidir.
Artık formaliteleri aradan çıkardığımıza göre, eğitime başlayalım!
Adım 1 - İlk Yapılandırma
Veritabanını ayarlama
Giriş bölümünde belirtildiği gibi, eğitimin bu noktasından sonra devam etmek için bir veritabanına ihtiyacınız vardır. Başlangıç olarak bu veritabanında kullanıcı bilgilerimizi saklayacak bir tablo oluşturacağız.
İhtiyacımız olan tablo kullanıcı bilgilerimizi saklayacak; amaçlarımız doğrultusunda basit bir tablo kullanacağız, ancak ihtiyacınız varsa ekstra sütunlarda daha fazla bilgi depolamak kolay olacaktır. Sistemimizde aşağıdaki dört sütuna ihtiyacımız var:
- Kullanıcı kimliği (Birincil anahtar)
- Kullanıcı adı
- Şifre
- E-postaAdresi
Veritabanı açısından, bir Birincil anahtar satırı benzersiz şekilde tanımlayan alandır. Bu durumda UserID bizim Birincil Anahtarımız olacaktır. Bunun bir kullanıcı her kaydolduğunda artmasını istediğimizden, özel MySQL seçeneğini - auto_increment kullanacağız.
Tablomuzu oluşturmak için gereken SQL sorgusu aşağıda yer almaktadır ve genellikle phpMyAdmin'in "SQL" sekmesinde çalıştırılacaktır.
CREATE TABLE `users' (`UserID` INT(25) NOT NULL AUTO_INCREMENT PRIMARY KEY, `Kullanıcı adı` VARCHAR(65) NOT NULL, `Password` VARCHAR(32) NOT NULL, `EmailAddress` VARCHAR(255) NOT NULL);
Temel Dosya Oluşturma
Projemizin oluşturulmasını kolaylaştırmak için oluşturduğumuz her dosyaya dahil edebileceğimiz bir temel dosya oluşturacağız. Bu dosya, yol boyunca bize yardımcı olacak belirli yapılandırma değişkenleriyle birlikte veritabanı bağlantı bilgilerini içerecektir.
Yeni bir dosya oluşturarak başlayın: base.php ve dosyaya aşağıdaki kodu girin:
Bu satırlardan birkaçına bir göz atalım mı? Burada kullandığımız ve henüz açıklamadığımız birkaç fonksiyon var, o yüzden hızlıca onlara bir göz atalım ve onları anlamlandıralım. PHP'nin temellerini zaten anlıyorsanız bu açıklamayı atlamak isteyebilirsiniz.
Oturum_başlangıcı();
Bu işlev yeni kullanıcı için bir oturum başlatır ve bu eğitimin ilerleyen kısımlarında, halihazırda oturum açmış olan kullanıcıları tanımamıza olanak sağlamak için bilgileri bu oturumda saklayacağız. Zaten bir oturum oluşturulmuşsa, bu işlev bunu tanıyacak ve bu oturumu bir sonraki sayfaya taşıyacaktır.
Mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL Hatası: " . mysql_error()); mysql_select_db($dbname) veya die("MySQL Hatası: " . mysql_error());
Bu işlevlerin her biri ayrı fakat bağlantılı bir görevi yerine getirir. mysql_connect fonksiyonu yukarıda verdiğimiz bilgileri kullanarak scriptimizi veritabanı sunucusuna bağlar ve mysql_select_db fonksiyonu daha sonra script ile hangi veritabanının kullanılacağını seçer. İşlevlerden herhangi biri tamamlanmazsa, kalıp işlevi otomatik olarak devreye girecek ve betiğin işlenmesini durduracak; tüm kullanıcılara MySQL Hatası olduğu mesajını bırakacaktır.
Adım 2 - Ön Uca Geri Dönün
İlk Olarak Ne Yapmamız Gerekiyor?
Sayfamızdaki en önemli öğe PHP'nin ilk satırıdır; bu satır yukarıda oluşturduğumuz dosyayı (base.php) içerecek ve esasen mevcut dosyamızdaki o dosyadaki her şeye erişmemize izin verecek. Bunu aşağıdaki PHP kod satırıyla yapacağız. index.php adında bir dosya oluşturun ve bu kodu en üste yerleştirin.
HTML Sayfasına Başlayın
Ön uçumuz için yapacağımız ilk şey, kullanıcıların oturum açmak için ayrıntılarını girebilecekleri veya zaten bir sayfada oturum açmışlarsa, daha sonra ne yapmak istediklerini seçebilecekleri bir sayfa oluşturmaktır. Bu derste kullanıcıların HTML/CSS'nin nasıl çalıştığına dair temel bilgiye sahip olduklarını varsayıyorum ve bu nedenle bu kodu ayrıntılı olarak açıklamayacağım; şu anda bu öğelerin stili kaldırılacak, ancak bunu daha sonra CSS stil sayfamızı oluşturduğumuzda değiştirebileceğiz.
Az önce oluşturduğumuz dosyayı (index.php) kullanarak, daha önce oluşturduğumuz PHP satırının altına aşağıdaki HTML kodunu girin.
Onlara Ne Göstereceğiz?
Sayfanın geri kalanını yayınlamadan önce kendimize sormamız gereken birkaç soru var:
- Kullanıcı zaten oturum açmış mı?
- Evet- onlara seçebilecekleri seçeneklerin olduğu bir sayfa göstermemiz gerekiyor.
- HAYIR
- Evet- ayrıntılarını kontrol etmemiz gerekiyor ve doğruysa siteye giriş yapacağız.
- HAYIR- bir sonraki soruya geçiyoruz.
Bu sorular aslında PHP kodumuza uygulayacağımız soruların aynısıdır. Bunu if ifadeleri şeklinde yapacağız. Yeni dosyalarınızın hiçbirine hiçbir şey girmeden önce kullanacağımız mantığa bir göz atalım.
Kafa karıştırıcı görünüyor değil mi? Bunu daha küçük bölümlere ayırıp tek tek üzerinden geçelim.
If(!empty($_SESSION["LoggedIn"]) && !empty($_SESSION["Kullanıcı adı"])) ( // kullanıcının ana sayfaya erişmesine izin ver )
Bir kullanıcı web sitemize giriş yaptığında, bilgilerini bir oturumda saklayacağız - bundan sonra herhangi bir noktada bu bilgiye özel bir global PHP dizisinde - $_SESSION - erişebiliriz. Değişkenin boş olup olmadığını kontrol etmek için empty fonksiyonunu kullanıyoruz! onun önünde. Bu nedenle şunu söylüyoruz:
$_SESSION["LoggedIn"] değişkeni boş değilse ve $_SESSION["Kullanıcı adı"] değişkeni boş değilse, bu kod parçasını yürütün.
Sonraki satır da aynı şekilde çalışır, yalnızca bu sefer $_POST genel dizisini kullanır. Bu dizi, bu eğitimin ilerleyen kısımlarında oluşturacağımız oturum açma formundan gönderilen tüm verileri içerir. Son satır yalnızca önceki ifadelerin hiçbiri karşılanmadığında yürütülür; bu durumda kullanıcıya bir giriş formu göstereceğiz.
Artık mantığı anladığımıza göre, bu bölümlerin arasına biraz içerik girelim. index.php dosyanızda, aşağıdakileri aşağıya girin.
üye alanı
=$_SESSION["EmailAddress"]?>
.
Başarı"; Eko " Şimdi sizi üye alanına yönlendiriyoruz.
"; Eko " "; ) else ( echo "Hata
"; Eko "Üzgünüz, hesabınız bulunamadı. Lütfen tekrar denemek için burayı tıklayın.
"; )) başka ( ?>Üye Girişi
Ziyaret ettiğiniz için teşekkürler! Lütfen aşağıdan giriş yapın veya kaydolmak için buraya tıklayın.
Umarız ilk ve son kod blokları kafanızı çok fazla karıştırmaz. Şimdi asıl üzerinde durmamız gereken şey, hepinizin bu eğitime gelme amacınızdır: PHP kodu. Şimdi ikinci bölümü satır satır inceleyeceğiz ve buradaki her kod parçasının ne için tasarlandığını açıklayacağım.
$kullanıcıadı = mysql_real_escape_string($_POST["kullanıcı adı"]); $şifre = md5(mysql_real_escape_string($_POST["şifre"]));
Bunun için açıklanması gereken iki fonksiyon vardır. İlk olarak, mysql_real_escape_string - veritabanı girişini temizlemek için çok kullanışlı bir işlev. Bu, hatasız bir önlem değildir, ancak bu, giriş formumuza yerleştirilen her şeyin istenmeyen kısımlarını çıkararak kötü niyetli bilgisayar korsanlarının çoğunluğunu dışarıda tutacaktır.İkincisi, md5. Burada ayrıntıya girmek imkansız olurdu, ancak bu işlev, meraklı gözlerin okumasını önlemek için kendisine iletilen her şeyi (bu durumda kullanıcının parolasını) şifreler.
$checklogin = mysql_query("SELECT * FROM user WHERE Kullanıcı Adı = "".$kullanıcıadı."" AND Şifre = "".$şifre."""); if(mysql_num_rows($checklogin) == 1) ( $row = mysql_fetch_array($checklogin); $email = $row["EmailAddress"]; $_SESSION["Kullanıcı adı"] = $kullanıcıadı; $_SESSION["EmailAddress"] = $e-posta; $_SESSION["Oturum Açıldı"] = 1;
Burada giriş kodumuzun özü var; Öncelikle veritabanımızda bir sorgu çalıştırıyoruz. Bu sorguda kullanıcı adı ve şifresi kullanıcının vermiş olduğu $username ve $password değerlerimiz ile eşleşen üyeye ait her şeyi araştırıyoruz. Bir sonraki satırda kaç sonuç aldığımızı kontrol ettiğimiz bir if ifadesi var; herhangi bir sonuç yoksa bu bölüm işlenmez. Ancak bir sonuç varsa, kullanıcının var olduğunu biliyoruz ve bu nedenle oturum açacağız.
Sonraki iki satır kullanıcının e-posta adresini almak içindir.Daha önce çalıştırdığımız sorgudan bu bilgiye zaten sahibiz, bu yüzden bu bilgiye kolayca erişebiliriz.İlk olarak veritabanından alınan verilerin bir dizisini alıyoruz. - bu durumda mysql_fetch_array PHP fonksiyonunu kullanıyoruz. Daha sonra kullanmamız için EmailAddress alanının değerini bir değişkene atadım.
Şimdi oturumu ayarladık. Kullanıcının kullanıcı adını ve e-posta adresini, bu formu kullanarak giriş yaptığını bilmemiz için özel bir değerle birlikte oturumda saklıyoruz.Bütün bunlar söylenip yapıldıktan sonra kullanıcı, kullanılarak Üye Alanına yönlendirilecektir. koddaki META YENİLEME.
Peki projemiz şu anda kullanıcıya nasıl görünüyor?
Harika! Artık insanların sitenize gerçekten girebildiğinden emin olmak için harekete geçmenin zamanı geldi.
İnsanların Kaydolmasına İzin Verin
Sitenizde bir giriş formunun olması iyi ve güzel, ancak şimdi kullanıcıların bunu kullanabilmesine izin vermemiz gerekiyor - bir giriş formu oluşturmamız gerekiyor. Register.php adında bir dosya oluşturun ve içine aşağıdaki kodu koyun.
Üzgünüz, bu kullanıcı adı alınmış. Lütfen geri dönüp tekrar deneyin.
"; ) else ( $registerquery = mysql_query("INSERT INTO kullanicilar (Kullanici adi, Parola, EmailAdresi) VALUES("".$kullanici adi."", "".$password.", "".$email."") " ); if($registerquery) ( echo "Başarı
"; Eko "Hesabınız başarılı bir şekilde oluşturulmuştur. Lütfen Giriş yapmak için tıklayınız.
"; ) else ( echo "Hata
"; Eko "Üzgünüz, kaydınız başarısız oldu. Lütfen geri dönüp tekrar deneyin.
"; )) ) ) else ( ?>Kayıt olmak
Kayıt olmak için lütfen aşağıya bilgilerinizi giriniz.