我的登录系统/注销系统有问题。
所以问题是我无法登录。当我输入正确的用户名和密码时,我会被重定向到 index.php,而这实际上只会在我注销后才会发生。我认为错误是在 login_success.php 中的if (!isset($_SESSION['mittbrukarnamn']))
行,(mittbrukarnamn = myusername),这将导致上述问题,但是当我删除!
所以isset
不再是假的时,我可以登录但 logout.php 没有“工作”。
if ($_POST['mittbrukarnamn'] && $_POST['mittpassord'])
当我在 IE 9 中输入错误的用户名或密码,或者没有输入任何用户名或密码时,我还会在第 19 行收到一个错误。但是在谷歌浏览器中我没有得到那个错误。有人能告诉我这是否是一个安全的系统吗?稍后我将添加一个代码行,使密码转换为 MD5 和一个管理员用户页面。
这是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 = 我的用户名) (mittpassord = 我的密码)