[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: переход на другие страницы
GOOGLAH
есть переменная $age_in_years
в нее мы получаем возраст
нужно сделать функцию которая перенаправляла бы пользователя старше 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 - посылает заголовок! Необходимо до любого вывода информации на экран. Поэтому ПХП код вверх, ХТМЛ код вниз!

Спустя 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, то отправляй на одну страницу, если больше то на другую. Чтобы не было проблем с хидерами включи буферизацию.

Спустя 2 часа, 20 минут, 4 секунды (18.12.2010 - 15:55) GOOGLAH написал(а):
kovaldm
можете пожалуйста показать как это сделать правильно?

<?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

Спустя 49 минут, 57 секунд (18.12.2010 - 18:58) Gufon написал(а):
Цитата
Зачем тут JS? Если возраст меньше 18, то отправляй на одну страницу, если больше то на другую. Чтобы не было проблем с хидерами включи буферизацию.

Затем чтоб все это работало без перезагрузки

Спустя 39 минут, 49 секунд (18.12.2010 - 19:38) GOOGLAH написал(а):
появилась новая проблема
возраст считает только по годам тоисть не учитывается день и месяц теперь
как это правильно исправить?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.