ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

Помогите с php скриптом.
  #1  
Старый 10.11.2009, 17:25
Аватар для tshift
tshift
Участник форума
Регистрация: 27.04.2009
Сообщений: 120
Провел на форуме:
496480

Репутация: 27
По умолчанию Помогите с php скриптом.

Нужен скрипт на пхп,который работает так:
1)Передается параметр типа site.ru/script.php?adr=antichat.ru
2)Через N идет редирект на сайт antichat.ru
Заранее благодарю,+ гарантирую!
 

  #2  
Старый 10.11.2009, 17:31
Аватар для L I G A
L I G A
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме:
4532332

Репутация: 1196


Отправить сообщение для L I G A с помощью ICQ
По умолчанию

самый примитивный вариант (до вывода):
PHP код:
if($_GET['adr']){
echo 
header('Location: ' $_GET['adr']) ;
exit();

если N - это время,то sleep(сек); перед редиректом.
 

  #3  
Старый 10.11.2009, 23:45
Аватар для (Dm)
(Dm)
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме:
2375131

Репутация: 1695
По умолчанию

Цитата:
Сообщение от L I G A  
самый примитивный вариант (до вывода):
PHP код:
if($_GET['adr']){
echo 
header('Location: ' $_GET['adr']) ;
exit();

если N - это время,то sleep(сек); перед редиректом.
В твоем коде как бы раскрытие пути, при передачи новой строки в параметре _GET['adr'], имеем раскрытие пути. И зачем там echo !?

пример:
Цитата:
http://site.ru/script.php?adr=xe%0Ak%0A

получим:

Цитата:
Warning: Header may not contain more than a single header, new line detected. in /path/script.php
И вообще хорошо бы использовать функцию empty()
PHP код:
 if (!empty($_GET['adr'])) 
Более правильный вариант:
PHP код:
<?php
if (!empty($_GET['adr']) && !@preg_match('/[\r\n]/'$_GET['adr'])) {
    echo 
'<h1>перенаправление</h1>';
    
sleep(5);
    
header('Location: http://'.$_GET['adr']);
}
exit;
?>
__________________
Cервер cs 1.6
cs.antichat.net:27015

Последний раз редактировалось (Dm); 11.11.2009 в 00:57..
 

  #4  
Старый 11.11.2009, 00:05
Аватар для PaCo
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме:
1754802

Репутация: 380
По умолчанию

/[^a-z\.]/i - как я понимаю в названиях сайтов цифр и тире быть не может? Ну а если там будет еще и не морду сайта, а на какую то его страницу с GET параметрами - index.php?fu=sdgfhg
 

  #5  
Старый 11.11.2009, 00:12
Аватар для (Dm)
(Dm)
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме:
2375131

Репутация: 1695
По умолчанию

PaCo правильно говоришь, исправил...
__________________
Cервер cs 1.6
cs.antichat.net:27015

Последний раз редактировалось (Dm); 11.11.2009 в 00:20..
 

  #6  
Старый 11.11.2009, 00:32
Аватар для mailbrush
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

(Dm), и твой вариант не оптимален - зачем скрипту простаивать 5 секунд? Пользователь подумает, что скрипт завис... Кстати, ты используешь регулярные выражения, а они - очень медленные. Вот более-менее оптимальный вариант:
PHP код:
<?php

if (isset($_GET['addr']))
{
    
$url 'http://' htmlspecialchars($_GET['addr']);
    
$n 5;
    if (
parse_url($urlPHP_URL_HOST))
    {
        echo 
'В течении '$n .' секунд вы будете перенаправлены на страницу ' $url '...
<script>function redirect() 
{
  document.location = "' 
$url '";
}
setTimeout(redirect, ' 
. ($n 1000) . ')
</script>'
;
    } else
    {
        echo 
'Неправильная ссылка!';
    }
}

?>
 

  #7  
Старый 11.11.2009, 00:35
Аватар для (Dm)
(Dm)
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме:
2375131

Репутация: 1695
По умолчанию

Твой вариант как альтернатива. а что если javascript отключен !?
По поводу регулярок... я их использую и буду использовать...
По поводу скорости выполнения, если такой умный ответь на вопрос, насколько быстро выполняются функции
Цитата:
htmlspecialchars
parse_url
??? быстрее ли они одного простого регулярного выражения?
__________________
Cервер cs 1.6
cs.antichat.net:27015

Последний раз редактировалось (Dm); 11.11.2009 в 00:52..
 

  #8  
Старый 11.11.2009, 00:36
Аватар для [QwyZ]
[QwyZ]
Banned
Регистрация: 07.07.2009
Сообщений: 109
Провел на форуме:
766927

Репутация: 67
По умолчанию

<?php
if (isset($_GET['adr'])){
header("Location: $_GET['adr']");
echo("<script>location.href=\"".htmlspecialchars($ _GET['adr'])."\"</script>"); //tak na vsyakii sluchai esli error v php
}
?>
 

  #9  
Старый 11.11.2009, 00:42
Аватар для Deathdreams
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме:
2603363

Репутация: 278
Отправить сообщение для Deathdreams с помощью ICQ
По умолчанию

[QwyZ]
такой бред написал, мне аж страшно.

Тогда уже так:
PHP код:
<?php
if (isset($_GET['adr'])){
@
header("Location: $_GET['adr']") or die("<script>location.href=\"".htmlspecialchars($_GET['adr'])."\"</script>"); 


}
?>
 

  #10  
Старый 11.11.2009, 01:01
Аватар для mailbrush
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Цитата:
Сообщение от (Dm)  
По поводу скорости выполнения, если такой умный ответь на вопрос, насколько быстро выполняются функции

??? быстрее ли они одного простого регулярного выражения?
Так, стоп, а обзывать меня зачем? Я что-то сказал плохое в твою сторону? Я всего лишь критиковал код. А насчет скорости - сейчас измерю, чей код быстрее выполнится.
 
Закрытая тема



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ