このトピックは以前に Stack で取り上げられたことを認識しており、いくつかの回答を見てきましたが、PHP にかなり慣れていないため、まだ少し行き詰まっています。Web サイトのすべてのページでログインが必要なため、ユーザーはページの読み込み時にログイン ページにリダイレクトされます。各ページの上部には、次のものがあります。
<?
require("log.php");
include_once("config.php");
include_once("functions.php");
?>
これにより、ユーザーが log.php にリダイレクトされます (新しいコードが追加されています)。
<?
session_name("MyLogin");
session_start();
if(isset($_SESSION['url']))
$url = $_SESSION['url']; // holds url for last page visited.
else
$url = "index.php"; // default page for
if($_GET['action'] == "login") {
$conn = mysql_connect("localhost","",""); // your MySQL connection data
$db = mysql_select_db(""); //put your database name in here
$name = $_POST['user'];
$q_user = mysql_query("SELECT * FROM users WHERE login='$name'");
if (!$q_user) {
die(mysql_error());
}
if(mysql_num_rows($q_user) == 1) {
$query = mysql_query("SELECT * FROM users WHERE login='$name'");
$data = mysql_fetch_array($query);
if($_POST['pwd'] == $data['password']) {
$_SESSION["name"] = $name;
header("Location: http://monthlymixup.com/$url"); // success page. put the URL you want
exit;
} else {
header("Location: login.php?login=failed&cause=".urlencode('Wrong Password'));
exit;
}
} else {
header("Location: login.php?login=failed&cause=".urlencode('Invalid User'));
exit;
}
}
// if the session is not registered
if(session_is_registered("name") == false) {
header("Location: login.php");
}
?>
ログインフォームは login.php に含まれています。PHP/log.php に関連する login.pho のコードは次のとおりです。
<?
session_start();
if($_GET['login'] == "failed") {
print $_GET['cause'];
}
?>
と
<form name="login_form" id="form" method="post" action="log.php?action=login">
私が遭遇した答えは、私が追加する必要があると述べました:
session_start(); // starts the session
$_SESSION['url'] = $_SERVER['REQUEST_URI'];
私が行った各ページの上部に、ページの上部(「require(「log.php」);」の上)に追加し、次を追加します。
if(isset($_SESSION['url']))
$url = $_SESSION['url']; // holds url for last page visited.
else
$url = "index.php"; // default page for
ログイン ページに移動し、ログイン成功時のリダイレクトに次の URL を使用します。
header("Location: http://example.com/$url"); // perform correct redirect.
私は、log.php または login.php の先頭に、参照 URL を格納するコードがどこにあるべきか 100% ではありません。
両方に追加しようとしましたが、ユーザー名とパスワードを入力すると、ログイン ページがループします。
誰かがこれを機能させるのを手伝ってくれるのだろうか?
ありがとう、
ニック