в нее мы получаем возраст
нужно сделать функцию которая перенаправляла бы пользователя старше 18 лет на index.php
а младше вообще отсоединяла от сайта (но не знаю какая функция для етого используеться и возможно ли такое) либо же отправляла его на страницу block.php допустим
помогите пожалуйста в написание такой функции
(Добавление)
<CENTER>
<font class="storytitle"><b>Введите дату своего рождения:
</font></b>
<br>
<br>
<form action=age4.php method=post>
<TABLE cellspacing="0" cellpadding="1" border=0>
<TR>
<TD ><b>Месяц:</b></TD><TD>
<select size="1" name=month>
<option selected value = "1">Январь
</option>
<option value = "2">Февраль
</option>
<option value = "3">Март
</option>
<option value = "4">Апрель
</option>
<option value = "5">Май
</option>
<option value = "6">Июнь
</option>
<option value = "7">Июль
</option>
<option value = "8">Август
</option>
<option value = "9">Сентябрь
</option>
<option value = "10">Октябрь
</option>
<option value = "11">Ноябрь
</option>
<option value = "12">Декабрь
</option>
</select> </TD>
</TR>
<TR><TD><b>День:</b></TD><TD>
<select class="input" type=text name=day>
<?php
$cDay = 1;
for ($i = 1; $i <= 31; $i++) // Цикл от 0 до 31
{
$new_day = $day + $i; // Формируем новое значение
echo '<option value='.$new_day.'>'.$new_day.'</option>'; //Формируем новую строчку
}
?>
</select> </TD>
</TR>
<TR><TD><b>Год:</b></TD><TD>
<INPUT name=year value="" size=4 MAXLENGTH="4"></TD> <?php
?>
</TABLE>
<INPUT type=submit value="Далее">
<br>
</form>
</CENTER>
<?
// Принимаем дату и время рождения
$sec = 1;
$min = 1;
$hour = 1;
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
//Теперь вычислим метку Unix для указанной даты
$birthdate_unix = mktime($hour, $min, $sec, $month, $day, $year);
//Вычислим метку unix для текущего момента
$current_unix = time();
//Просчитаем разность меток
$period_unix=$current_unix - $birthdate_unix;
// Получаем искомый возраст
// Возраст измеряемый годами
$age_in_years = floor($period_unix / (365*24*60*60));
// Возраст измеряемый днями
$age_in_days = floor($period_unix / (24*60*60));
// Возраст измеряемый часами
$age_in_hours = floor($period_unix / (60*60));
// Возраст измеряемый минутами
$age_in_minutes = floor($period_unix / 60);
// Возраст измеряемый секундами
$age_in_seconds = $period_unix;
// Теперь выводим все это на экран;
function redirect($url = "test.php")
{
if ($age_in_years>18) {
echo "<script>document.location.href='$url';</script>\n";
} else {
header('Refresh: 3; URL=block.php');
echo 'Через 3 сек. вы будете перенаправлены на новую страницу.';
exit;
}
}
?>
(Добавление)
пробовал вот так вот но ничего не выходит
помогите пожалуйста
с помощью какой функции вообще можно сделать переход на нужную нам страницу
Header же не подходит для этих целей
Спустя 30 минут, 29 секунд (17.12.2010 - 21:55) Elfist написал(а):
А чем Header не подходит?
Спустя 4 минуты, 26 секунд (17.12.2010 - 21:59) inpost написал(а):
GOOGLAH
Построение меняйте местами! Header - посылает заголовок! Необходимо до любого вывода информации на экран. Поэтому ПХП код вверх, ХТМЛ код вниз!
Построение меняйте местами! Header - посылает заголовок! Необходимо до любого вывода информации на экран. Поэтому ПХП код вверх, ХТМЛ код вниз!
Спустя 2 минуты, 47 секунд (17.12.2010 - 22:02) Gufon написал(а):
просто сделай условие if получаеться если переменная А равна больше 18 тогда просто будет дальше идти весь хтмл код а иначе exit и объяснения. Но так делать плохо
Спустя 7 минут, 7 секунд (17.12.2010 - 22:09) GOOGLAH написал(а):
Цитата (Gufon @ 17.12.2010 - 19:02) |
просто сделай условие if получаеться если переменная А равна больше 18 тогда просто будет дальше идти весь хтмл код а иначе exit и объяснения. Но так делать плохо |
а чем так делать плохо?
Спустя 2 минуты, 15 секунд (17.12.2010 - 22:11) GOOGLAH написал(а):
Цитата (inpost @ 17.12.2010 - 18:59) |
GOOGLAH Построение меняйте местами! Header - посылает заголовок! Необходимо до любого вывода информации на экран. Поэтому ПХП код вверх, ХТМЛ код вниз! |
после изменения их местами начал некорректно работать php код вычисления даты
и все равно ничего не переходит
Спустя 13 часов, 59 минут, 11 секунд (18.12.2010 - 12:10) Gufon написал(а):
Цитата |
а чем так делать плохо? |
Просто в самой странице придется менять двойныыи ковычки на одинарные тоесть такии " " на такие ' '. Но в принцепи можно этого избежать. Да и скорее всего понадобится js
Спустя 1 час, 23 минуты, 59 секунд (18.12.2010 - 13:34) kovaldm написал(а):
Gufon
Зачем тут JS? Если возраст меньше 18, то отправляй на одну страницу, если больше то на другую. Чтобы не было проблем с хидерами включи буферизацию.
Зачем тут JS? Если возраст меньше 18, то отправляй на одну страницу, если больше то на другую. Чтобы не было проблем с хидерами включи буферизацию.
Спустя 2 часа, 20 минут, 4 секунды (18.12.2010 - 15:55) GOOGLAH написал(а):
kovaldm
можете пожалуйста показать как это сделать правильно?
вот я пробовал такое но работает не корректно и сразу отправляет меня на index.php (
можете пожалуйста показать как это сделать правильно?
<?php
$mainpage="http://test2.ru/index.php";
$blockpage="http://test2.ru/block.php";
if($age_in_years>18){
header ("Location: $blockpage");
}else
header ("Location: $mainpage");
?>
<CENTER>
<font class="storytitle"><b>Введите дату своего рождения:
</font></b>
<br>
<br>
<form action=age4.php method=post>
<TABLE cellspacing="0" cellpadding="1" border=0>
<TR>
<TD ><b>Месяц:</b></TD><TD>
<select size="1" name=month>
<option selected value = "1">Январь
</option>
<option value = "2">Февраль
</option>
<option value = "3">Март
</option>
<option value = "4">Апрель
</option>
<option value = "5">Май
</option>
<option value = "6">Июнь
</option>
<option value = "7">Июль
</option>
<option value = "8">Август
</option>
<option value = "9">Сентябрь
</option>
<option value = "10">Октябрь
</option>
<option value = "11">Ноябрь
</option>
<option value = "12">Декабрь
</option>
</select> </TD>
</TR>
<TR><TD><b>День:</b></TD><TD>
<select class="input" type=text name=day>
<?php
$cDay = 1;
for ($i = 1; $i <= 31; $i++) // Цикл от 0 до 31
{
$new_day = $day + $i; // Формируем новое значение
echo '<option value='.$new_day.'>'.$new_day.'</option>'; //Формируем новую строчку
}
?>
</select> </TD>
</TR>
<TR><TD><b>Год:</b></TD><TD>
<INPUT name=year value="" size=4 MAXLENGTH="4"></TD> <?php
?>
</TABLE>
<INPUT type=submit value="Далее">
<br>
</form>
</CENTER>
<?
// Принимаем дату и время рождения
$sec = 1;
$min = 1;
$hour = 1;
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
//Теперь вычислим метку Unix для указанной даты
$birthdate_unix = mktime($hour, $min, $sec, $month, $day, $year);
//Вычислим метку unix для текущего момента
$current_unix = time();
//Просчитаем разность меток
$period_unix=$current_unix - $birthdate_unix;
// Получаем искомый возраст
// Возраст измеряемый годами
$age_in_years = floor($period_unix / (365*24*60*60));
// Возраст измеряемый днями
$age_in_days = floor($period_unix / (24*60*60));
// Возраст измеряемый часами
$age_in_hours = floor($period_unix / (60*60));
// Возраст измеряемый минутами
$age_in_minutes = floor($period_unix / 60);
// Возраст измеряемый секундами
$age_in_seconds = $period_unix;
// Определяем пропускаем ли пользователя на сайт;
?>
вот я пробовал такое но работает не корректно и сразу отправляет меня на index.php (
Спустя 26 минут, 20 секунд (18.12.2010 - 16:21) hellmin написал(а):
if(isset($_POST['year']))
{
// Принимаем дату и время рождения
$sec = 1;
$min = 1;
$hour = 1;
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
//Теперь вычислим метку Unix для указанной даты
$birthdate_unix = mktime($hour, $min, $sec, $month, $day, $year);
//Вычислим метку unix для текущего момента
$current_unix = time();
//Просчитаем разность меток
$period_unix=$current_unix - $birthdate_unix;
// Получаем искомый возраст
// Возраст измеряемый годами
$age_in_years = floor($period_unix / (365*24*60*60));
// Возраст измеряемый днями
$age_in_days = floor($period_unix / (24*60*60));
// Возраст измеряемый часами
$age_in_hours = floor($period_unix / (60*60));
// Возраст измеряемый минутами
$age_in_minutes = floor($period_unix / 60);
// Возраст измеряемый секундами
$age_in_seconds = $period_unix;
// Определяем пропускаем ли пользователя на сайт;
if($age_in_years>18)
header ("Location: $blockpage");
else
header ("Location: $mainpage");
}
а дальше html
Спустя 1 час, 47 минут, 36 секунд (18.12.2010 - 18:08) GOOGLAH написал(а):
hellmin
спасибо
но при любом возрасте переходит на index.php
спасибо
но при любом возрасте переходит на index.php
Спустя 49 минут, 57 секунд (18.12.2010 - 18:58) Gufon написал(а):
Цитата |
Зачем тут JS? Если возраст меньше 18, то отправляй на одну страницу, если больше то на другую. Чтобы не было проблем с хидерами включи буферизацию. |
Затем чтоб все это работало без перезагрузки
Спустя 39 минут, 49 секунд (18.12.2010 - 19:38) GOOGLAH написал(а):
появилась новая проблема
возраст считает только по годам тоисть не учитывается день и месяц теперь
как это правильно исправить?
возраст считает только по годам тоисть не учитывается день и месяц теперь
как это правильно исправить?