berkmenoo 1
berkmenoo
mavzermete 1
mavzermete
Mt2Hizmet 1
Mt2Hizmet
xranzei 1
xranzei
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

PHP - MySQL Girişi

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

MySQL, PHP destekli web uygulamaları için arka uç veritabanı olarak popüler bir seçimdir. Bu bölümde, verilen kullanıcı adı ve parolayı doğrulayan bir PHP uygulaması için bir oturum açma sayfası geliştirmeyi öğreneceğiz.

Bu bölümde ele alınan örnekle denemeler yapmak için PHP ve MySQL yüklü bir web sunucunuz olmalıdır. İşletim sisteminiz için XAMPP biçiminde Apache, PHP ve MySQL'in (MariaDB) paketlenmiş ikili dosyaları kolayca yüklenebilir.

Örnek kodu çalıştırmadan önce mydb adında bir MySQL veritabanınız olmalı ve bu veritabanında admin adında bir tablo bulunmalıdır. Tabloyu oluşturmak ve bir test verisi eklemek için aşağıdaki SQL betiğini kullanabilirsiniz:

use mydb;

CREATE TABLE `admin` (
`username` varchar(10) NOT NULL,
`passcode` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

INSERT INTO `admin` (`username`, `passcode`) VALUES
('guest', 'abc123'),
('manager', 'secret'),
('user', 'test');

ALTER TABLE `admin`
ADD PRIMARY KEY (`username`);
COMMIT;

PHP oturum açma uygulamasının ilk kısmı veritabanı bağlantı nesnesini kurmaktır. Bağlantı nesnesini elde etmek için myqli API'sini kullanırız. Aşağıdaki kodu "config.php" olarak kaydedin.

Config.php


PHP:
<?php
   define('DB_SERVER', 'localhost');
   define('DB_USERNAME', 'root');
   define('DB_PASSWORD', '');
   define('DB_DATABASE', 'mydb');
   $db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>

Bu PHP betiği, oturum açma betiğinin içinde çağrılır. Kullanıcıya kullanıcı adı ve parola girmesi için bir HTML formu sunar. Form gönderildiğinde, PHP, kullanıcı adı ve parolanın kullanıcı girdileriyle eşleştiği yönetici tablosundaki bir satırı almak için bir SELECT sorgusu çalıştırır.

$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);

$sql = "SELECT * FROM admin WHERE username = '$myusername' and passcode = '$mypassword'";

$result = mysqli_query($db,$sql);
$row = mysqli_num_rows($result);

Satır sayısı bir ise, kullanıcı adı ve girilen parolanın eşleştiğini gösterir. Kullanıcı adı $_SESSION değişkenine kaydedilir ve tarayıcı welcome.php betiğine yönlendirilir.

Login.php

Aşağıdaki kodu "login.php" olarak kaydedin.

PHP:
<?php
   include("config.php");
   session_start();
   $error='';
   if($_SERVER["REQUEST_METHOD"] == "POST") {
 
      // username and password sent from form
      $myusername = mysqli_real_escape_string($db,$_POST['username']);
      $mypassword = mysqli_real_escape_string($db,$_POST['password']);

      $sql = "SELECT * FROM admin WHERE username = '$myusername' and passcode = '$mypassword'";

      $result = mysqli_query($db,$sql);    
      $row = mysqli_num_rows($result);    
      $count = mysqli_num_rows($result);

      if($count == 1) {
     
         // session_register("myusername");
         $_SESSION['login_user'] = $myusername;
         header("location: welcome.php");
      } else {
         $error = "Your Login Name or Password is invalid";
      }
   }
?>
<html>
<head>
   <title>Login Page</title>
   <style type = "text/css">
      body {
         font-family:Arial, Helvetica, sans-serif;
         font-size:14px;
      }
      label {
         font-weight:bold;
         width:100px;
         font-size:14px;
      }
      .box {
         border:#666666 solid 1px;
      }
   </style>
</head>
<body bgcolor = "#FFFFFF">
   <div align = "center">
      <div style = "width:300px; border: solid 1px #333333; " align = "left">
         <div style = "background-color:#333333; color:#FFFFFF; padding:3px;"><b>Login</b></div>
         <div style = "margin:30px">
            <form action = "" method = "post">
               <label>UserName  :</label><input type = "text" name = "username" class = "box"/><br /><br />
               <label>Password  :</label><input type = "password" name = "password" class = "box" /><br/><br />
               <input type = "submit" value = " Submit "/><br />
            </form>
            <div style = "font-size:11px; color:#cc0000; margin-top:10px"><?php echo $error; ?></div>
         </div>
      </div>
   </div>
</body>
</html>

Session.php

Aşağıda session.php kod dosyası bulunmaktadır. Session değişkeninin ayarlanıp ayarlanmadığını kontrol eder; ardından kullanıcı kimlik bilgileri $login_session değişkenine atanır. Ayarlanmamışsa kullanıcı login.php dosyasına geri yönlendirilir.

PHP:
<?php
   // Start the session
   session_start();

   if(!isset($_SESSION['login_user'])){
      header("location: login.php");
      die();
   }
   $login_session = $_SESSION['login_user'];
?>

Welcome.php

"welcome.php" betiği kullanıcı doğrulandığında çağrılır. Bir karşılama mesajı görüntülemek için oturum değişkenini okur.

PHP:
<?php
   include('session.php');
?>
<html>
<head>
   <title>Welcome </title>
</head>
<body>
   <h1>Welcome <?php echo $login_session; ?></h1>
   <h2><a href = "logout.php">Sign Out</a></h2>
</body>
</html>

Logout.php

Son olarak çıkış betiği oturumu yok eder ve kullanıcıyı giriş sayfasına yönlendirir.

PHP:
<?php
   session_start();

   if(session_destroy()) {
      header("Location: login.php");
   }
?>

Giriş uygulamasını başlatmak için " " adresini ziyaret edin.

php_mysql_login_1.jpg

Kullanıcı adı ve parolayı girin. Gönder düğmesine basıldığında, bu girdiler admin tablosundaki satırlara göre kontrol edilir. Başarılı olduğunda, aşağıdaki mesajı alırsınız:

php_mysql_login_2.jpg

Sorgu eşleşen bir satır getirmezse, hata mesajı aşağıdaki gibi görüntülenir:

php_mysql_login_3.jpg
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst