Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Редирект на главную страницу
 
 автор: Sywooch   (14.04.2006 в 21:15)   письмо автору
 
 

Что такого нужно понаписывать на каждом РНР файле чтоб если ктонить обращался прямо на него сразу был отправлен на главную!!?

   
 
 автор: malish   (14.04.2006 в 21:20)   письмо автору
 
   для: Sywooch   (14.04.2006 в 21:15)
 


<?if(!defined("Что-то")) header("Location: http://www.test.ru");?>


а везде писать:

define("Что-то",TRUE);

   
 
 автор: ZetRider   (14.04.2006 в 21:30)   письмо автору
 
   для: malish   (14.04.2006 в 21:20)
 

а всмысле везде писать

define("Что-то",TRUE);


??

а на месте Что-то ето тект который будет вылазить или что там текст делает?

   
 
 автор: malish   (14.04.2006 в 21:36)   письмо автору
 
   для: ZetRider   (14.04.2006 в 21:30)
 

Если ты файл include'ом вставляешь и не хочешь чтоб на него напрямую заходили...

index.php

<? 
define
("SUPER_MEGA_SITE",TRUE);
include(
"top.php");
?>


top.php

<?
if(!defined("SUPER_MEGA_SITE")) header("Location: http://www.test.ru");
?> 


SUPER_MEGA_SITE - любая переменная

   
 
 автор: isset   (14.04.2006 в 22:26)   письмо автору
 
   для: malish   (14.04.2006 в 21:36)
 

только после header не забудь сделать exit;

   
 
 автор: Sywooch   (15.04.2006 в 05:30)   письмо автору
 
   для: isset   (14.04.2006 в 22:26)
 

Честно говоря непонял, запутался.

   
 
 автор: cheops   (15.04.2006 в 13:31)   письмо автору
 
   для: Sywooch   (15.04.2006 в 05:30)
 

Можно ввести сессию, а на главной странице поместить в неё переменную, если переменная определена, значит посетитель побывал на главной странице - если нет, то он пришёл сразу на подчинённую страницу. В начале главной страницы index.php следует поместить такие строки
<?php
  
// Инициируем сессию
  
session_start();
  
// Регистрируем посетителя
  
$_SESSION['main'] = 1;
?>

На всех остальных страницах, кроме index.php в начале поместить код
<?php
if(!isset($_SESSION['main']))
{
  
header("Location: http://www.test.ru"); 
  exit();
}
?>

   
 
 автор: Sywooch   (15.04.2006 в 14:53)   письмо автору
 
   для: cheops   (15.04.2006 в 13:31)
 

Спасибо. вроде понял.

   
 
 автор: Sywooch   (15.04.2006 в 19:28)   письмо автору
 
   для: Sywooch   (15.04.2006 в 14:53)
 

Вставил в индекс то что вы сказали!
Ругается!!!


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by

   
 
 автор: Лёлик   (15.04.2006 в 19:41)   письмо автору
 
   для: Sywooch   (15.04.2006 в 19:28)
 

заголовки необходимо посылать до вывода данных в брузер, вставте ваш код в самое начало

   
 
 автор: Sywooch   (15.04.2006 в 20:30)   письмо автору
 
   для: Лёлик   (15.04.2006 в 19:41)
 

он и так в самом самом верху!

Вот мой index.php
не обращайте внимание на заморочку
с айпишником. это для того,
чтоб из локалки нелазил никто :)


<?
// Инициируем сессию 
session_start(); 
// Регистрируем посетителя 
$_SESSION['main'] = 1
include 
"config.php";
$ip $_SERVER['REMOTE_ADDR'];
$my_ip "127.0.0.1";
if (
$ip !== $my_ip)
echo 
'Для IP-('.$ip.') доступ закрыт!!!';
else{}
if (
$ip !== $my_ip)
return 
false;
else{}

LoadDesign();
Clr(''); 
Parse();
/*-печатаем то что получилось-*/
echo $DesignOut;
?>

   
 
 автор: cheops   (15.04.2006 в 23:05)   письмо автору
 
   для: Sywooch   (15.04.2006 в 20:30)
 

1) Посмотрите нет ли пробелов перед <?
2) Приведите полный текст ошибки

   
 
 автор: Sywooch   (16.04.2006 в 03:24)   письмо автору
 
   для: cheops   (15.04.2006 в 23:05)
 

Да спасибо!
Я сам допер :)
Убрал пробел и заработало...
Но че то непонял чем пробел мешает?
Ради интереса обьясните!

   
 
 автор: cheops   (16.04.2006 в 13:43)   письмо автору
 
   для: Sywooch   (16.04.2006 в 03:24)
 

Дело в том, что уникальный номер сессии SID хранится у пользователя в сессионных cookie. А cookie в свою очеред устанавливаются при помощи HTTP-заголовков, которые согласно протоколу HTTP должны быть отправлены до тела документа. PHP когда интерпретирует скрипт отправляет заголовки клиенту до первого вывода в браузер, как только встречается вывод в браузер, даже пробел, PHP считает что это начало тела документа и заголовков больше не будет. Поэтому когда он после того, как документ пошёл клиенту встречает функции, отправляющие HTTP-заголовки (setcookie(), session_start(), heade()) - он не может их уже отправить и сообщает об этом в виде вывода предупреждения в окно браузера.

   
 
 автор: Sywooch   (16.04.2006 в 15:34)   письмо автору
 
   для: cheops   (16.04.2006 в 13:43)
 

Спасибо.
Во оно как!!!

   
 
 автор: Sywooch   (17.04.2006 в 00:48)   письмо автору
 
   для: Sywooch   (16.04.2006 в 15:34)
 

Тут такое дело....
Если на все странички вписывать это:


<?php 
if(!isset($_SESSION['main'])) 

  
header("Location: http://www.test.ru"); 
  exit(); 

?> 

Можно сдуреть.
Собсно вопрос.
Как можно "http://www.test.ru" держать в переменной?
Чтоб один раз ввести в конфиге а оно везде изменилось?

   
 
 автор: cheops   (17.04.2006 в 18:18)   письмо автору
 
   для: Sywooch   (17.04.2006 в 00:48)
 

Да, это вполне допустимо
<?php 
$url 
"http://www.test.ru";
if(!isset(
$_SESSION['main'])) 

  
header("Location: ".$url); 
  exit(); 

?>

PS Под новые вопросы, лучше заводить новые темы.

   
 
 автор: Sywooch   (17.04.2006 в 20:40)   письмо автору
 
   для: cheops   (17.04.2006 в 18:18)
 

а вроде продолжение того же вопроса?

ЗЫ. учту!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования