0

ログイン リダイレクト スクリプトに使用する現在の URL を保存しようとしています。私は使っている:

$_SESSION['url'] = $_SERVER['REQUEST_URI'];

各ページの上部にあるスクリプトで、次のようにパスワード保護が必要です。

<?php

//prevents caching
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: post-check=0, pre-check=0",false);
session_cache_limiter();
session_start();
$_SESSION['url'] = $_SERVER['REQUEST_URI'];

require('config.php');

require('functions.php'); 

//this is group name or username of the group or person that you wish to allow access to
// - please be advise that the Administrators Groups has access to all pages.
if (allow_access(Administrators) != "yes")
{ 
include ('no_access.html'); 
exit;
}
?>

no_access.html は次のようになります。

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>NO ACCESS ALLOWED</title>
</head>

<body>

<b><font size="6">Access Denied!!!</font></b><p>Please login with proper 
credentials:</p>
<FORM METHOD="POST" ACTION="/login/redirect.php">
<P><font face="Verdana" size="2" color="#2852A8"><STRONG>Username:</STRONG><BR>
</font><font color="#2852A8" face="Verdana">
<INPUT TYPE="text" NAME="username" SIZE=25 MAXLENGTH=25></font></p>
<P><font face="Verdana" size="2" color="#2852A8"><STRONG>Password:</STRONG><BR>
</font><font color="#2852A8" face="Verdana">
<INPUT TYPE="password" NAME="password" SIZE=25 MAXLENGTH=25></font></p>
<P><font face="Verdana"><font color="#2852A8">
<input type="checkbox" name="remember" value="Yes"></font><font size="2" color="#2852A8">Remember 
me from this computer</font></font></p>
<P><font color="#2852A8">
<INPUT TYPE="submit" NAME="submit" VALUE="Login" style="font-family: Verdana"></font></P>
</FORM>
<p>&nbsp;</p>

</body>

</html>

そして、redirect.php は次のようになります。

<?

//prevents caching
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: post-check=0, pre-check=0",false);
session_cache_limiter();

session_start();

die(print($_SESSION['url']));

if(isset($_SESSION['url'])) 
   $url = $_SESSION['url']; // holds url for last page visited.
else 
   $url = "/bob.php"; // default page for

//require the functions file
require ("config.php");
require ("functions.php");

//check to see if cookies are already set, remember me
if ((!$lr_user) || (!$lr_pass))
{

$username = $_POST[username];
$password = $_POST[password];

}else{

$username = $lr_user;
$password = $lr_pass;

}

//if username or password is blank, send to errorlogin.html
if ((!$username) || (!$password)) 
{

    header("Location:$base_dir/errorlogin.html");
    exit;
}

//sets cookies to remember this computer if the user asks to
if ($_POST[remember] == "Yes")
{
setcookie("lr_user", $username, $duration, "/", $domain);
setcookie("lr_pass", $password, $duration, "/", $domain);
}

if ($_POST[activate] == "Yes")
{
        //make the connection to the database
        $connection = @mysql_connect($server, $dbusername, $dbpassword) or die(mysql_error());
        $db = @mysql_select_db($db_name,$connection)or die(mysql_error());

        //build and issue the query
        $sql ="UPDATE $table_name SET verified = '1' WHERE username = '$_POST[username]'";
        $result = @mysql_query($sql,$connection) or die(mysql_error());
}

//sets session variables
sess_vars($base_dir, $server, $dbusername, $dbpassword, $db_name, $table_name, $username, $password);

//check to see if the user has to change their password
if ($_SESSION[pchange] == "1")
{
    $_SESSION[redirect] = "$base_dir/pass_change.html";
}

//check to see if the user has activated the account
if ($_SESSION[verified] == "0")
{
    $_SESSION[redirect] = "$base_dir/not_activated.html";
}

//make the connection to the database
$connection = @mysql_connect($server, $dbusername, $dbpassword) or die(mysql_error());
$db = @mysql_select_db($db_name,$connection)or die(mysql_error());

//build and issue the query
$sql ="SELECT * FROM banned";
$result = @mysql_query($sql,$connection) or die(mysql_error());

while ($sql = mysql_fetch_object($result)) 
    {
    $banned = $sql -> no_access;
    if ($username == $banned || $REMOTE_ADDR == $banned)
        {
            include ('banned.html');
            exit;
        }
    }

$last_log = last_login();

//updates table with last log as now
$sql = "UPDATE $table_name SET last_login = '$last_log' WHERE username = '$_SESSION[user_name]'";
$result = @mysql_query($sql,$connection) or die(mysql_error());

if (($_SESSION[redirect] != "$base_dir/errorlogin.html") && ($log_login == "1"))
{
    include('loglogin.php');
}

//redirects the user    
header("Location:$url");

?>

<head><title>Redirect</title></head>

何らかの理由$_SESSION['url']で、redirect.php に渡されません。die(print($_SESSION['url']));何も返しません。

誰かがこれを修正するのを助けることができますか?

ありがとう、

ニック

現在発生しているエラー:

注意: 未定義のインデックス: 17 行目の /home/nickputm/public_html/monthlymixup.com/login/redirect.php の URL

警告: 不明: open(/tmp/sess_831fff9f72fafb8ec8a677ef794a7824, O_RDWR) に失敗しました: 行 0 の不明なデバイス (28) にスペースが残っていません

警告: 不明: セッション データ (ファイル) の書き込みに失敗しました。行 0 の不明で、session.save_path の現在の設定が正しい (/tmp) であることを確認してください。

4

2 に答える 2

1

<?php 開始タグの後の空行と、session_start(); の前の空行を削除してみてください。redirect.php で

また、php 終了タグ (?>) の後の空白または空白行を確認して削除します。

no_access.html を no_access.php として保存してみてください

于 2012-04-26T12:36:13.943 に答える
0

session_startヘッダーを設定する前に を入れてみてください。

于 2012-04-26T12:06:25.887 に答える