HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

Помогите с php скриптом.
  #1  
Старый 10.11.2009, 17:25
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
Постоянный
Регистрация: 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)
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
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме:
1754802

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

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

  #5  
Старый 11.11.2009, 00:12
(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
Познавший АНТИЧАТ
Регистрация: 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)
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]
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
Постоянный
Регистрация: 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
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


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

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

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PSalm69 Избранное 273 13.02.2016 01:24
Books PHP FRAGNATIC PHP 186 21.02.2010 02:41



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


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




ANTICHAT.XYZ