[ MPesic @ 10.06.2015. 03:41 ] @
Pokusavam napraviti login sistem sa sesijama na objektno orjentisani nacin. Stigao sam do provere u bazi podataka i nemam ideju kako dalje, barem ne na OO nacin. Ne trazim da mi neko napise kod vec je potrebno samo da mi se objasni nacin na koji bi to ostvario.

alogin.php
Code (php):

Class Connect {
     protected $db;
     function __construct() {
          $this->db = new PDO('mysql:host=localhost;dbname=eshop', 'root', '');
          $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     }
  }

Class Administrators extends Connect{
     protected $username;
     protected $password;
     private $status;
   
   

     function checkCredentials() {
         
          if(isset($_POST['submit'])) {
               $this->username = $_POST['username'];
               $this->password = md5($_POST['password']);
               $result = $this->db->prepare("SELECT* FROM customers WHERE username=:username AND password=:password");
               $result->bindParam(':username', $this->username);
               $result->bindParam(':password', $this->password);
               $result->execute();
               
               $row = $result->fetch(PDO::FETCH_NUM);
               if($row > 0) {
                    $this->status = "Ulovani";
               } else {
                    $this->status = "Wrong username or password";
               }
          }
     }
    function getStatus() {
        echo $this->status;
    }

}
 


Code (php):

<!DOCTYPE html>
<?php
     session_start();
     include_once("classes/alogin.php");
     $admin = new Administrators();
     $admin->checkCredentials();
?>
<head>
     <link href="frameworks/bootstrap-3.3.4-dist/css/bootstrap.min.css" rel="stylesheet" />
     <link href="css/signin.css" rel="stylesheet" />

</head>

<body>
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" class="form-signin">
        <h2 class="form-signin-heading">Administrator area:</h2>
        <label class="sr-only">Username</label>
        <input name="username" type="text" id="inputEmail" class="form-control" placeholder="Username" required autofocus>
        <label for="inputPassword" class="sr-only">Password</label>
        <input name="password" type="password" id="inputPassword" class="form-control" placeholder="Password" required>
        <h3><span class="label label-danger"><?php $admin->getStatus(); ?></span></h3>
        <button class="btn btn-lg btn-primary btn-block" name="submit" type="submit">Sign in</button>
      </form>
</body>
 



Funkcionalnosti koje bih zeleo u OO sam uradio na proceduralan nacin.

index.php
Code (php):

<!DOCTYPE html>
<?php
session_start();
$db = new PDO('mysql:host=localhost;dbname=eshop', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$username;
$password;
$status = "";
if(isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = md5($_POST['password']);
   
    $result = $db->prepare("SELECT * FROM customers WHERE username=:username AND password=:password LIMIT 1");
    $result->bindParam(':password', $password);
    $result->bindParam(':username', $username);
   
    $result->execute();
    $count = $result->fetch(PDO::FETCH_NUM);
    if($count > 0) {
        $_SESSION['username'] = $username;
        header("Location: profile.php");
    } else {
        $status = "neuspesno";
    }
}

if(isset($_SESSION['username'])) {
   
    header("Location: profile.php");
}
?>
<head>
   
</head>
<body>
   
    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
        <input type="text" name="username" />
        <input type="password" name="password" />
        <button type="submit" name="submit">Submit</button>
    </form>
    <?php echo $status; ?>
</body>


profile.php
Code (php):

<!DOCTYPE html>
<?php
session_start();

if(empty($_SESSION['username'])) {
   
    header("Location: profile.php");
}

if(isset($_GET['logout']) && $_GET['logout'] == "true") {
    session_destroy();
    header("Location: index.php");
}
?>

<head>
   
</head>

<body>
    Welcome <?php echo $_SESSION['username']; ?>
    <a href="profile.php?logout=true" >Log out!</a>
</body>
 


[Ovu poruku je menjao MPesic dana 10.06.2015. u 06:41 GMT+1]