перенаправление на другие страницы

googlyah

Новичок
есть переменная $age_in_years
в нее мы получаем возраст
нужно сделать функцию которая перенаправляла бы пользователя старше 18 лет на index.php
а младше вообще отсоединяла от сайта (но не знаю какая функция для етого используеться и возможно ли такое) либо же отправляла его на страницу block.php допустим

помогите пожалуйста в написание такой функции

вот мои наброски но почему то не работает переход на по ссылкам(
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: $page");
?> 
  <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;
// Определяем пропускаем ли пользователя на сайт;
?>
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Действительно, почему бы ему работать?

header ("Location: $page");

И где у тебя переменная $page???
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Да и логика у тебя неправильная))) Иди, дебаж
 

googlyah

Новичок
PHP:
<?php
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;
// Определяем пропускаем ли пользователя на сайт;
$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>
вот такое вот сотворил

но переходит только на index.php

почему счас не работает?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
включи голову, подумай. Условие твое неверное, видимо так
 

googlyah

Новичок
там была глупая ошибка с age4 а теcтировалось все на age5

не подскажете как теперь это засунуть в окно которое будет выскакивать при любом входе на сайт?

обычным поп-апом?
 

googlyah

Новичок
появилась новая проблема
возраст считает только по годам тоисть не учитывается день и месяц теперь
как это правильно исправить?
 

Sulik

Новичок
PHP:
<?php

function Age($day, $month, $year) {
	$today = 	mktime();
	$date = mktime(0, 0, 0, $month, $day, $year);
	$age = sprintf("%d", ($today-$date)/60/60/24/365);
	if ( $age > 17) {
		return True;
	} else {
		return False;
	}
}


if ($_POST[day]) {
	if (Age($_POST[day], $_POST[month], $_POST[year])) {
		?>Тебе 18<?
	} else {
		?>Тебе нет 18<?
	}
}

?>
примерно так там на пару дней ошибка есть в связи с тем что бывает высокосный год.
 

Вурдалак

Продвинутый новичок
Да дело не в красоте, а в алгоритме. Можно, к примеру, вот так написать:
PHP:
function getAge($birthday)
{
    $yearsDiff = date('Y') - substr($birthday, 0, 4);

    return substr($birthday, 5) > date('m-d') ? $yearsDiff - 1 : $yearsDiff;
}

$age = getAge('2000-01-01');
С интервалом дат нельзя работать как с разностью unix timestamp'ов.
 

Sulik

Новичок
А куда пропали дни и месяца. не все же в один день рождаются.
 

Вурдалак

Продвинутый новичок
Sulik, ты сначала код внимательно изучи. Он и так вроде бы небольшой.
 

googlyah

Новичок
не могли бы вы пожалуйста помочь теперь прикрепить этот волшебный код к форме ввода HTML
 

googlyah

Новичок
помогите пожалуйста хоть кто нибудь прилепить все нормально к HTML что б оно работало и делало корректно редирект на другие ссылки
 
Сверху