İyi gün dostları! PHP'de kullanıcı kaydına bir göz atalım. Öncelikle kullanıcı kaydımız için koşulları tanımlayalım:

  • Parola bir algoritma kullanılarak şifrelenir MD5
  • Şifre "tuz" olacak
  • Giriş meşgul kontrolü
  • Harf ile kullanıcı aktivasyonu.
  • Verilerin kaydedilmesi ve saklanması VTYS MySQL'i

Bu betiği yazmak için kullanıcı kaydının ne olduğunu anlamamız gerekiyor. Kullanıcı kaydı, gerçek kullanıcı verilerinin elde edilmesi, verilerin işlenmesi ve saklanmasıdır.

Basit bir ifadeyle, kayıt, bizim durumumuzda kullanıcıyı yetkilendirebileceğimiz belirli verilerin yalnızca bir kaydı ve depolanmasıdır - bu, Kullanıcı Adı ve Paroladır.

Yetkilendirme - belirli bir kişiye veya gruba belirli eylemleri gerçekleştirme haklarının yanı sıra bu eylemleri gerçekleştirmeye çalışırken bu hakları doğrulama süreci. Basitçe söylemek gerekirse, yetkilendirme yardımıyla sitemizdeki belirli bir içeriğe erişimi kısıtlayabiliriz.

Yetkilendirme ile girişimizi gerçekleştirmek için script dizin yapısına bir göz atalım. Komut dosyalarını mantıksal parçalara ayırmamız gerekiyor. Kayıt ve yetkilendirme modüllerini ayrı bir dizine yerleştirdik. Veritabanı bağlantısını da ayrı dizinlere yerleştireceğiz. MySQL, özel işlevlere sahip dosya, stil dosyası css ve şablonumuz HTML. Bu yapı, komut dosyaları arasında hızlı bir şekilde gezinmenizi sağlar. Bir sürü modül vb. içeren büyük bir siteniz olduğunu hayal edin. ve düzen yoksa böyle bir karmaşa içinde bir şeyler bulmak çok zor olacaktır.

Tüm verileri depolayacağımız için VTYS MySQL'i, ardından kayıt verilerini depolayacağımız küçük bir tablo oluşturalım.

Öncelikle veritabanında bir tablo oluşturmanız gerekir. Masayı arayalım bez_reg Nerede bez tablo önekidir ve kayıt Tablo ismi.

Tablo yapısı: bez_reg

-- -- `bez_reg` tablo yapısı -- `bez_reg` (`id` int(11) NULL DEĞİL AUTO_INCREMENT, `login` varchar(200) NULL DEĞİLSE, TABLO OLUŞTURUN, `pass` varchar(32) NULL DEĞİL) , `salt` varchar(32) NOT NULL, `active_hex` varchar(32) NOT NULL, `status` int(1) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Şimdi daha fazla çalışma için ana komut dosyalarını oluşturalım.

INDEX.PHP DOSYASI

CONFIG.PHP DOSYASI

"); ?>

Dosya 404.HTML

Hata 404

Hata 404

Sayfada 404 hatası oluştu.

Geri dönmek

BD.PHP dosyası

INDEX.HTML DOSYASI

Aktivasyon e-postası ile PHP MySQL kullanıcı kaydı

FUNCT.PHP DOSYASI

"."\n"; if(is_array($data)) ( foreach($data as $val) $err .= "

  • ".$val."
  • "."\n"; ) başka $hata .= "
  • ".$veri."
  • "."\n"; $hata .= ""."\n"; return $err; ) /**Basit MySQL sorgu sarıcı * @param string $sql */ function mysqlQuery($sql) ( $res = mysql_query($sql); /* Sonucu kontrol et Bu şunu gösterir) hatanın yanı sıra MySQL'e gönderilen gerçek sorgu.*/ if(!$res) ( $message = "Kötü sorgu: " . mysql_error() . "\n"; $message .= "Tüm sorgu : " . $ sql; die($message); ) return $res; ) /**Basit tuz üreteci * @param string $sql */ function salt() ( $salt = substr(md5(uniqid()), - 8); return $tuz; )

    Kayıt yazmaya başlayalım. Başlamak için, kullanıcının verilerini işlenmek üzere girebilmesi için bir kayıt formu şablonu oluşturmamız gerekecek. Ardından, kullanıcının girdiği verilerin doğruluğunu kontrol edecek olan form işleyicisinin kendisini yazmamız gerekecek. Veriler başarıyla doğrulandıktan sonra, veritabanımıza yazarız ve hesabını etkinleştirmesi için kullanıcıya bir e-posta göndeririz.

    REG.PHP DOSYASI

    Başarıyla kayıt oldunuz! Lütfen hesabınızı aktif edin!!"; //Hesabı etkinleştir if(isset($_GET["key"])) ( //Anahtarı kontrol et $sql = "SELECT * FROM `". BEZ_DBPREFIX ."reg` WHERE `active_hex` = "". escape_str ( $_GET["key"]) ."""; $res = mysqlQuery($sql); if(mysql_num_rows($res) == 0) $err = "Aktivasyon anahtarı geçersiz!"; //Hataları kontrol et ve kullanıcıya göster if(count($err) > 0) echo showErrorMessage($err); else ( //Kullanıcının adresini al $row = mysql_fetch_assoc($res); $email = $row["login"]; //Hesabı etkinleştir kullanıcı $sql = "UPDATE `".BEZ_DBPREFIX ."reg" SET `status` = 1 WHERE `login` = "".$email ."""; $res = mysqlQuery($sql); / /Aktivasyon e-postası gönder $title = " http://web sitesindeki hesabınız başarıyla etkinleştirildi"; $message = "Поздравляю Вас, Ваш аккаунт на http://сайт успешно активирован"; sendMessageMail($email, BEZ_MAIL_AUTOR, $title, $message); /*Перенаправляем пользователя на нужную нам страницу*/ header("Location:". BEZ_HOST ."less/reg/?mode=reg&active=ok"); exit; } } /*Если нажата кнопка на регистрацию, начинаем проверку*/ if(isset($_POST["submit"])) { //Утюжим пришедшие данные if(empty($_POST["email"])) $err = "Поле Email не может быть пустым!"; else { if(!preg_match("/^!} [e-posta korumalı](+\.)+(2,6)$/i", $_POST["email"])) $err = "E-posta yanlış girildi"."\n"; ) if(empty($_POST[ "pass" ])) $err = "Şifre alanı boş olamaz"; if(empty($_POST["pass2"])) $err = "Şifre doğrulama alanı boş olamaz"; //Hataları kontrol edin ve varsa kullanıcıya gösterin (count($err) > 0) echo showErrorMessage($err); else ( /*Girilen verileri kontrol etmeye devam et Eşleşen parolaları kontrol et*/ if($_POST["pass"] != $_POST["pass2" ] ) $err = "Şifreler uyuşmuyor"; //Hataları kontrol et ve kullanıcıya göster if(count($err) > 0) echo showErrorMessage($err); else ( /*Böyle bir kullanıcımız olup olmadığını kontrol et veritabanı* / $sql = "".BEZ_DBPREFIX .reg" WHERE `login` = "".escape_str($_POST["email"]) FROM `login`i SEÇİN." sql); if(mysql_num_rows($res) > 0) $err = "Üzgünüm Giriş: ".$_POST["e-posta"] ." meşgul!"; //Hataları kontrol edin ve kullanıcıya gösterin if(count($err) > 0) echo showErrorMessage($err); else ( //tuzun HASH değerini alın $salt = salt(); // Salt parola $pass = md5(md5($_POST["pass"]).$salt); /*Her şey yolunda giderse, veri tabanına veri yazın*/ $sql = "INSERT INTO `".BEZ_DBPREFIX ."reg ` VALUES("", "" .escape_str($_POST["email"]) ."", "".$pass ."", "".$salt ."", "".md5($salt) . "", 0)"; $ res = mysqlQuery($sql); //Aktivasyon e-postası gönder $url = BEZ_HOST ."less/reg/?mode=reg&key=".md5($salt); $title = "(! LANG:http:// /web sitesinde kayıt"; $message = "Для активации Вашего акаунта пройдите по ссылке ". $url .""; sendMessageMail($_POST["email"], BEZ_MAIL_AUTOR, $title, $message); //Сбрасываем параметры header("Location:". BEZ_HOST ."less/reg/?mode=reg&status=ok"); exit; } } } } ?>!}

    REG_FORM.HTML DOSYASI

    Aktivasyon e-postası ile PHP MySQL kullanıcı kaydı

    E-posta *:
    Şifre *:
    Şifre onayı *:

    Simgeli alanlar * gerekli

    Kullanıcı kaydımız hazır olduğuna göre sıra yetkilendirme yazmaya geldi. Kullanıcı yetkilendirmesi için bir form oluşturacağız, ardından bir yetkilendirme formu işleyicisi yazacağız ve son olarak bir komut dosyası oluşturacağız. show.php bu bize sistemde yetkili olup olmadığımızı gösterecek.

    AUTH.PHP DOSYASI

    0) echo showErrorMessage($err); else ( /*Kullanıcının kimliğini doğrulamak için bir veritabanı getirme sorgusu oluştur*/ $sql = "SELECT * FROM `". BEZ_DBPREFIX .reg` WHERE `login` = "". escape_str($_POST["email"]) ." " AND `status` = 1"; $res = mysqlQuery($sql); //Giriş eşleşirse, şifreyi kontrol edin if(mysql_num_rows($res) > 0) ( //Verileri tablodan alın $row = mysql_fetch_assoc( $res ); if(md5(md5($_POST["pass"]).$row["salt"]) == $row["pass"]) ( $_SESSION["user"] = true; // Parametreleri sıfırla header("Konum:". BEZ_HOST ."less/reg/?mode=auth"); çıkış; ) else echo showErrorMessage("Yanlış şifre!"); ) else echo showErrorMessage("Giriş ".$_POST["e-posta"] ." bulunamadı!"); ) ) ?>

    PHP'nin en son sürümüne sahip olanlar için, bu betiği kullanarak yayınlıyorum. PDOÇünkü eklenti MySQL kullanımdan kaldırılmıştır ve PHP'nin yeni sürümünden kaldırılmıştır. Kayıt ve yetkilendirme php mysql pdo'yu indirin

    Arşiv 24 Şubat 2015'te güncellendi.

    Dikkat: Bu komut dosyasını aşağıdaki gibi yerel bir sunucuda kullanıyorsanız DENWER,XAMPP, o zaman posta kutunuza mektup beklememelisiniz. Harfler taslakta posta göndermek. İÇİNDE denver onları yol boyunca bulabilirsin Z:\tmp\!sendmail\ Bu dosyaları herhangi bir e-posta istemcisinde açabilirsiniz.

    Bu yazıda öğreneceksiniz kayıt ve yetkilendirme formu nasıl oluşturulur HTML, JavaScript, PHP ve MySQL kullanarak. Bu tür formlar, türü ne olursa olsun hemen hemen her sitede kullanılmaktadır. Forum, çevrimiçi mağaza ve sosyal ağlar (Facebook, Twiter, Odnoklassniki gibi) ve diğer birçok site türü için oluşturulurlar.

    Yerel bilgisayarınızda bir siteniz varsa, umarım zaten vardır. Onsuz hiçbir şey işe yaramaz.

    Veritabanında Tablo Oluşturma

    Kullanıcı kaydını gerçekleştirmek için öncelikle bir Veritabanına ihtiyacımız var. Zaten sahipseniz, o zaman harika, yoksa onu yaratmanız gerekir. Makalede, bunun nasıl yapılacağını ayrıntılı olarak anlatıyorum.

    Ve böylece, bir Veritabanımız var (kısaltılmış DB), şimdi bir tablo oluşturmamız gerekiyor kullanıcılar kayıtlı kullanıcılarımızı ekleyeceğimiz.

    Veritabanında tablo nasıl oluşturulur, yazıda da anlattım. Bir tablo oluşturmadan önce, hangi alanları içereceğini tanımlamamız gerekir. Bu alanlar, kayıt formundaki alanlarla eşleşecektir.

    Biz de formumuzun hangi alanlara sahip olacağını düşündük, hayal ettik ve bir tablo oluşturduk. kullanıcılar bu alanlarla:

    • İD- Tanımlayıcı. Alan İD veritabanındaki her tabloda olmalıdır.
    • ilk adı- Adı kaydetmek için.
    • soy isim- Soyadını kaydetmek için.
    • e-posta- Posta adresini kaydetmek için. Giriş olarak e-posta kullanacağız, bu nedenle bu alan benzersiz olmalı, yani BENZERSİZ bir dizine sahip olmalıdır.
    • e-posta_durumu- Mailin onaylanıp onaylanmadığını gösteren alandır. Posta onaylanırsa 1, aksi takdirde 0 değerine sahip olacaktır.
    • şifre- Parolayı kaydetmek için.


    Kayıt formunuzda daha fazla alan olmasını istiyorsanız, onları da buraya ekleyebilirsiniz.

    İşte bu, masamız kullanıcılar hazır. Bir sonraki adıma geçelim.

    Veritabanı bağlantısı

    Veritabanını oluşturduk, şimdi ona bağlanmamız gerekiyor. MySQLi PHP uzantısını kullanarak bağlanacağız.

    Sitemizin klasöründe, adıyla bir dosya oluşturun. dbconnect.php, ve içine aşağıdaki betiği yazıyoruz:

    Veritabanı bağlantı hatası. Hata Açıklama: ".mysqli_connect_error()."

    "; exit(); ) // Bağlantı kodlamasını ayarlayın $mysqli->set_charset("utf8"); //Kolaylık için buraya sitemizin adını içerecek bir değişken ekleyin $address_site = "http://testsite .yerel" ; ?>

    Bu dosya dbconnect.php form işleyicilerine bağlanması gerekir.

    Değişkene dikkat edin $adres_site, burada üzerinde çalışacağım test sitemin adını belirttim. Buna göre sitenizin adını belirtirsiniz.

    site yapısı

    Şimdi web sitemizin HTML yapısına bir göz atalım.

    Dosyaları ayırmak için site üst bilgisini ve alt bilgisini taşıyın, başlık.php Ve altbilgi.php. Bunları tüm sayfalara bağlayacağız. Yani, ana (dosya index.php), kayıt formunun bulunduğu sayfaya (dosya form_register.php) ve yetkilendirme formunun bulunduğu sayfada (dosya form_auth.php).

    Bağlantılarımızla engelleyin, kayıt Ve yetki, tüm sayfalarda görüntülenecek şekilde sitenin başlığına ekleyin. Bir bağlantı girilecek kayıt formu sayfası(dosya form_register.php) ve diğerini içeren sayfaya İzin formu(dosya form_auth.php).

    header.php dosyasının içeriği:

    sitemizin adı

    Sonuç olarak, ana sayfamız şöyle görünür:


    Elbette siteniz tamamen farklı bir yapıya sahip olabilir ama bu bizim için şu anda önemli değil. Önemli olan, kayıt ve yetkilendirme için bağlantılar (düğmeler) olmasıdır.

    Şimdi kayıt formuna geçelim. Zaten anladığınız gibi, dosyada var form_register.php.

    Veritabanına gidiyoruz (phpMyAdmin'de), tablo yapısını açıyoruz kullanıcılar ve hangi alanlara ihtiyacımız olduğunu görün. Bu nedenle, ad ve soyadı girmek için alanlara, posta adresi (E-posta) girmek için bir alana ve şifre girmek için bir alana ihtiyacımız var. Ve güvenlik amacıyla bir captcha giriş alanı ekleyeceğiz.

    Sunucuda, kayıt formunun işlenmesinin bir sonucu olarak, kullanıcının kayıt yapamayacağı çeşitli hatalar meydana gelebilir. Bu nedenle, kullanıcının kaydın neden başarısız olduğunu anlaması için kendisine bu hatalarla ilgili mesajların gösterilmesi gerekir.

    Formu görüntülemeden önce, oturumdaki hata mesajlarını görüntülemek için bir blok ekliyoruz.

    Ve başka bir an, eğer kullanıcı zaten yetkiliyse ve ilgi uğruna, tarayıcının adres çubuğuna yazarak doğrudan kayıt sayfasına girer. website_url/form_register.php, bu durumda, kayıt formu yerine, zaten kayıtlı olduğu için bir başlık göstereceğiz.

    Genel olarak, dosya kodu form_register.php böyle aldık:

    Zaten kayıtlısınız

    Tarayıcıda, kayıt sayfası şöyle görünür:


    Kullanarak gerekli özellik, tüm alanları zorunlu hale getirdik.

    Kayıt formu koduna dikkat edin, burada güvenlik kodu görüntülenir:


    Görüntü için src özniteliğinin değerinde, dosyanın yolunu belirttik. captcha.php, bu captcha'yı oluşturur.

    Dosyanın koduna bakalım captcha.php:

    Kod iyi yorumlanmıştır, bu yüzden sadece bir noktaya odaklanacağım.

    Bir fonksiyonun içinde imageTtfText(), yazı tipinin yolu belirtilir verdana.ttf. Captcha'nın düzgün çalışması için bir klasör oluşturmalıyız. yazı tipleri, ve yazı tipi dosyasını oraya koyun verdana.ttf. İnternetten bulup indirebilir veya bu makalenin materyalleri ile arşivden alabilirsiniz.

    HTML yapısıyla işimiz bitti, artık devam etme zamanı.

    e-postayı jQuery ile doğrulama

    Herhangi bir formun, hem istemci tarafında (JavaScript, jQuery kullanarak) hem de sunucu tarafında girilen verilerin doğrulanması gerekir.

    E-posta alanına özellikle dikkat etmeliyiz. Girilen e-posta adresinin geçerli olması çok önemlidir.

    Bu giriş alanı için email (type="email") tipini belirliyoruz, bu bizi hatalı formatlara karşı bir nebze olsun uyarıyor. Ancak bu yeterli değildir, çünkü tarayıcının bize sağladığı kod denetçisi aracılığıyla özniteliğin değerini kolayca değiştirebilirsiniz. tipİle e-posta Açık metin, işte bu kadar, çekimiz artık geçerli olmayacak.


    Ve bu durumda, daha güvenilir bir kontrol yapmalıyız. Bunu yapmak için JavaScript'ten jQuery kitaplığını kullanacağız.

    jQuery kitaplığını bağlamak için dosyada başlık.php etiketler arasında , kapanış etiketinden önce , şu satırı ekleyin:

    Bu satırdan hemen sonra e-posta doğrulama kontrol kodunu ekleyin. Buraya girilen şifrenin uzunluğunu kontrol etmek için kodu ekliyoruz. En az 6 karakter uzunluğunda olmalıdır.

    Bu betiğin yardımıyla girilen e-posta adresinin geçerliliğini kontrol ediyoruz. Kullanıcı yanlış E-posta girdiyse, bununla ilgili bir hata görüntüler ve formun gönder düğmesini devre dışı bırakırız. Her şey yolundaysa, hatayı kaldırır ve formun gönder düğmesini etkinleştiririz.

    Ve böylece, müşteri tarafında form doğrulama ile işimiz bitti. Şimdi birkaç kontrol yapacağımız ve veritabanına veri ekleyeceğimiz sunucuya gönderebiliriz.

    kullanıcı kaydı

    Formu işlenmek üzere dosyaya gönderiyoruz kayıt.php, POST yöntemi aracılığıyla. Öznitelik değerinde belirtilen bu işleyici dosyasının adı aksiyon. Ve gönderme yöntemi, öznitelik değerinde belirtilir. yöntem.

    bu dosyayı aç kayıt.php ve yapmamız gereken ilk şey, bir oturum başlatma işlevi yazmak ve daha önce oluşturduğumuz dosyayı dahil etmek. dbconnect.php(Bu dosyada veri tabanına bağlantı yaptık). Ve yine de, hücreleri hemen ilan edin hata mesajları Ve başarı mesajları oturum global dizisinde. İÇİNDE hata mesajları form işleme sırasında oluşan tüm hata mesajlarını kaydedeceğiz ve başarı mesajları Mutluluk mesajları yazalım.

    Devam etmeden önce kontrol etmeliyiz formun hiç gönderilip gönderilmediği. Saldırgan bir özelliğin değerine bakabilir aksiyon formdan ve hangi dosyanın bu formu işlediğini öğrenin. Ve tarayıcının adres çubuğuna aşağıdaki adresi yazarak doğrudan bu dosyaya gitme fikrini bulabilir: http://site_site/register.php

    Bu nedenle, global POST dizisinde, adı formdaki "Kaydol" düğmemizin adıyla eşleşen bir hücre olup olmadığını kontrol etmemiz gerekiyor. Böylece "Kayıt Ol" butonuna basılıp basılmadığını kontrol etmiş oluyoruz.

    Saldırgan doğrudan bu dosyaya gitmeye çalışırsa bir hata mesajı alır. $address_site değişkeninin sitenin adını içerdiğini ve dosyada bildirildiğini hatırlatırım. dbconnect.php.

    Hata! ana Sayfa .

    "); } ?>

    Oturumdaki captcha değeri, dosyada oluşturulurken eklendi captcha.php. Bir hatırlatma olarak, bu kod parçasını dosyadan bir kez daha göstereceğim. captcha.php, burada captcha değeri oturuma eklenir:

    Şimdi testin kendisine geçelim. Dosyada kayıt.php, "Kaydol" düğmesine basılıp basılmadığını veya daha doğrusu yorumun nerede olduğunu kontrol ettiğimiz if bloğunun içinde " // (1) Bir sonraki kod parçası için yer"Biz yazarız:

    //Alınan captcha'yı kontrol edin //Dizenin başından ve sonundan itibaren boşlukları kırpın $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha)( //Alınan değeri oturumdaki değerle karşılaştırın. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Eğer captcha doğru değilse, kullanıcıyı kayıt sayfasına geri döndürün, orada yanlış captcha'yı girdiğine dair bir hata mesajı görüntüleyeceğiz. $error_message = "

    Hata! Yanlış captcha'yı girdiniz

    "; // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] = $error_message; // Kullanıcıyı kayıt sayfası başlığına döndürün ("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Location: " .$address_site ."/form_register.php"); //Komut dosyasını durdurun exit(); ) // (2) Bir sonraki kod parçası için yerleştirin )else( //Eğer captcha geçilmemişse veya boşsa çık ("

    Hata! Doğrulama kodu yani captcha kodu yoktur. Ana sayfaya gidebilirsiniz.

    "); }

    Ardından, POST dizisinden alınan verileri işlememiz gerekiyor. Her şeyden önce, global POST dizisinin içeriğini, yani orada adları formumuzdaki giriş alanlarının adlarıyla eşleşen hücreler olup olmadığını kontrol etmemiz gerekir.

    Hücre varsa bu hücreden stringin başından ve sonundan itibaren boşlukları kırpıyoruz, aksi halde kullanıcıyı kayıt formunun olduğu sayfaya geri yönlendiriyoruz.

    Ayrıca boşluklar kırpıldıktan sonra değişkene bir string ekliyoruz ve bu değişkenin boş olup olmadığını kontrol ediyoruz, boş değilse devam ediyoruz, aksi takdirde kullanıcıyı tekrar kayıt formu ile sayfaya yönlendiriyoruz.

    Bu kodu belirtilen konuma yapıştırın // (2) Bir sonraki kod parçası için yer".

    /* $_POST global dizisinin formdan gönderilen verileri içerip içermediğini kontrol edin ve gönderilen verileri düzenli değişkenler içine alın.*/ if(isset($_POST["ad"]))( // Başındaki ve sonundaki boşlukları kırpın string $first_name = trim($_POST["ad"]); //Değişkenin boş olup olmadığını kontrol edin if(!empty($first_name))( // Güvenlik için özel karakterleri HTML varlıklarına dönüştürün $first_name = htmlspecialchars( $first_name, ENT_QUOTES) ; )else( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Adınızı giriniz

    Ad alanı eksik

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); ) if( isset($_POST["soyadı"]))( // Dizinin başındaki ve sonundaki boşlukları kırpın $last_name = trim($_POST["soyadı"]); if(!empty($soyadı)) ( // Güvenlik için özel karakterleri HTML varlıklarına dönüştürün $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Soyadınızı giriniz

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); ) )else ( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Ad alanı eksik

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); ) if( isset($_POST["email"]))( // Dizinin başındaki ve sonundaki boşlukları kırpın $email = trim($_POST["email"]); if(!empty($email)) ( $email = htmlspecialchars ($email, ENT_QUOTES); // (3) E-posta adresinin biçimini ve benzersizliğini kontrol etmek için kod yeri )else( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages" ] .= "

    E-postanızı giriniz

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); ) )else ( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); ) if( isset($_POST["şifre"]))( // Dizinin başındaki ve sonundaki boşlukları kırpın $şifre = trim($_POST["şifre"]); if(!empty($şifre)) ( $password = htmlspecialchars ($password, ENT_QUOTES); //Şifreyi şifrele $password = md5($password."top_secret"); )else( // Hata mesajını oturuma kaydet. $_SESSION["error_messages"] .= "

    Şifrenizi girin

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); ) )else ( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); ) // (4) Veritabanına kullanıcı ekleme kodunun yeri

    Alan özel bir öneme sahiptir. e-posta. Alınan posta adresinin biçimini ve veritabanındaki benzersizliğini kontrol etmeliyiz. Yani, aynı e-posta adresine sahip bir kullanıcının zaten kayıtlı olup olmadığı.

    Belirtilen yerde" // (3) Posta adresinin biçimini ve benzersizliğini kontrol etmek için kod yeri" aşağıdaki kodu ekleyin:

    //Normal ifadeyi kullanarak alınan e-posta adresinin biçimini kontrol edin $reg_email = "/^**@(+(*+)*\.)++/i"; //Alınan e-posta adresinin formatı normal ifadeyle eşleşmiyorsa if(!preg_match($reg_email, $email))( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Geçersiz bir e-posta girdiniz

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); ) // Veritabanında zaten böyle bir adres olup olmadığını kontrol edin $result_query = $mysqli->query("SELECT `email` FROM `users` WHERE `email`="".$email."""); Varsa tam olarak bir satırsa, bu e-posta adresine sahip kullanıcı zaten kayıtlı if($result_query->num_rows == 1)( //Eğer sonuç yanlış değilse if(($row = $result_query->fetch_assoc()) ! = false) ( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Bu e-posta adresine sahip kullanıcı zaten kayıtlı

    "; //Kullanıcıyı kayıt sayfası başlığına döndürün("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); )else( //Hata mesajını kaydedin oturuma .$_SESSION["error_messages"] .= "

    Veritabanı sorgusunda hata

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Location: ".$address_site."/form_register.php"); ) /* seçimi kapat */ $ result_query-> close(); //komut dosyasını durdurun exit(); ) /* seçimi kapatın */ $result_query->close();

    Ve böylece, tüm kontrolleri bitirdik, sıra kullanıcıyı veri tabanına eklemeye geldi. Belirtilen yerde" // (4) Veritabanına bir kullanıcı eklemek için kod yeri" aşağıdaki kodu ekleyin:

    //Veritabanına kullanıcı eklemek için sorgu $result_query_insert = $mysqli->query("INSERT INTO `users` (ad, soyad, e-posta, şifre) VALUES ("".$ad_adı."", "".$soyadı ." ", "".$email."", "".$password."")"); if(!$result_query_insert)( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Veritabanına bir kullanıcı eklemek için hata isteği

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); )else( $_SESSION["success_messages"] = "

    Kayıt başarıyla tamamlandı!!!
    Artık kullanıcı adınızı ve şifrenizi kullanarak giriş yapabilirsiniz.

    "; //Kullanıcıyı oturum açma sayfasına gönder header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Location: ".$address_site."/form_auth.php"); ) /* İsteği tamamla */ $ result_query_insert-> close(); //veritabanı bağlantısını kapat $mysqli->close();

    Veritabanına kullanıcı ekleme isteğinde bir hata oluşursa, oturuma bu hatayla ilgili bir mesaj ekler ve kullanıcıyı kayıt sayfasına döndürürüz.

    Aksi takdirde, her şey yolunda giderse, oturuma bir mesaj da ekliyoruz, ancak bu zaten daha keyifli, yani kullanıcıya kaydın başarılı olduğunu söylüyoruz. Ve yetkilendirme formunun bulunduğu sayfaya yönlendiriyoruz.

    E-posta adresinin biçimini ve parolanın uzunluğunu kontrol etmek için komut dosyası dosyadadır başlık.php, dolayısıyla bu formdaki alanları da etkiler.

    Oturum ayrıca dosyada başlatılır başlık.php, yani dosyada form_auth.php Bir hata aldığımız için oturumun başlatılmasına gerek yoktur.


    Dediğim gibi, posta adresinin biçimini ve parolanın uzunluğunu kontrol eden komut dosyası da burada çalışır. Bu nedenle, kullanıcı yanlış e-posta adresi veya kısa şifre girerse, hemen bir hata mesajı alacaktır. Düğme içeri gel inaktif hale gelecektir.

    Hataları düzelttikten sonra, düğme içeri gel aktif hale gelir ve kullanıcı formu işleneceği sunucuya gönderebilir.

    Kullanıcı yetkilendirmesi

    değer atfetmek aksiyon yetkilendirme formunun bir dosyası var auth.php, bu, formun bu dosyada işleneceği anlamına gelir.

    Öyleyse dosyayı açalım auth.php ve yetkilendirme formunu işlemek için kodu yazın. Yapılacak ilk şey, oturumu başlatmak ve dosyayı dahil etmektir. dbconnect.php veritabanına bağlanmak için.

    //Form işleme sırasında oluşabilecek hataları eklemek için bir hücre tanımlayın. $_SESSION["hata_mesajları"] = ""; //Başarılı mesajlar eklemek için bir hücre tanımlayın $_SESSION["success_messages"] = "";

    /* Formun gönderilip gönderilmediğini, yani Oturum Aç düğmesinin tıklanıp tıklanmadığını kontrol edin. Evet ise, daha ileri gidiyoruz, değilse, kullanıcıya doğrudan bu sayfaya gittiğini belirten bir hata mesajı göstereceğiz. */ if(isset($_POST["btn_submit_auth"]) && !empty($_POST["btn_submit_auth"]))( //(1) Bir sonraki kod parçası için yer )else( çıkış("

    Hata! Bu sayfaya doğrudan eriştiniz, bu nedenle işlenecek veri yok. Ana sayfaya gidebilirsiniz.

    "); }

    //Alınan captcha'yı kontrol edin if(isset($_POST["captcha"]))( //Dizenin başındaki ve sonundaki boşlukları kırpın $captcha = trim($_POST["captcha"]); if(!empty ($captcha )( //Alınan değeri oturumdaki değerle karşılaştırın. if(($_SESSION["rand"] != $captcha) && ($_SESSION["rand"] != ""))( // Eğer captcha geçersiz ise, kullanıcıyı yetkilendirme sayfasına geri döndürürüz ve orada yanlış captcha'yı girdiğine dair bir hata mesajı gösteririz.$error_message = "

    Hata! Yanlış captcha'yı girdiniz

    "; // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] = $error_message; // Kullanıcıyı yetkilendirme sayfası başlığına döndürün ("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Location: " .$address_site ."/form_auth.php"); //Komut dosyasını durdurun exit(); ) )else( $error_message = "

    Hata! Captcha giriş alanı boş olmamalıdır.

    "; // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] = $error_message; // Kullanıcıyı yetkilendirme sayfası başlığına döndürün ("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Location: " .$address_site ."/form_auth.php"); //Komut dosyasını durdur exit(); ) //(2) Posta adresini işlemek için yer //(3) Parolayı işlemek için yer //(4) İçin yer veritabanına sorgu yapmak )else ( //captcha geçilmezse exit("

    Hata! Doğrulama kodu yani captcha kodu yoktur. Ana sayfaya gidebilirsiniz.

    "); }

    Kullanıcı doğrulama kodunu doğru girdiyse devam ediyoruz, aksi halde yetkilendirme sayfasına geri dönüyoruz.

    Email adresi doğrulaması

    // Dizinin başındaki ve sonundaki boşlukları kırpın $email = trim($_POST["email"]); if(isset($_POST["email"]))( if(!empty($email))( $email = htmlspecialchars($email, ENT_QUOTES); //Normal ifadeyi kullanarak alınan e-posta adresinin formatını kontrol edin $ reg_email = " /^**@(+(*+)*\.)++/i"; //Alınan e-posta adresinin biçimi normal ifadeyle eşleşmiyorsa if(!preg_match($reg_email, $email) )( // Oturum hata mesajına kaydet.$_SESSION["error_messages"] .= "

    Geçersiz bir e-posta girdiniz

    "; //Kullanıcıyı yetkilendirme sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_auth.php"); //Komut dosyasını durdurun exit(); ) )else ( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Posta adresini (e-posta) girme alanı boş olmamalıdır.

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_register.php"); //Komut dosyasını durdurun exit(); ) )else ( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Email girmek için alan yok

    "; //Kullanıcıyı yetkilendirme sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_auth.php"); //Komut dosyasını durdurun exit(); ) // (3) Şifre işleme yeri

    Kullanıcı bir e-posta adresini yanlış biçimde girdiyse veya e-posta adresi alanındaki değer boşsa, onu, bununla ilgili bir mesaj görüntülediğimiz yetkilendirme sayfasına döndürürüz.

    Parola kontrolu

    İşlenecek bir sonraki alan şifre alanıdır. Belirlenen yere" //(3) Parola işleme yeri", Biz yazarız:

    If(isset($_POST["şifre"]))( // Dizinin başındaki ve sonundaki boşlukları kırpın $şifre = trim($_POST["şifre"]); if(!empty($şifre))( $password = htmlspecialchars($password, ENT_QUOTES); // Şifreyi şifrele $password = md5($password."top_secret"); )else( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] . = "

    Şifrenizi girin

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_auth.php"); //Komut dosyasını durdurun exit(); ) )else ( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Şifre girmek için alan yok

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_auth.php"); //Komut dosyasını durdurun exit(); )

    Burada, md5 () işlevini kullanarak, alınan şifreyi şifreliyoruz, çünkü veritabanında şifreli biçimde şifrelerimiz var. Bizim durumumuzda şifrelemede ek gizli kelime " çok_gizli", kullanıcıyı kaydederken kullanılmış olmalıdır.

    Şimdi mail adresi gelen mail adresine ve şifresi de alınan şifreye eşit olan bir kullanıcı seçimi üzerinden veri tabanına sorgulama yapmanız gerekiyor.

    //Kullanıcının seçimine göre veritabanına sorgu. $result_query_select = $mysqli->query("SELECT * FROM `users` WHERE email = "".$email."" AND password = "".$password."""); if(!$result_query_select)( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Veritabanından kullanıcı seçiminde sorgu hatası

    "; //Kullanıcıyı kayıt sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_auth.php"); //Komut dosyasını durdurun exit(); )else( //Veritabanında bu tür verilere sahip kullanıcı olup olmadığını kontrol edin ve ardından bir hata mesajı görüntüleyin if($result_query_select->num_rows == 1)( // Girilen veriler veritabanındaki verilerle eşleşiyorsa, kaydedin oturum dizisi için kullanıcı adı ve şifre $_SESSION["email"] = $email; $_SESSION["password"] = $password; //Kullanıcıyı ana sayfa başlığına döndür("HTTP/1.1 301 Kalıcı Olarak Taşındı" ); header("Konum: ".$address_site ."/index.php"); )else( // Hata mesajını oturuma kaydedin. $_SESSION["error_messages"] .= "

    Yanlış kullanıcı adı ve / veya şifre

    "; //Kullanıcıyı yetkilendirme sayfasına döndürün header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Konum: ".$address_site."/form_auth.php"); //Komut dosyasını durdurun exit(); ) )

    Site çıkışı

    Ve uyguladığımız son şey çıkış prosedürü. Şu anda, başlıkta yetkilendirme sayfasına ve kayıt sayfasına bağlantılar gösteriyoruz.

    Site başlığında (dosya başlık.php), oturumu kullanarak, kullanıcının oturum açmış olup olmadığını kontrol ederiz. Değilse, kayıt ve yetkilendirme bağlantılarını gösteririz, aksi takdirde (yetki verilmişse), kayıt ve yetkilendirme bağlantıları yerine bağlantıyı gösteririz çıkış.

    Dosyadan değiştirilmiş kod parçası başlık.php:

    Kayıt

    çıkış

    Siteden çıkış linkine tıkladığınızda dosyanın içine giriyoruz. çıkış.php, oturumdaki e-posta adresi ve şifreyle hücreleri yok ettiğimiz yer. Bundan sonra, kullanıcıyı bağlantının tıklandığı sayfaya geri döndürürüz. çıkış.

    dosya kodu çıkış.php:

    Bu kadar. Şimdi nasıl olduğunu biliyorsun kayıt ve yetkilendirme formlarını uygulamak ve işlemek sitenizdeki kullanıcı Bu formlar hemen hemen her sitede bulunur, bu nedenle her programcının bunları nasıl oluşturacağını bilmesi gerekir.

    Hem istemci tarafında (tarayıcıda, JavaScript, jQuery kullanarak) hem de sunucu tarafında (PHP dili kullanarak) girdi verilerinin nasıl doğrulanacağını da öğrendik. biz de öğrendik çıkış prosedürünü uygula.

    Tüm komut dosyaları test edildi ve çalışıyor. Bu küçük sitenin dosyalarının bulunduğu arşivi bu linkten indirebilirsiniz.

    Gelecekte tarif edeceğim bir makale yazacağım. Bir de (sayfayı yeniden yüklemeden) anlatacağım bir yazı yazmayı planlıyorum. Bu yüzden yeni yazılarımdan haberdar olmak için siteme abone olabilirsiniz.

    Herhangi bir sorunuz varsa lütfen iletişime geçin, ayrıca makalede herhangi bir hata fark ederseniz lütfen bana bildirin.

    Ders Planı (Bölüm 5):

    1. Yetkilendirme Formu için HTML Yapısı Oluşturma
    2. Alınan verileri işleriz
    3. Kullanıcının selamlamasını sitenin başlığında gösteriyoruz

    Makaleyi beğendiniz mi?

    Laravel, Composer'ın proje bağımlılıklarını yönetmesini gerektirir. Bu yüzden Laravel'i kurmadan önce, sisteminizde Composer'ın kurulu olduğundan emin olun. Composer'ı ilk kez duyuyorsanız, bu, düğümün npm'sine benzer bir php bağımlılık yönetimi aracıdır.

    Composer'ı makinenize yüklemek için şu gönderiyi kontrol edin:

    Laravel'i Windows'a Kurmak:

    Windows makinesine laravel yüklemek için aşağıdaki adımları izleyin. Xampp/wamp yığınınız ne olursa olsun, her ikisi için de çalışır. WAMP'ta, laravel'i "www" klasörüne ve XAMPP'ye, tabii ki "htdocs" kurduğunuzdan emin olun.

    ADIM-1) XAMPP'de "htdocs" klasörünü açın, SHIFT tuşunu basılı tutun ve klasöre sağ tıklayın ve "komut penceresini burada aç" seçeneğini seçin. Alternatif olarak, komut penceresini açabilir ve dizini "xampp/htdocs" olarak değiştirebilirsiniz.

    ADIM-2) Aşağıdaki komutu giriniz.

    Besteci proje oluşturma laravel/laravel my_laravel_site --prefer-dist

    Burada "my_laravel_site" laravel dosyalarının kurulacağı klasör adıdır. Bunu beğeninize göre değiştirin.

    ADIM-3) Laravel kurulumu biraz zaman alacağı için şimdi sabırlı olma zamanı.

    ADIM-4) Kurulduktan sonra, komut isteminde dizini "my_laravel_site" (cd "my_laravel_site") olarak değiştirin ve aşağıdaki komutu girin.

    php usta hizmet

    ADIM-5) Bu, bir url ile birlikte "Laravel geliştirme sunucusu başladı:" gibi bir mesaj gösterecektir.

    ADIM-6) URL'yi kopyalayıp tarayıcıya yapıştırın. İşler yolunda giderse, laravel karşılama ekranını görürsünüz.

    ADIM-7) Bitti! Laravel'i Windows makinesine başarıyla kurdunuz ve kullanıma hazırsınız.

    Uygulama Anahtarını Ayarlama:

    Laravel, kurulumdan sonra çok az yapılandırma gerektirir. Uygulama anahtarını ayarlamanızı gerektirir. Bu, oturumu ve diğer hassas verileri şifrelemek için kullanılan, 32 karakterlik rastgele bir dizidir. Genellikle bu, besteci veya laravel yükleyici aracılığıyla laravel kurduğunuzda otomatik olarak ayarlanır.

    Ayarlanmamışsa, manuel olarak yapmanız gerekir. Öncelikle uygulama kökünüzde ".env.example" dosyasını ".env" olarak yeniden adlandırdığınızdan emin olun. Ardından komut istemini açın ve laravel proje klasörüne geçin. Şimdi anahtarı oluşturmak için aşağıdaki komutu çalıştırın.

    php artisan anahtarı:oluştur

    Oluşturulan bu anahtarı ".env" dosyasındaki APP_KEY değişkenine kopyalayın. Kaydedin ve bitirdiniz.

    Belirli Laravel Sürümünü Yükleme:

    Yukarıda verilen yöntem, bestecinin laravel'in en son sürümünü indirmesini ve kurmasını sağlayacaktır. Makinenize laravel'in önceki sürümlerini yüklemek istiyorsanız, ilgili sürüm numarasını create-project komutuna eklediğinizden emin olun.

    Besteci create-project laravel/laravel=5.4 proje-adınız --prefer-dist Ayrıca Oku:

    Aynı şekilde yapabilirsin windows'ta besteci kullanarak laravel'i kolayca kurun. Umarım bu öğreticiyi yararlı bulursunuz. Beğendiyseniz lütfen sosyal çevrenizde paylaşın.

    Bu eğitimde, kullanıcıların PHP ve MySQL kullanarak kullanıcı adı, e-posta ve şifre sağlayarak bir hesap oluşturabilecekleri, oturum açabilecekleri ve çıkış yapabilecekleri bir kullanıcı kayıt sistemi oluşturma sürecinin tamamında size yol gösteriyorum. Ayrıca, bazı sayfaları yalnızca oturum açmış kullanıcılar için nasıl erişilebilir hale getirebileceğinizi de göstereceğim. Oturum açmamış başka bir kullanıcı sayfaya erişemez.

    Video tercih ederseniz YouTube kanalımdan izleyebilirsiniz.

    Yapmamız gereken ilk şey veritabanımızı kurmak.

    adlı bir veritabanı oluşturun. kayıt. İçinde kayıt adlı bir tablo ekleyin. kullanıcılar. Users tablosu aşağıdaki dört alanı alacaktır.

    • kullanıcı adı - varchar(100)
    • e-posta - varchar(100)
    • şifre - varchar(100)

    Bunu PHPMyAdmin gibi bir MySQL istemcisi kullanarak oluşturabilirsiniz.

    Veya aşağıdaki SQL betiğini kullanarak MySQL komut isteminde oluşturabilirsiniz:

    CREATE TABLE `users` (`id` int(11) NULL DEĞİL AUTO_INCREMENT PRIMARY KEY,`username` varchar(100) NOT NULL,`email` varchar(100) NOT NULL,`password` varchar(100) NOT NULL) MOTOR =InnoDB DEFAULT CHARSET=latin1;

    Ve veritabanı ile bu kadar.

    Şimdi adlı bir klasör oluşturun. kayıt sunucumuzun erişebileceği bir dizinde. yani klasörü htdocs içinde (XAMPP sunucusu kullanıyorsanız) veya içinde oluşturun www(wampp sunucusu kullanıyorsanız).

    klasörün içinde kayıt, aşağıdaki dosyaları oluşturun:

    Bu dosyaları seçtiğiniz bir metin düzenleyicide açın. Benimki Yüce Metin 3.

    kullanıcı kaydetme

    register.php dosyasını açın ve içine aşağıdaki kodu yapıştırın:

    register.php:

    Kayıt olmak

    Zaten bir üye misiniz? kayıt olmak

    Buraya kadar karmaşık bir şey yok değil mi?

    Burada dikkat edilmesi gereken birkaç şey:

    Birincisi, formumuzu aksiyonöznitelik register.php olarak ayarlanmıştır. Bu, form gönder düğmesine tıklandığında, formdaki tüm verilerin aynı sayfaya (register.php) gönderileceği anlamına gelir. Kodun bu form verilerini alan kısmı server.php dosyasına yazılır ve bu yüzden onu register.php dosyasının en üstüne dahil ediyoruz.

    Form hatalarını görüntülemek için error.php dosyasını eklediğimize de dikkat edin. Yakında buna geleceğiz.

    Head bölümünde de görebileceğiniz gibi bir style.css dosyasına link veriyoruz. style.css dosyasını açın ve içine aşağıdaki CSS'yi yapıştırın:

    * ( kenar boşluğu: 0 piksel; dolgu: 0 piksel; ) gövde ( yazı tipi boyutu: %120; arka plan: #F8F8FF; ) .başlık ( genişlik: %30; kenar boşluğu: 50 piksel otomatik 0 piksel; renk: beyaz; arka plan: #5F9EA0; metin -align: center; border: 1px solid #B0C4DE; border-bottom: yok; border-radius: 10px 10px 0px 0px; padding: 20px; ) form, .content (genişlik: %30; marj: 0px otomatik; dolgu: 20px ; kenarlık: 1px düz #B0C4DE; arka plan: beyaz; sınır yarıçapı: 0px 0px 10px 10px; ) .input-group ( marj: 10px 0px 10px 0px; ) .input-group etiketi ( display: block; text-align: left ; kenar boşluğu: 3 piksel; ) .giriş grubu girişi ( yükseklik: 30 piksel; genişlik: %93; dolgu: 5 piksel 10 piksel; yazı tipi boyutu: 16 piksel; sınır yarıçapı: 5 piksel; kenarlık: 1 piksel düz gri; ) .btn ( dolgu: 10 piksel; yazı tipi boyutu: 15 piksel; renk: beyaz; arka plan: #5F9EA0; sınır: yok; sınır yarıçapı: 5 piksel; ) .error (genişlik: %92; kenar boşluğu: 0px otomatik; dolgu: 10px; kenarlık: 1px katı # a94442; color: #a94442; background: #f2dede; border-radius: 5px; text-align: left; ) .success ( color: #3c7 63d; arka plan: #dff0d8; kenarlık: 1 piksel katı #3c763d; kenar boşluğu: 20 piksel )

    Şimdi form güzel görünüyor.

    Şimdi formdan gönderilen bilgileri alacak kodu yazalım ve bilgileri veritabanında depolayalım (kaydedelim). Daha önce söz verdiğimiz gibi bunu server.php dosyasında yapıyoruz.

    server.php dosyasını açın ve içine şu kodu yapıştırın:

    sunucu.php

    Oturumlar, oturum açmış kullanıcıları izlemek için kullanılır ve bu nedenle dosyanın başına bir session_start() ekleriz.

    Koddaki yorumlar hemen hemen her şeyi açıklıyor, ancak burada birkaç şeyin altını çizeceğim.

    if ifadesi, kayıt formundaki reg_user düğmesinin tıklanıp tıklanmadığını belirler. Formumuzda, gönder düğmesinin reg_user olarak ayarlanmış bir ad özniteliğine sahip olduğunu ve if ifadesinde atıfta bulunduğumuz şeyin bu olduğunu unutmayın.

    Tüm veriler formdan alınır ve kullanıcının formu doğru doldurduğundan emin olmak için kontrol edilir. Eşleştiklerinden emin olmak için parolalar da karşılaştırılır.

    Herhangi bir hatayla karşılaşılmadıysa, kullanıcı şuraya kaydedilir: kullanıcılar karma parola ile veritabanındaki tablo. Karma şifre güvenlik nedeniyledir. Bir bilgisayar korsanı veritabanınıza erişmeyi başarsa bile parolanızı okuyamaz.

    Ancak, error.php dosyamız hala boş olduğu için hata mesajları şu anda görüntülenmiyor. Hataları görüntülemek için bu kodu error.php dosyasına yapıştırın.

    0) : ?>

    Bir kullanıcı veritabanına kaydolduğunda, hemen oturum açar ve index.php sayfasına yönlendirilir.

    Ve bu kadar kayıt için. Kullanıcı girişine bakalım.

    kullanıcı girişi

    Bir kullanıcının oturum açması, yapılması daha da kolay bir şeydir. Sadece giriş sayfasını açın ve içine bu kodu koyun:

    Kayıt sistemi PHP ve MySQL

    Giriş yapmak

    Henüz üye değil misiniz? üye olmak

    Bu sayfadaki her şey, register.php sayfasına oldukça benzer.

    Şimdi kullanıcıyı oturum açan kod aynı server.php dosyasına yazılacaktır. Bunun için server.php dosyasını açın ve dosyanın sonuna şu kodu ekleyin:

    // ... // KULLANICI GİRİŞİ if (isset($_POST["login_user"])) ( $username = mysqli_real_escape_string($db, $_POST["username"]); $password = mysqli_real_escape_string($db, $_POST) ["şifre"]); if (empty($username)) ( array_push($errors, "Kullanıcı adı gerekli"); ) if (empty($password)) ( array_push($errors, "Parola gerekli"); ) if (count($errors) == 0) ( $password = md5($password); $query = "Kullanıcı adı="$username" AND password="$password""; $results = mysqli_query KULLANICILARDAN SEÇİN * ($db, $query); if (mysqli_num_rows($results) == 1) ( $_SESSION["username"] = $username; $_SESSION["success"] = "Artık oturum açtınız"; header(" konum: index.php"); )else ( array_push($errors, "Yanlış kullanıcı adı/şifre kombinasyonu"); ) ) ) ?>

    Yine tüm bu, kullanıcının formu doğru doldurup doldurmadığını kontrol etmek, kimlik bilgilerinin veritabanındaki bir kayıtla eşleştiğini doğrulamak ve eşleşirse oturumunu açmaktır. Giriş yaptıktan sonra, kullanıcı bir başarı mesajı ile onları index.php dosyasına yönlendirir.

    Şimdi index.php dosyasında neler olduğuna bakalım, açın ve içine aşağıdaki kodu yapıştırın:

    Ev

    Ana Sayfa

    Hoş geldin

    çıkış Yap

    İlk if ifadesi, kullanıcının oturum açmış olup olmadığını kontrol eder. Giriş yapmamışlarsa, giriş sayfasına yönlendirileceklerdir. Bu nedenle, bu sayfaya yalnızca oturum açmış kullanıcılar erişebilir. Herhangi bir sayfanın yalnızca oturum açmış kullanıcılar tarafından erişilebilir olmasını istiyorsanız, tek yapmanız gereken bu if ifadesini dosyanın en üstüne yerleştirmektir.

    İkinci if ifadesi, kullanıcının oturum kapatma düğmesine tıklayıp tıklamadığını kontrol eder. Varsa, sistem onları oturumdan çıkarır ve tekrar oturum açma sayfasına yönlendirir.

    Şimdi devam edin, ihtiyaçlarınıza göre özelleştirin ve harika bir site oluşturun. Herhangi bir endişeniz veya açıklığa kavuşturmanız gereken herhangi bir şey varsa, aşağıdaki yorumlarda bırakın, yardım gelecektir.

    Sosyal medyada paylaşarak veya bloğumu arkadaşlarınıza ve iş arkadaşlarınıza önererek her zaman destek olabilirsiniz.