私は小さなアプリケーションを持っているので、すべての上にログインゲームを含める時です。ただ、それを持って、現実の世界で実行されている(:P)ここでクッキーを設定して、別のPHPファイルでそれらを読み取ることができません
は、ログインページ(login.php)に私のコードです:
<!DOCTYPE html>
<html>
<head>
<title>
Login
</title>
<meta charset="UTF-8">
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<?php include_once("analyticstracking.php") ?>
<form action="login.php" method="POST">
<?php
if (isset($_POST['user']) && isset($_POST['password']))
{
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response']))
{
$secret = '';
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
if($responseData->success)
{
$user = $_POST['user'];
$password = $_POST['password'];
$salt = "d5f332312e3e390c81f6ef9f242c21bf9e472d6296ddd4bebddd0f54eb576f14";
$hpassword = hash('sha256', $salt . $password);
$_COOKIE['user'] = $user;
$_COOKIE['pass'] = $hpassword;
$auth = 1;
$_COOKIE['authorized'] = $auth;
setrawcookie("user", $user, time() + 28800, "/",'domaindig.eu');
setrawcookie("hpass", $hpassword, time() + 28800, "/",'domaindig.eu');
setrawcookie("authorized", $auth, time() + 28800, "/",'domaindig.eu');
print_r($_COOKIE);
header('Location: check.php');
}
}
}
?>
username: <input name="user" type="user"><br>
password: <input name="password" type="password"><br>
<div class="g-recaptcha" data-sitekey=""></div>
<input type="submit" value="Submit" /><br><br>
</form>
</body>
</html>
ご覧の通り、私は私がするためにGoogleのreCAPTCHAのを使用ブルートフォースログインを防ぎます。その時(repcatchaを挿入したとき)、私の$ _SESSION変数のどれもが再び働いていませんでした。だから、私はクッキー(常にセッションの使用のために新しいexperiance)で作業することに決めました。
これまでのところ、とても良いです。
このPHPページのコーディングが終了したら、私はphpファイルcheck.phpを終了しました。このファイルでは、資格情報をチェックして、すべてがチェックアウトしたら、メインページとメニューにリダイレクトします(グラフはありません。純粋なPHPのみ)。
私の問題は、次のとおりです。
秒のファイルで、私はすべてのクッキーを参照することはできません。私はprint_r($ _ COOKIE)を使用します。私はrecaptchaからのクッキーだけを見る。ログインページでは、設定しようとしている3つのCookieが表示されますが、他のファイルでは、私はそれらを読むことができないようです。私は複数のブラウザと複数のコンピュータをチェックしましたが、同じ運があります。私はブラウザがクッキーを受け入れることができることを確認しましたが、間違いを犯したようです。
私の説明について何か不安がある場合は、私にお知らせください。私は明確にします。ここで
は(クッキーを使用して資格情報をチェックします)私のcheck.phpコードです:私は、ログインページ上に表示されたときにここで
<!DOCTYPE html>
<html>
<head>
<title>
check
</title>
<meta charset="UTF-8">
</head>
<body>
<?php include_once("analyticstracking.php") ?>
<form action="check.php" method="POST">
<?php
if ($_COOKIE['authorized'] == 1)
{
if (isset($_COOKIE['user']) || isset($_COOKIE['hpass']))
{
require('ConnectToDB.php');
$username = $_COOKIE['user'];
$password = $_COOKIE['hpass'];
$result="SELECT `password` FROM `users` WHERE username = '$username'";
$tbl=mysqli_query ($conn, $result);
$table = $tbl->fetch_assoc();
$pass = $table['password'];
if ($pass)
{
if ($password == $pass)
{
$ip = $_SERVER['REMOTE_ADDR'];
$date = date("Y-m-d H:i:s");
$result = "INSERT INTO `logins` (`username`, `date`, `ip`) VALUES ('$username', '$date', '$ip')";
$tbl = mysqli_query($conn, $result);
$_COOKIE['authorized'] = 1;
echo "Login successfull! Redirecting.";
require 'ConnectToDB.php';
$alphanumeric[0] = "0";
$alphanumeric[1] = "1";
$alphanumeric[2] = "2";
$alphanumeric[3] = "3";
$alphanumeric[4] = "4";
$alphanumeric[5] = "5";
$alphanumeric[6] = "6";
$alphanumeric[7] = "7";
$alphanumeric[8] = "8";
$alphanumeric[9] = "9";
$alphanumeric[10] = "a";
$alphanumeric[11] = "b";
$alphanumeric[12] = "c";
$alphanumeric[13] = "d";
$alphanumeric[14] = "e";
$alphanumeric[15] = "f";
$alphanumeric[16] = "g";
$alphanumeric[16] = "h";
$alphanumeric[17] = "i";
$alphanumeric[18] = "j";
$alphanumeric[19] = "k";
$alphanumeric[20] = "l";
$alphanumeric[21] = "m";
$alphanumeric[22] = "n";
$alphanumeric[23] = "o";
$alphanumeric[24] = "p";
$alphanumeric[25] = "q";
$alphanumeric[26] = "r";
$alphanumeric[27] = "s";
$alphanumeric[28] = "t";
$alphanumeric[29] = "u";
$alphanumeric[30] = "v";
$alphanumeric[31] = "w";
$alphanumeric[32] = "x";
$alphanumeric[33] = "y";
$alphanumeric[34] = "z";
$alphanumeric[35] = "A";
$alphanumeric[36] = "B";
$alphanumeric[37] = "C";
$alphanumeric[38] = "D";
$alphanumeric[39] = "E";
$alphanumeric[40] = "F";
$alphanumeric[41] = "G";
$alphanumeric[42] = "H";
$alphanumeric[43] = "I";
$alphanumeric[44] = "J";
$alphanumeric[45] = "K";
$alphanumeric[46] = "L";
$alphanumeric[47] = "M";
$alphanumeric[48] = "N";
$alphanumeric[49] = "O";
$alphanumeric[50] = "P";
$alphanumeric[51] = "Q";
$alphanumeric[52] = "R";
$alphanumeric[53] = "S";
$alphanumeric[54] = "T";
$alphanumeric[55] = "U";
$alphanumeric[56] = "V";
$alphanumeric[57] = "W";
$alphanumeric[58] = "X";
$alphanumeric[59] = "Y";
$alphanumeric[60] = "Z";
global $session;
$session = "";
for ($i=0;$i<20;$i++)
{
$rnd = rand(0, 60);
$session .= $alphanumeric[$rnd];
}
$date = date("Y-m-d");
$ip = $_SERVER['REMOTE_ADDR'];
$result = "INSERT INTO `sessions` (`user`, `date`, `session_id`, `ip`, `login`) VALUES ('$username', '$date', '$session', '$ip', '1')";
$tbl = mysqli_query($conn, $result);
echo "All done";
echo '<script> window.location = "https://domaindig.eu/index.php" </script>';
}
else
{
echo "User found but password provided was wrong. Try again!";
// echo '<script> window.location = "https://domaindig.eu/login.php" </script>';
}
}
else
{
echo "Failure. Couldn't fetch password!!! Try again.";
//echo '<script> window.location = "https://domaindig.eu/login.php" </script>';
}
}
else
{
echo "Something went wrong. Try login again!";
//echo '<script> window.location = "https://domaindig.eu/login.php" </script>';
}
}
else
{
echo "Unauthorized access!!";
//echo '<script> window.location = "https://domaindig.eu/login.php" </script>';
}
?>
</form>
</body>
</html>
も私のクッキーの写真です:
事前に皆様に感謝いたします。
すべてのファイルは、同じドメイン名にあり、同じディレクトリ(/)にあります。 – adamkwn
私は自分のコードを今すぐ実行します。クッキーを取得できます。同じドメインの2つのPHPファイルを必ず訪れてください。 –
こんにちは。これはうまくいきますが、上記のコードをgoogle recaptchaと組み合わせてもセッションは機能しませんが、クッキーがうまく動作することを期待しています。あなたはrecaptchaでコードを試しましたか? – adamkwn