|
|
|
| Извините, что вас опять тревожу... Я уже открывал такую тему и мне дали ответ, но к сожалению я не сохранил его... и вот хотел вернуться в темку почитать, но её почему-то не оказалось... Вот ссылка на прежнюю тему: http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=32898&page=1но там написало: "Ошибка при обращении к теме: 32898" :(((
Я спрашивал вот что:
"Не подскажете каким образом, точнее что писать в php скрипте, чтобы выполнить переадресацию на другой адес сайта. Например ко мне на сайт (http://www.finger.ru) кто-нибуть заходит и его в эту-же секунду переадресовывает на другой сайт (http://www.finger2.ru). Как это сделать? Что нужно прописать в скрипте?
Всего мне ответили три человека (и все предлагали разные варианты). Один из ответов я сохранил:
<?php
header("Location: http://www.site.com/");
?>
|
Вопрос: Какие варианты переадресации ещё могут быть ( они были написаны в той теме ). Пожалуйста ответьте. Очень нужно! Пожайлуста... | |
|
|
|
|
|
|
|
для: Finger
(21.02.2007 в 14:39)
| | Можно воспользоваться следующим вариантом
<?php
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=http://www.site.com/'>
</HEAD></HTML>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(21.02.2007 в 15:41)
| | а можно еще и вот так - в файле .htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain1.ru$ [NC]
RewriteRule (.*) http://www.domain2.ru/%{REQUEST_URI} [P]
|
| |
|
|
|
|
|
|
|
для: ZuArt
(21.02.2007 в 16:15)
| | ZuArt, cheops спасибо большое, но там был ещё один способ (он мне как раз и нужен). Подскажите кто-нибуть пожалуйста ещё способы. Очень сильно нужно. Заранее благодарен. | |
|
|
|
|
|
|
|
для: Finger
(21.02.2007 в 16:33)
| | ну еще можно скриптом...
<?
echo "<script>location=\"www.domain2.ru\";</script>";
?>
|
| |
|
|
|
|
|
|
|
для: ZuArt
(21.02.2007 в 16:37)
| | ZuArt, нет... это тоже не то... в той теме мне другой вариант написали... Буду очень сильно благодарен тому человеку, кто напишет ещё варианты.
З.Ы. - а куда делась та темка? Её восстановить никак нельзя? | |
|
|
|
|
|
|
|
для: Finger
(21.02.2007 в 17:00)
| | Так ладно... расскажу лучше почему все приведённые способы не подходят в моём случае. Имеется код (так как ничего не понимаю в php, выкладываю его весь) :
?>
<?
function check($str){
$str=ereg_Replace("(<([^>])*>|>|<)","",$str);
$str=str_replace("|",'|',$str);
$str=str_replace("`",'`',$str);
$str=str_replace("'",''',$str);
$str=str_replace('"','"',$str);
$str=str_replace("\r",'',$str);
$str=str_replace("\n",'<br>',$str);
return ($str);
}
if (@$warn) {unset($warn);}
$filename = $DOCUMENT_ROOT.$_GET['htm'].'.csv';
require("setings.php") ;
if (@$add) {
if (empty($_POST['name']) or empty($_POST['mess'])) {
$warn="Не заполнены обязательные поля!";
}else{
$warn="";
if(strlen($_POST['name']) > $maxlen)
{
$name=substr(check($_POST['name']),0,$maxlen);
$warn="Слишком длинное имя. Сократите до $maxlen символов! ";
}else{
$name=check($_POST['name']);
}
if(strlen($_POST['mail']) > $maxlen)
{
$mail=substr(check($_POST['mail']),0,$maxlen);
$warn="Слишком длинное имя. Сократите до $maxlen символов! ";
}elseif($mail and ! eregi("([0-9a-z\.-_]+)@([0-9a-z\.-_]+)\.([a-z]{2,}) *$",$_POST['mail'])){
$warn.="Таких электронных адресов не бывает! ";
}else{
$mail=check($_POST['mail']);
}
if(strlen($_POST['url']) > $maxlen)
{
$url=substr(check($_POST['url']),0,$maxlen);
$warn.="Слишком длинный адрес. Сократите до $maxlen символов!";
}else{
$url=check($_POST['url']);
}
if(strlen($_POST['city']) > $maxlen)
{
$city=substr(check($_POST['city']),0,$maxlen);
$warn.="Слишком длинное название города. Сократите до $maxlen символов!";
}else{
}
if(strlen($_POST['mess']) > $maxlenMes)
{
$mess=substr(check($_POST['mess']),0,$maxlenMes);
$warn.="Слишком длинное сообщение. Сократите до $maxlenMes символов!";
}else{
$mess=check($_POST['mess']);
}
}
if (empty($warn)) {
$f=fopen($filename,"a") or die("Не могу открыть файл на запись!");
flock($f,LOCK_EX);
fwrite($f, "$name|$mail|$url|$city|".time()."|$mess\r\n");
fflush($f);
flock($f,LOCK_UN);
fclose($f);
}
/////////////////////////////////////////////////////// !!! ВНИМАНИЕ !!! //////////////////////////////////////////////////////////////////////
!!! ВОТ В ЭТО МЕСТО МНЕ НУЖНО ВСТАВИТЬ КОД ПЕРЕАДРЕСАЦИИ !!!
ПОДСКАЖИТЕ КАКОЙ???
/////////////////////////////////////////////////////// !!! ВНИМАНИЕ !!! //////////////////////////////////////////////////////////////////////
}
?>
<html><!-- Создаем оформление страницы (эта часть работает если кнопка «добавить» не нажата или после ее нажатия добавить сообщение не удалось)-->
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<META http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
<META http-equiv="Cache-Control" content="no-cache, must-revalidate">
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Last-Modified" content="<?=gmdate("D, d M Y H:i:s");?>">
<META NAME="ROBOTS" CONTENT="noindex, nofollow"> <!--Запретим индексацию -->
<meta name="Description "content="">
<meta name="Keywords" content="">
<style type="text/css">
.p {color:#222222; font-size:11px; font-family:Verdana, Tahoma}
</style>
</head>
<body>
<center>
<div>
<?
if (@$adet==1):
echo "<P style='color:green'>Ваше сообщение добавлено</p>";
elseif (@$warn):
echo "<P style='color:white'>$warn</p>";
else:
echo "<B style='color:red'>Мини-чат:</B>";
endif;
?>
<P> </p>
<!-- Скрипт, отображающий данные из файла -->
<?
function datestring($date){
$monstring=array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
$m=$monstring[$date['mon']-1];
$daystring=array("в воскресенье", "в понедельник", "во вторник", "в среду", "в четверг", "в пятницу", "в субботу");
$d=$daystring[$date['wday']];
if(strlen($date['minutes'])==1)
{ // добавим ноль перед числом, если оно меньше 10
$min="0".$date['minutes'];
}else{
$min=$date['minutes'];
}
return "$d, ".$date['mday']." $m ".$date['year']." года, в ".$date['hours']." ч. $min мин.";
}
if (is_readable($filename)) { // если файл читается
$f = fopen($filename,"r") or die("Ошибка открытия базы");
for($i=0; $data=fgets($f, $maxlen*5+$maxlenMes); $i++)
{
@$totlines++ ;
}
unset($i);
fclose($f);
if (!isset($totlines)) {$totlines=0;}
$int=round(($totlines)/$maxlines);
if ($int*$maxlines < $totlines):
$pages=$int+1;
else:
$pages=$int;
endif;
if(@$page < 1 || @$page > $pages) {$page=$pages;} /
for ($link=1;$link<=$pages;$link++)
{
if ($link!=$page)
{
@$linesesis.="<a href=".$_SERVER["SCRIPT_NAME"]."?page=$link&htm=$htm>[$link]</a>";
}
if ($link==$page)
{
@$linesesis.=" $link ";
}
}
$to=$page*$maxlines-$maxlines;// от
$from=$page*$maxlines; // до
if ($from > $totlines) {$from=$totlines;}
$f = fopen($filename,"r") or die("Ошибка открытия базы");
for($i=0; $i < $from; $i++)
{
$data=fgetcsv($f, $maxlen*4+$maxlenMes, "|");
if ($i >= $to)
{
list($nametext, $mailtext, $urltext, $citytext, $timetext, $messtext) = $data; // перебросим массив в переменные (можно было бы обращаться к элементам массива как $data[1], $data[2] и т. д., но удобней по именам)
echo
"
<P> </p>
<table border=1 width=90% cellpadding=2 cellspacing=1 bgcolor=#CCCCCC class=p>
<tr><td align=center bgcolor=#e8e8ff><b>$nametext</b> ($citytext)</td></tr>
<tr><td bgcolor=#FFFFFF>$messtext</td></tr>
<tr><td align=right >Сообщение ".($i+1).", написано ".datestring(getdate($timetext))."</td></tr>
</table>
<P> </p>
";
}
}
unset($i);
fclose($f);
}
?>
<!-- Создаем форму, определив, какие данные нас интересуют -->
<form action=<?echo $_SERVER["SCRIPT_NAME"]."?page=".@$pages."&htm=".@$htm;?> name="frm" method=post>
<table border=2 width=366px>
<tr><td align=right class=p>Ваше имя:<input class=p type=text SIZE=39 MAXLENGTH=<?=@$maxlen;?> name=name value="<?=@$name;?>"></td></tr>
<tr><td align=left class=p valign=top>Текст сообщения (Не более <?=@$maxlenMes;?> символов):<br><textarea class=p name=mess rows=19 COLS=54><?=@$mess;?></textarea></td></tr>
<tr><td class=p colspan=2><input class=p type=submit value=Отправить name=add id=b> </td></tr>
</table>
</form>
<P> </p>
<?php
echo "<b>Страницы</b> $linesesis";
?>
|
В нём нужно заменить данный текст на код переадресации:
/////////////////////////////////////////////////////// !!! ВНИМАНИЕ !!! //////////////////////////////////////////////////////////////////////
!!! ВОТ В ЭТО МЕСТО МНЕ НУЖНО ВСТАВИТЬ КОД ПЕРЕАДРЕСАЦИИ !!!
ПОДСКАЖИТЕ КАКОЙ???
/////////////////////////////////////////////////////// !!! ВНИМАНИЕ !!! //////////////////////////////////////////////////////////////////////
|
Почему-то все вышеперечисленные способы не подходят. Когда я ввожу их в код, появляется ошибка. А в другой теме (которая куда-то пропала) был такой код переадресации, при котором ошибка не появлялась и переадресация работала нормально.
Люди добрые, подскажите пожалуйста, как сделать переадресацию в том месте. Очень вас прошу... помогите! | |
|
|
|
|
|
|
|
для: Finger
(21.02.2007 в 18:01)
| | ну помогите кто-нибуть | |
|
|
|
|
|
|
|
для: Finger
(21.02.2007 в 19:29)
| | Что никто не знает? Мне нужно быстрее. Ну пожалуйста ответьте. | |
|
|
|
|
|
|
|
для: Finger
(21.02.2007 в 20:06)
| | А что за ошибка появляесть когда вводишь header(location)? | |
|
|
|
|
|
|
|
для: Poison
(21.02.2007 в 20:13)
| | Poison, появляется ошибка следующего содержания:
Warning: Cannot modify header information - headers already sent by (output started at z:\home\aser.homeip.net\www\hlmonitor\index.php:8) in z:\home\aser.homeip.net\www\hlmonitor\index.php on line 309
|
| |
|
|
|
|
|
|
|
для: Finger
(21.02.2007 в 20:31)
| | Есть ли у Вас в файле settings.php какой-то вывод в браузер? | |
|
|
|
|
|
|
|
для: AlMag
(21.02.2007 в 21:17)
| | AlMag, вот содержание файла settings.php (с комментариями):
<?
$maxlines=10; // количество сообщений на странице (требуется только для comment.php)
$maxlen=35; // длина полей имени, названия города и т. п.
$maxlenMes=1000;// длина сообщения
?>
|
| |
|
|
|
|
|
|
|
для: Finger
(21.02.2007 в 21:57)
| | хмммм... я еще могу понять ошибку при функции header(), но через указанный выше скрипт (echo "<script>location=\"www.domain2.ru\";</script>") - НИКАКИХ ошибок не будет, т.к. это простой вывод а перенаправление сделает сам браузер... | |
|
|
|
|
|
|
|
для: ZuArt
(22.02.2007 в 10:15)
| | Не сделает.
Точнее, сделает, но несколько не туда. | |
|
|
|
|
|
|
|
для: Trianon
(22.02.2007 в 10:19)
| | не понял =)
а куда тогда, если не секрет ;) ? | |
|
|
|
|
|
|
|
для: ZuArt
(22.02.2007 в 10:45)
| | на файл с именем www.domain2, и расширением .ru, лежащий в том же каталоге, что и текущая страница. | |
|
|
|
|
|
|
|
для: Trianon
(22.02.2007 в 11:18)
| | о... точняк... надоть http://www.domain2.ru =) согласен... | |
|
|
|
|
|
|
|
для: Finger
(21.02.2007 в 18:01)
| | Уберите в начале файла
Со всеми пробелами и переносами каретки.
Должно помочь.
И вставьте код переадресации
<?php
header("Location: http://www.site.com/");
?>
|
За пределами тэгов <? и ?> не должно быть ни одного символа до строчки header(''); | |
|
|
|
|
|
|
|
для: NovikovMA
(22.02.2007 в 02:38)
| | Всем огромное спасибо за внимание! Вопрос решён, просто в файле php.ini нужно было поставить значение output_buffering on | |
|
|
|