2015-03-12 4 views
1

Я кодировал базовый сценарий входа PHP только для целей тестирования.

<?php 
require 'config.php'; 
require 'connect.php'; 

// username and password sent from form 
$tbl_name = 'users'; 
$username=$_POST['username']; 
$password=$_POST['password']; 

// To protect MySQL injection (more detail about MySQL injection) 
$username = stripslashes($username); 
$password = stripslashes($password); 
$username = mysqli_real_escape_string($conn, $_POST['username']); 
$password = mysqli_real_escape_string($conn, $_POST['password']); 
$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'"; 
$result = mysqli_query($conn, $sql); 

// Mysql_num_row is counting table row 
$count = mysqli_num_rows($result); 

// If result matched $username and $password, table row must be 1 row 
if($count == 1) 
{ 
// Register $username, $password and redirect to file "login_success.php" 
$_SESSION["username"]; 
$_SESSION["password"]; 
header("location:../../home.php"); 
} 
else { 
echo "Wrong Username or Password"; 
} 
?> 

Я могу пройти через это без проблем, но когда он перенаправляет на home.php, вот код, я должен проверить, если сессия не зарегистрирован.

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

Из того, что я понимаю, это, как предполагается, чтобы проверить, если пользователь не вошел в систему, однако, когда я войти в его еще перенаправляет меня на index.php. Как я могу убедиться, что сессия зарегистрирована, и ничего не происходит (т.е. я остаюсь на home.php без перенаправления, но я все еще участвовал.)

+0

Помещая что-то в сеанс? – Naruto

+0

$ _SESSION ["username"]; $ _SESSION ["password"]; header ("location: ../../ home.php") –

ответ

0

Вы должны сохранить что-то сохранить в переменной сеанса

if($count == 1) 
{ 
// Register $username, $password and redirect to file "login_success.php" 
$_SESSION["username"]=$username; 
$_SESSION["password"]; //Don't do this its a bad practice. 
header("location:../../home.php"); 
} 
else { 
echo "Wrong Username or Password"; 
} 

Также не забудьте начать сеанс перед использованием переменной сеанса.

+0

Спасибо! Это помогло. Спасибо всем! –

+0

рад, что это помогло отметить ответ, как принято, если ваши сомнения ясны. – Shubanker

+0

Необходимо подождать 5 минут. –

0

Прежде всего, не забудьте добавить session_start();, чтобы начать сессии затем сделать так,

// Register $username, $password and redirect to file "login_success.php" 
$_SESSION["username"] = $username; 
$_SESSION["password"] = $password; -->> Totally wrong, people don't put password in session 
Смежные вопросы