Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[PDO] Logovanje sa sessiom u OOP

[es] :: PHP :: [PDO] Logovanje sa sessiom u OOP

[ Pregleda: 1558 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MPesic
Beograd

Član broj: 164946
Poruke: 124
*.dynamic.sbb.rs.



+25 Profil

icon [PDO] Logovanje sa sessiom u OOP10.06.2015. u 03:41 - pre 107 meseci
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]
 
Odgovor na temu

[es] :: PHP :: [PDO] Logovanje sa sessiom u OOP

[ Pregleda: 1558 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.