Мне нужна такая функция, например нажал на ссылку и она исчезла, и например через час она опять появилась.. Кто сможет помочь?
<?php
Вариант, с записью времени в файл:
if (isset($_GET['link'])) {
$time = 5; // Через сколько секунд появится ссылка
file_put_contents('link_time.dat', time()+$time);
}
if (Удалён {
$link_time = file_get_contents('link_time.dat');
}
if (empty($link_time) or time() > $link_time) {
echo '<a href="?link">Link</a>';
}
//////
Тоже самое, только на сессиях:
session_start();
if (isset($_GET['link'])) {
$time = 5; // Через сколько секунд появится ссылка
$_SESSION['link_time'] = time() + $time;
}
if (empty($_SESSION['link_time']) or time() > $_SESSION['link_time']) {
echo '<a href="?link">Link</a>';
}
?>
Различие в том, что первый вариант будет работать для всех пользователей на сайте. А второй уже индивидуально для каждого. Я не знаю что тебе больше подходит.
Но минус сессий в том, что можно закрыть и открыть браузер, и время собьется. Можно сделать на куках, но куки можно отредактировать. Лучший вариант, это записывать время в базу
Ну мне нужно чтоб для каждого по отдельности открывало)) Тоесть мне для бонусов нужно Человек получил бонус и например через 2-3 часа опять. Ну когда ссылка откроется.
Тебе нужно записать время в БД когда чел получил бонус и при выводе ссылки условие поставить
Такое даже смысла нет реализовывать на файлах и сессиях. Только бд. Например. Создаешь поле в строке user.timestamp. При переходе по ссылке записываешь туды time+3600 (это час) и потом проверяешь if user.timestamp > time() ...
Ну типа этого
<?php
if (isset($_GET['link'])) {
$time = 5; // Через сколько секунд появится ссылка
$_SESSION['link_time'] = time() + $time;
mysql_query("UPDATE users SET link_time = '".(time() + $time)."' WHERE id = '1'"
}
$result = mysql_query("SELECT link_time FROM users WHERE id = '1'"
$user = mysql_fetch_assoc($result);
if (empty($user['link_time']) or time() > $user['link_time']) {
echo '<a href="?link">Link</a>';
}
?>
Спасибо за помощь, шас папробую...