dqwh1119 2018-05-24 19:59
浏览 129

为什么每次登录后的数据都没有存储在我的数据库中?

I am working on a Login system using PDO and Sessions. I am trying to store data from each sessions after a successful login into a table called 'session' in forms of random string. Here is my config.php file:

<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$dbh = new PDO('mysql:host=localhost;dbname=rineva', 'root', '');

$stmt = $dbh->prepare("SELECT * FROM user;");
$stmt->execute();

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row)
{
  echo $row['user_username'];
}

 ?>

My functions.php file is:

 <?php
  class func
  {
    public static function checkLoginState($dbh)
    {
      if (!isset($_SESSION['id']) || !isset($_COOKIE['PHPSESSID']))
      {
        session_start();
      }
      if (isset($_COOKIE['id']) && isset($_COOKIE['token']) && isset($_COOKIE['serial']))
      {
        $query = "SELECT * FROM sessions WHERE sessions_userid = :user_id AND sessions_token =:token AND sessions_serial =:serial;";

        $id = $_COOKIE['id'];
        $token = $_COOKIE['token'];
        $serial = $_COOKIE['serial'];

        $stmt = $dbh->prepare($query);
        $stmt->execute(array(':user_id' => $user_id, ':token' => $token, ':serial' => $serial));

        $row = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($row['sessions_userid'] > 0)
        {
             if (
               $row['sessions_userid'] == $_COOKIE['user_id'] &&
               $row['sessions_token'] == $_COOKIE['token'] &&
               $row['sessions_serial'] == $_COOKIE['serial']
               )
               if (
                 $row['sessions_userid'] == $_SESSION['user_id'] &&
                 $row['sessions_token'] == $_SESSION['token'] &&
                 $row['sessions_serial'] == $_SESSION['serial']
                 )
                 {
                   return true;
                 }
        }
      }
    }
    public static function createRecord($dbh, $user_username, $user_id)
    {
      $query ="INSERT INTO sessions(sessions_userid, sessions_token, sessions_serial) VALUES (:user_id,:token,:serial) '25/05/2018'";
      $dbh->prepare("DELETE FROM sessions WHERE sessions_userid = :sessions_userid';")->execute(array(''));

      $token = func:: createString(20);
      $serial = func:: createString(20);

      func :: createCookie($user_username, $user_id, $token, $serial);
      func :: createSession($user_username, $user_id, $token, $serial);

      $stmt = $dbh->prepare($query);
      $stmt->execute(array(':user_id' => $user_id, ':token' => $token, ':serial' => $serial));

    }

    public static function createCookie($user_username, $user_id, $token, $serial)
    {
      setcookie('user_id', $user_id, time() + (86400) * 30, "/");
      setcookie('token', $token, time() + (86400) * 30, "/");
      setcookie('serial', $serial, time() + (86400) * 30, "/");
      setcookie('user_username', $user_username, time() + (86400) * 30, "/");
    }

    public static function createSession($user_username, $user_id, $token, $serial)
    {
      if (!isset($_SESSION['id']) || isset($_COOKIE['PHPSESSID']))
        {
          session_start();
        }
        $_SESSION['user_username'] = $user_username;
    }


    public static function createString($len)
    {
      $string ="1lksjrienj4hjtJHBNKq5SWndmrtjihush45bhe0qwsdcnNER56NWMLOIwsQ";
      $s = '';
      $r_new = '';
      $r_old = '';

      for ($i = 1; $i < $len; $i++)
      {
        while ($r_old ==$r_new)
        {
          $r_new = rand(0, 60);
        }
        $r_old = $r_new;
        $s = $s.$string[$r_new];
      }
      return $s;
    }
  }
 ?>

Please help me out. I am attaching screenshot of my db structure

My user database

My user database

My sessions database

My sessions database

  • 写回答

1条回答 默认 最新

  • douweng1935 2018-05-24 20:07
    关注

    maybe you forgot to commit your data after insertion in mysql db. check it first

    评论

报告相同问题?

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行