php - PHP登录/注销系统无法正常运行

标签 php login error-handling system logout

我的登录系统/注销系统有问题。

所以问题是我无法登录。当我输入正确的用户名和密码时,我将重定向到index.php,而这实际上只会在我注销后才发生。我认为错误在于if (!isset($_SESSION['mittbrukarnamn']))行的login_success.php中(mittbrukarnamn = myusername),这将导致上述问题,但是当我删除!以便isset不再为假时,我可以登录,然后登录logout.php不“工作”。

当我在IE 9中输入错误的用户名或密码时,或者未输入任何用户名或密码时,我在第19行中也收到以if ($_POST['mittbrukarnamn'] && $_POST['mittpassord'])开头的错误。但是在Google Chrome浏览器中,我没有得到该错误。有人可以告诉我这是否是安全的系统吗?稍后,我将添加一条代码行,以使密码转换为MD5和一个Admin用户页面。

这是check.php

    <title>Login side</title>

<?php
session_start();

// 'vert' er det same som 'host' på engelsk (ikkje så viktig).
    $vert = "localhost";
    $brukarnamn = "root";
    $passord = "";
    $db_namn = "login";
    $tbl_namn = "members";

// Tilkobling til MySQL databasen.
    mysql_connect("$vert", "$brukarnamn", "$passord") or die ("Kan dessverre ikkje koble til databasen.");
    mysql_select_db("$db_namn") or die ("Kan ikkje finna den ynkjande tabellen 'namn'.");
?>

<?php
    if ($_POST['mittbrukarnamn'] && $_POST['mittpassord']) {

      $mittbrukarnamn = $_POST['mittbrukarnamn'];
      $mittpassord = $_POST['mittpassord'];

      $sql = "SELECT * FROM $tbl_namn WHERE `brukarnamn` = '$mittbrukarnamn' AND `passord` = '$mittpassord'";
// '$res' forkorting for 'resultat'.
      $res = mysql_query($sql);

// '$tell' er skreve på norsk, og er det same som 'count' på engelsk (f.eks. og telja til 10). Slek ein ikkje     trur da er 'tell' på engelsk; (ikkje så viktig).
      $tell = mysql_num_rows($res);

      if ($tell == 1) {
        $_SESSION['mittbrukarnamn'];
        $_SESSION['mittpassord'];
        header ("location: login_success.php");
  } else {
        echo "Brukarnamnet eller passordet er feil.";
        header ("refresh: 2; index.php");
  }

  } else {
        echo "Vennligst tast inn eit brukarnamn og eit passord.";
        header ("refresh: 2; index.php");
  }
?>

和login_success.php
<title>Medlem side</title>

<?php
  session_start();
    if (!isset($_SESSION['mittbrukarnamn'])) {
        header("location: index.php");
}
?>

<html>
<body>
Du er innlogga.<br />
<a href="logout.php"> Logg ut</a>
</body>
</html>

我希望我已经明确了问题所在。谢谢您的任何回答:)

这些文本中有些是挪威文的。
(mittbrukarnamn = myusername)
(mittpassord = mypassword)

最佳答案

它是诺顿答案的补充:
将session_start()放在文件的最开始之后,

$_SESSION['mittbrukarnamn'];替换$_SESSION['mittbrukarnamn']='';来设置 session 变量。
您现在正在执行的操作未设置 session 变量,仅获取了$_SESSION['mittbrukarnamn']

关于php - PHP登录/注销系统无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14549794/

相关文章:

php - MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

php - 用facebook登录connect 2

ruby-on-rails - 如何将登录用户名存储在 Rails 3 的 cookie 中?

sql - Postgres : COPY TO error

java - 为什么我们不应该在 Java 中捕获错误?

php - 这个 php 代码是个坏主意吗?

php - 使用 PHP 函数时在导航栏上找到搜索框?

php多张照片上传和重命名

facebook - meteor 登录外部服务 : how to get profile information?

ms-access - 处理Access中的输出错误