Буду очень признателен за любую помощь, если это возможно!
Это вопрос: Используйте файл cookie (НЕ PHP SESSION), срок действия которого истекает через год, чтобы сделать следующее: Запишите отметку времени ПЕРВОЙ загрузки этой страницы (но НЕ любой последующей загрузки этой страницы).
Код:
<!DOCTYPE html>
<html>
<head>
<title>User Profile</title>
</head>
<body>
<h3><?=$message?></h3>
User Profile:
<br><br>
<form action = "" method = "POST" name = "form1" onsubmit = "return validate_form()">
<input type = "hidden" name = "task" value = "process_profile">
<input type = "checkbox" name = "is_cool" value = "yes">
Are you cool?
<br><br>
What Bands do you like?
<br>
<select name = "like_bands[]" multiple> <small>* Required Field</small>
<option value = "Sabbath">Black Sabbath</option>
<option value = "Mastodon">Mastodon</option>
<option value = "Metallica">Metallica</option>
<option value = "Swift">Taylor Swift</option>
</select>
<br><br>
Favorite band not in the above list.
<br>
<input type = "text" name = "other_band" value = "">
<br><br>
<button type = "submit"> Continue/Confirm </button>
</form>
<script>
//////////////////////////////////////////////////////////////////////////////////////////////////////////
// Client-side form validation
// Don't change the names of stuff in the form, and you won't have to change anything below
// Used built-in JS instead of JQuery or other validation tool
//////////////////////////////////////////////////////////////////////////////////////////////////////////
function validate_form() {
var form_obj = document.form1;
var count_liked = 0;
for (var i=0 ; i < form_obj['like_bands[]'].options.length ; i++ ) {
if (form_obj['like_bands[]'].options[i].selected) {
count_liked++;
}
}
if (count_liked == 0) {
alert("You must choose a band from the menu.");
return false; // cancel form submission
}
return true; // trigger form submission
}
</script>
</body>
</html>
Да, на самой странице нет файла cookie. Цель состоит в том, чтобы создать файл cookie, в котором хранится метка времени, когда эта страница впервые открывается пользователем, а не больше.
Это то, что я пробовал до сих пор, я не уверен, что это работает. function load_dateCookie() { $date = date("l jS \of F Y h:i:s A"); $name = "load_date"; echo $date; $load_date = setcookie($name, $date, time() + (86400 * 365)); return $load_date; }
Поместите код в вопрос, а не в комментарий.
Вы не проверяете, что файл cookie уже существует, поэтому каждый раз заменяете его. if (isset($_COOKIE[$name])) { return; }
Я не слишком уверен, что вы имеете в виду. Все, что я должен сделать, это создать файл cookie для кода в вопросе. Предполагается, что файл cookie хранит метку времени первой загрузки страницы, но я не знаю, как это сделать.






Проверьте, не установлен ли файл cookie. Если нет, установите для файла cookie текущую отметку времени.
if (!isset($_COOKIE['load_date'])) {
setcookie('load_date', time(), time() + 86400*365);
}
Дата файла cookie не должна обновляться. Он хранит метку времени, когда страница была впервые открыта.
И это то, что это должно делать. Он не обновляет файл cookie, если он уже установлен.
О, хорошо, теперь я понял, большое спасибо, Бармар!!
Ни один из размещенных вами кодов не имеет ничего общего с файлами cookie. Какая часть этого сбивает с толку? Проверьте, содержит ли
$_COOKIEимя, которое вы хотите. Если нет, используйтеsetcookie(), чтобы создать его.