{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1. [автор] (29 ноя 2014, 00:47) [0/0] [0] [отв] [спам] [под] +1 | -1

Мне нужна такая функция, например нажал на ссылку и она исчезла, и например через час она опять появилась.. Кто сможет помочь?

2. (29 ноя 2014, 00:58) [1/0] [1] [отв] [спам] [под] +1 | -1

<?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>';
}
?>

Различие в том, что первый вариант будет работать для всех пользователей на сайте. А второй уже индивидуально для каждого. Я не знаю что тебе больше подходит.
Но минус сессий в том, что можно закрыть и открыть браузер, и время собьется. Можно сделать на куках, но куки можно отредактировать. Лучший вариант, это записывать время в базу


Изм. 1 раз. / Посл. изм. (29 ноя 2014, 01:03)
3. [автор] (29 ноя 2014, 01:10) [0/0] [0] [отв] [спам] [под] +1 | -1
Миледи,

Ну мне нужно чтоб для каждого по отдельности открывало)) Тоесть мне для бонусов нужно Человек получил бонус и например через 2-3 часа опять. Ну когда ссылка откроется.

4. (29 ноя 2014, 01:16) [0/0] [0] [отв] [спам] [под] +1 | -1

Тебе нужно записать время в БД когда чел получил бонус и при выводе ссылки условие поставить

5. (29 ноя 2014, 01:18) [0/0] [0] [отв] [спам] [под] +1 | -1
Vitalash,

Такое даже смысла нет реализовывать на файлах и сессиях. Только бд. Например. Создаешь поле в строке user.timestamp. При переходе по ссылке записываешь туды time+3600 (это час) и потом проверяешь if user.timestamp > time() ...

6. (29 ноя 2014, 01:20) [0/0] [0] [отв] [спам] [под] +1 | -1

Ну типа этого
<?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>';
}
?>


Изм. 1 раз. / Посл. изм. (29 ноя 2014, 01:21)
7. [автор] (29 ноя 2014, 01:23) [0/0] [0] [отв] [спам] [под] +1 | -1
Миледи,

Спасибо за помощь, шас папробую...

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений