私は自分のウェブサイトの各ページの先頭にあるsession.phpスクリプトを試して、サイトを閲覧する前にユーザーがログインしていることを確認しました。ただし、process_loginスクリプトはセキュアなランディングページをロードせず、ログインページにリロードするだけです。私の安全なセッションが正しく設定されていないと思います。誰かがこれが私にどのように作用するかをさらに説明できますか?phpとmysqlを使って安全なセッションを作る方法は?
これは、ユーザーがログインをクリックしたときに実行されるスクリプト、process_login、次のとおりです。
<?php
// Initialize session
session_start();
// Require database connection settings
require('config.inc');
// Retrieve email and password from database
$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string(md5($_POST['password']));
$query = "SELECT * FROM $table WHERE email='$email' AND password='$password' LIMIT 1";
$result = mysql_query($query);
// Check email and password match
if(mysql_num_rows($result)) {
// Set email session variable
$_SESSION['email'] = $_POST['email'];
// Jump to secured page
header('Location: home.php');
}
else {
// Jump to login page
header('Location: index.php');
}
?>
、これは、ログインするユーザーを必要とする各ページの先頭であるsession.phpスクリプトです:あなたは、あなたのファイルsession.pにコード
session_start();
を含める必要が
<?php
if (isset($_SESSION['email']) == 0) {
// Redirect to login page
header('Location: index.php');
}
?>
あなたは何を試してみることができますか? – Ivan
私たちにいくつかのコードを示す必要があります。 – Cyclonecode
process_loginスクリプトが呼び出されると、定義されたユーザはまだログインしていません。したがって、process_login中にverify/redirectコードを実行しないでください。 – Jon