こんにちは私は正常に作成したクッキーを取得しようとしていて、それを文字列と比較しています。Cookieを使用してログインしているかどうかを確認してください
問題は、ユーザーがページに直接アクセスして、すべてのコンテンツが表示され、そのようなことが起こりたくない場合、ユーザーをログインページにリダイレクトすることです。
基本的には「はい」と表示されているだけで、ページが表示され、クッキーがないか、またはnoに設定されていると、ログインにリダイレクトされます。
私はPHPを使用しようとしています。これが私が試みたものです。
<?php
$value = "Yes";
if(isset($_COOKIE['user']) && $_COOKIE['user'] == $value)
{
?>
<!------- HTML code goes here ------->
<?php
}
else{
$cookie_name = "user";
$cookie_value = "No";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
header("Location: index1.html");
}
?>
これは基本的にSQLデータベースで入力された詳細を確認するために呼び出すphpです。
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$conn = mysqli_connect("localhost", "root", "", "accounts");
if (mysqli_connect_errno()){
echo "Error: Could not connect to database. Please try again later";
exit;
}
$query="SELECT * FROM accounts WHERE username='$username' AND password='$password'";
$result = mysqli_query($conn, $query)
or die("Error in query: ". mysqli_error($conn));
$number_of_rows = mysqli_num_rows($result);
if($number_of_rows == 1){
$cookie_name = "user";
$cookie_value = "Yes";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
header("Location: main.html");
exit;
}
else{
$cookie_name = "user";
$cookie_value = "No";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
header("Location: index2.html");
}
?>
誰かがこれを行う方法を理解できますか?私は別のコードを試してみました。私はクッキーを正常に保存しましたが、この部分を解決できないようです。
おかげ
あなたの代わりにクッキーのセッションを行うことができますか? – maria
これは非常に悪い考えで、誰でもそのCookieを手動で設定して、サイトにログインしているふりをすることができます。これにはセッションを使用する必要があります。 – jeroen
クッキー値を「いいえ」に設定しましたが、「はい」でチェックしようとしていますか?理由を知ることができますか? –