Я новичок в PHP, но не программирую в целом, и это поставило меня в тупик на несколько недель.
Я работаю над сайтом, где другие пользователи начнут использовать логин.поэтому я не могу использовать мой обходной путь на этом этапе.
Это код для установки файла cookie.
ob_start();
...
session_register("myusername");
session_register("mypassword");
$cookiename = "loginsuccess";
$ipforcookie = $_SERVER['REMOTE_ADDR'];
$cookiedata = $myusername._.$ipforcookie;
$cookietime = time()+18000;
setcookie($cookiename, $cookiedata, $cookietime, '/', ".example.com");
...
ob_end_flush();
Этот код я использую, чтобы проверить, является ли файл cookie действительным.
if(isset($_COOKIE['loginsuccess'])){
$arr = explode("_", $_COOKIE['loginsuccess']);
if(strcmp($arr[1], $_SERVER['REMOTE_ADDR']) == 0){
require("headerLogged.php");
}else{
require("header.php");
}
}else{
require("header.php");
}
Он проверяет, есть ли файл cookie, и соответствует ли его IP-адрес, в случае, если кто-то пытается скопировать файл cookie на свой компьютер или базовый файл такого типа.
Проблема заключается в том,Я могу войти, и cookie регистрируется везде, где я проверяю ... около двух часов.Затем веб-сайт прекращает принимать его, и даже после того, как я удалю cookie, он не создаст новый cookie, если я не изменю вызов функции с ...
setcookie($cookiename, $cookiedata, $cookietime, '/', ".example.com");
на
setcookie($cookiename, $cookiedata, $cookietime, '/');
Затем логин и проверка снова работает.Повторяя при необходимости каждые 2 часа.Я больше не могу этого делать, потому что другие начнут использовать этот логин без знания моего кода или доступа к сайту.
Редактировать: Когда я изменил его на более поздний, только сейчас, онможет быть подтверждено, но только на той части сайта, где он был создан (возможно, несколько очевидно).
Я надеюсь, что предоставил вам достаточно информации, и я ценю любую помощь, которую вы готовы оказатьменя, связанных с этой проблемой, потому что я уверен, что даже небольшой объем кода, который я предоставил, показывает мой статус новичка.В любом случае, большое спасибо за ваше время.