Сценарий входа php не перенаправляет защищенную страницу на стороне сервера (удаленный хост) - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть простой скрипт входа, который работает на моем локальном хосте без проблем. Однако, когда я загружаю на удаленный хост, то получаю белый экран. После того, как я отправил пароль для имени пользователя, он не переместился на страницу защищенного индекса, и если я наберу его вручную, я смогу получить доступ к странице.

Вот код, который я использую ...

login.php

<?php
session_start();
include("script/db.php");


// username and password sent from Form
$login_name= $_POST['login_name'];
$password= $_POST['password'];



$login_name = stripslashes($login_name);
$password= stripslashes($password);
$login_name= mysql_real_escape_string($login_name);
$password= mysql_real_escape_string($password);

$query="SELECT id_user, iduserlevel FROM user WHERE login_name='$login_name' and password='$password'";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
$iduserlevel=$row['iduserlevel'];
$count=mysql_num_rows($result);


// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1)
{
session_register("login_name");
$_SESSION['login_user']=$login_name;
$_SESSION['iduserlevel']=$iduserlevel;
header("location: secure/index.php");
}
else
{
echo "Your Login Name or Password is invalid";

}
mysql_close(); 
?>
<a href="index.php" > Please Try Again</a>

lock.php

<?php
if(!isset($_SESSION))
{
session_start();
}

include("script/db.php");

$user_check=$_SESSION['login_user'];

$query=mysql_query("select login_name, iduserlevel,y from user where login_name='$user_check' ");

$row=mysql_fetch_array($query);

$login_session=$row['login_name'];
$iduserlevel_session=$row['iduserlevel'];
$iduserlevel_sessiony=$row['y'];
if(!isset($login_session))
{
header("location: index.php");
}
mysql_close(); 
?>

бронированная / index.php

<?php include("../lock.php");?>

<?php

....

?>

Ответы [ 2 ]

0 голосов
/ 06 декабря 2011

Кроме того, вы используете ассоциативный массив для запроса. Если вы собираетесь это сделать, используйте

mysql_fetch_assoc (), а не array ().

IE.

$ строка = mysql_fetch_assoc ($ запроса);

0 голосов
/ 06 декабря 2011

Вы можете изменить эту строку

header("location: secure/index.php");

Для чего-то вроде:

header("location: http://".$_SERVER['SERVER_NAME']."/secure/index.php");

И отфильтровать $ POST для впрыска sql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...