'保持联系/记住我'系统不起作用(如果我取消选中)

时间:2016-08-09 17:34:16

标签: php mysql session session-cookies remember-me

如果我检查remember me(使用有效的用户名和密码)它正在运行,但如果我想在未选中remember me的情况下登录,那么它就不起作用了。此外,如果我检查remember me(使用有效的用户名和密码无效),它将无法正常工作。错误消息是:

  

致命错误:第48行的C:\ xampp \ htdocs \ new \ tree \ login.php中允许的内存大小为134217728个字节(尝试分配7168个字节)

如果我提供无效的用户名和密码,那么它不会显示任何错误消息。但我试图表明信息。我的代码如下。

的login.php

<?php

require_once( 'functions.php');

if(loogedin())
{
  header("Location: admin_dashboard_view.php" );
  exit();
}

if(isset($_POST['login']))
{
  $username=$_POST['username'];
  $password=$_POST['password'];
  $remember = isset($_POST['remember']);

  if($username && $password)
  {
    $login=mysql_query("SELECT * FROM admin WHERE username = '$username'");

    while($row=mysql_fetch_assoc($login))
    {
      $db_password = $row['password'];

      if($password==$db_password)
        $loginok=TRUE;
      else
        $loginok=FALSE;

      if($loginok==TRUE)
      {
        if($remember=="on")
          setcookie("username",$username,time()+7200);
        else if($remember==" ")
          $_SEESION['username']=$username;
          header('location: admin_dashboard_view.php');
          exit();   
      }
      else
      {
        include 'login.php';
        echo'<font color="red">Try again,User Name and Password not matched !</font>';
    }
    }        
   }
  else
  {     
    include 'login.php';
    echo'<font color="green">Try again,User Name and Password not matched     !</font>';
  }
}

function.php

<?php
session_start();

include 'connect.php';

function loogedin()
{
  if(isset($_SESSION['username']) || isset($_COOKIE['username']))
  {
    $loogedin=TRUE;
    return $loogedin;
  }
}

我是php新手。请帮我展示错误和解决方案。

1 个答案:

答案 0 :(得分:0)

修改您的php.ini文件。将memory_limit值设置为-1。错误消息应该消失。

但这不是一个永久性的解决方案,您需要监控消耗资源的内容。

在查询完成后也请关闭您的连接,并且不要使用mysql_*功能。请改用mysqli_*PDO