У меня есть система входа в систему, которая проверяет правильные данные для входа, как показано ниже:
<?php
@session_start();
require_once "connection.php";
$Username=$_POST['uname'];
$Password=$_POST['pass'];
$encrypt_password=md5($Password);
//echo $encrypt_password;
$Username=stripslashes($Username);
$Password=stripslashes($Password);
$Username = mysql_real_escape_string($Username);
$Password = mysql_real_escape_string($Password);
$sql="SELECT * FROM loginlist WHERE username='$Username' and password='$encrypt_password'";
$query=mysql_query($sql) or die(mysql_error());
$Count=mysql_num_rows($query);
if($Count == 1)
{
session_register(myusername);
session_register(mypassword);
$_SESSION['uname']=$Username;
$_SESSION['pass']=$Password;
header("location:controlpanel.php");
}
else
{
echo 'wrong user name or password';
}
?>
если данные для входа верны, он перейдет на controlpanel.php, у меня есть код ниже в начале controlpanel.php
@session_start();
if(!isset($_SESSION['uname']))
echo"<script>window.location='thisisthesystem.php';</script>";
else
но каждый раз, когда я пытаюсь войти (с правильными данными для входа), он возвращает меня на страницу входа. Пожалуйста, дайте мне знать, что там происходит:
Заранее спасибо.
Вы должны искать в isset больше.
ISSET проверяет переменную, чтобы убедиться, что она была установлена, другими словами, она проверяет, есть ли переменная какое-либо значение, кроме NULL или не присвоенное значение. ISSET возвращает TRUE, если переменная существует и имеет значение, отличное от NULL. Это означает, что переменные, назначенные "", 0, "0" или "ЛОЖЬ", установлены и, следовательно, ИСТИНА для ISSET.
if ( isset($Variable)){
//this will be true if $Variable will have some value
}else {
//this is false if $Variable will be empty
}
Так что удалите '! " Если, как я сказал в разделе комментариев