PHP:用户登录系统/检查用户是否有权访问页面

标签 php mysql logging

这是一个有点菜鸟的问题,但是..有时每个人都会遇到这种情况。

我从未使用过 $_SESSION,因此一旦我需要一个登录系统,我就会使用 Dreamweaver 为我做一个。

我有一个页面,他要求输入用户名和密码。 如果登录成功,它会转到其他页面。否则,它会在登录页面中显示。

问题在于曾经工作的登录系统现在无法工作。 因为他停留在登录页面。我已经做了“echo $_SESSION['MM_Username'];”

什么也没返回。所以我认为这意味着我没有创建用于访问的 cookie??

对吗?我认为 session 中的 echo 显示了一些内容。

我可以帮忙吗?也许是一个简单的登录系统。不是 Dreamweaver 登录。

我将在登录页面中发布用户登录代码。

// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['username'])) {
  $loginUsername=$_POST['username'];
  $password=$_POST['passe'];
  $MM_fldUserAuthorization = "power";
  $MM_redirectLoginSuccess = WWW."/administrador";
  $MM_redirectLoginFailed = WWW."/login";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_dbconnect, $dbconnect);

  $LoginRS__query=sprintf("SELECT username, passwd, power FROM `user` WHERE username=%s AND passwd=%s",
  GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 

  $LoginRS = mysql_query($LoginRS__query, $dbconnect) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {

    $loginStrGroup  = mysql_result($LoginRS,0,'power');

    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;       

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];  
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}

我工作过。它是您在 $MM_redirectLoginSuccess 和 $MM_redirectLoginFailed 中看到的更改,并且数据库中没有任何更改。

如果累了一些。只需发布一个简单的登录用户代码,我找到了一些,但不是很好。剩下的由我来做。

你知道它有什么奇怪的吗?有效。我保存了,然后关掉电脑,然后当我回来时就不起作用了。

再次感谢。

最佳答案

我想你的数据库正在运行?

否则,只需开始检查代码,在调试变量时尝试使用 var_dump($var) 这样您就会看到正在调试的变量的类型(特别是如果它为空)。

$LoginRS__query -- 回显此内容,并查看正在生成什么查询。自己通过数据库运行它,看看会发生什么。

header("位置:". $MM_redirectLoginSuccess ); -- 请记住,如果已发送任何数据(变量回显等),则将无法重定向用户,因为 header 已已发送。

关于PHP:用户登录系统/检查用户是否有权访问页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/960979/

相关文章:

java - 如何将日志记录与异常处理链结合起来?

Android Log.X 不打印堆栈跟踪

php - 如何在 zend 框架中设置 auth 变量

mysql - 检查Mysql查询中3个不同日期范围内的值

php - 如何删除mysql表中的空格?

mysql - mysql 中的通配符

mysql 连接到远程数据库在 vagrant 上很慢

JAVA SimpleFormatter,无法设置正则表达式

php - 如何使用数组进行查询

php - 使用 Yii2 DbMessageSource 获取需要翻译的所有文本的列表