Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Подскажите простой скриптик
цитата
15/03/08 в 11:19
 Newestage
нужен простенький скрипт
на сраничке урлы вида
path/url/?id01
path/url/?id02
...
path/url/?id10

а в файлике прописываю базу типа

id1 = http:/realurl.com/bla/bla1
id2 = http:/realurl.com/bla/bla2

что то типа этого, интересны варианты на php и cgi

с меня +3
цитата
15/03/08 в 12:32
 -=Faraon=-
Код:
<?
$url=$_SERVER['QUERY_STRING'];
$file=file('url.txt');
array_walk($file,create_function('&$v,$k','global $url;$e=explode("=",trim($v));if(eregi("^".trim($e[0])."$",$url)){header("location:".trim($e[1])."");};'));
?>
цитата
15/03/08 в 15:08
 Newestage
Спасибо, но как это все заюзать пхп для меня темный лес- создал файл c этим кода допустим link.php и базу вопрос в базе как прописать, икак вызвать линк со странички
цитата
15/03/08 в 15:58
 taj
Newestage писал:
Спасибо, но как это все заюзать пхп для меня темный лес
Создать в блокноте файл, например index.php
Вставить этот код и залить его в папку url
В большинстве случаев index.php автоматически будет подхватываться и всё должно заработать.
Ну и не забудь создать файл со списком урлов (url.txt) в той же директории.

З.Ы. Я бы реализовал по другому. Без регулярок и файла, например такой код:
Код:

<?php
$sponsor=array(
1=>'http://12313.com',
2=>'http://test.com',
3=>'http://google.com/');
$id=intval($id);
if (array_key_exists($id,$sponsor))
   header("Location: ".$sponsor[$id]);   
else header("Location: test1.ru");
?>

Просто создать файл, например, go.php и вставить этот код.
Урлы будут вида: site.com/путь к файлу/go.php?id=XXX
где XXX код (номер) твоей ссылки.
цитата
15/03/08 в 16:01
 Newestage
-=Faraon=- писал:
Код:
<?
$url=$_SERVER['QUERY_STRING'];
$file=file('url.txt');
array_walk($file,create_function('&$v,$k','global $url;$e=explode("=",trim($v));if(eregi("^".trim($e[0])."$",$url)){header("location:".trim($e[1])."");};'));
?>


вообщем вызывал его так link.php?id1
но если линк в базе содержит ? то после него все режется, в т.ч. и рефкод,

ща попробую второй вариант
цитата
15/03/08 в 16:10
 Newestage
taj писал:
Создать в блокноте файл, например index.php
Вставить этот код и залить его в папку url
В большинстве случаев index.php автоматически будет подхватываться и всё должно заработать.
Ну и не забудь создать файл со списком урлов (url.txt) в той же директории.

З.Ы. Я бы реализовал по другому. Без регулярок и файла, например такой код:
Код:

<?php
$sponsor=array(
1=>'http://12313.com',
2=>'http://test.com',
3=>'http://google.com/');
$id=intval($id);
if (array_key_exists($id,$sponsor))
   header("Location: ".$sponsor[$id]);   
else header("Location: test1.ru");
?>

Просто создать файл, например, go.php и вставить этот код.
Урлы будут вида: site.com/путь к файлу/go.php?id=XXX
где XXX код (номер) твоей ссылки.



этот работает вараиант. Только два вопроса вместо test1.ru просто свой домен вбить? или что там ? И второй предполагается порядка 150 ссылок не будет ли он секунды 3-4 думать прежде чем начнет открывать линк? т.е. это скоростной вариант скрипта или может быть быстрее?
цитата
15/03/08 в 16:14
 taj
этот вариант будет точно быстрее первого.
test1.ru - на этот адрес будут все кто перешёл по ссылки которой нету в базе.
цитата
15/03/08 в 16:21
 Newestage


а со сложными линками почему то неработает например

http://www.somedomain.com/catalog/script1.php?adr=http://cash.com/P…I5NTQ6NTo0,0,0,0,3217&prob=10
цитата
15/03/08 в 16:26
 taj
Newestage писал:
а со сложными линками почему то неработает например


если про мой вариант то так нужно:
Код:

<?php
$sponsor=array(
1=>'http://cash.com/PROMO/pics/8115/?nats=MjEzNDI5NTQ6NTo0,0,0,0,3217&prob=10'
);
$id=intval($id);
if (array_key_exists($id,$sponsor))
   header("Location: ".$sponsor[$id]);   
else header("Location: test1.ru");
?>

http://www.somedomain.com/catalog/script1.php?id=1
Причин чтоб не работало не вижу.
Попробуй включить вывод ошибок (добавь в самое начало:
Error_Reporting(E_ALL & ~E_NOTICE);
и скажи что выводит)
цитата
15/03/08 в 16:43
 Newestage
taj писал:
если про мой вариант то так нужно:
Код:

<?php
$sponsor=array(
1=>'http://cash.com/PROMO/pics/8115/?nats=MjEzNDI5NTQ6NTo0,0,0,0,3217&prob=10'
);
$id=intval($id);
if (array_key_exists($id,$sponsor))
   header("Location: ".$sponsor[$id]);   
else header("Location: test1.ru");
?>

http://www.somedomain.com/catalog/script1.php?id=1
Причин чтоб не работало не вижу.
Попробуй включить вывод ошибок (добавь в самое начало:
Error_Reporting(E_ALL & ~E_NOTICE);
и скажи что выводит)


там выше привел пример как раз сложной ссылки т.е. это все ссылка на спонсора через еще один скрипт сюда даже вся длинна не входитhttp://www.somedomain.com/catalog/script1.php?adr=http://cash.com/P…I5NTQ6NTo0,0,0,0,3217&prob=10

ошибок не выводит, я думаю это из за того что в ссылки на спонсора есть script1.php?adr=
цитата
15/03/08 в 16:49
 taj
Только что проверил, всё работает.
Единственный косяк:
$id=intval($id);
заменить на
$id=intval($_GET['id']);
цитата
15/03/08 в 17:14
 Newestage



Точно все работает спасибо потестю на большом массиве


Эта страница в полной версии