Всем привет. Есть работа на 20 минут. Нужен скрипт редиректа на ПХП. Вкратце что должен делать скрипт: скрипт index.php лежит в корне домена. Из разных источников на домен приходят пользователи. Нужно этих пользователей расформировать по сайту (разным страницам) в зависимости откуда они пришли. (по реферу) Т.е. у меня есть допустим 50 страниц: rabota.php ucheba.php flash.php и так далее. так вот если пользователь идет с какого-нибудь сайта где есть в рефере rabota то его перенаправлять на страницу mysite.com/rabota.php Для наглядности пользователь номер раз идет со странице site1.com/topic/rabota, мы ему должны отдать mysite.com/rabota.php пользователь номер два идет с сайта site2.com/category.php?q=flash мы ему показываем mysite.com/flash.php Если же пользователь идет со странице где для которой у нас нету совпадений то показываем ему mysite.com/forall.php Вот впринципе и все. Да и еще нужно ставить куку мою пользователю перед редиректом. Кто может сделать побыстрому пишите свои координаты (желательно скайп) можно так же в личку. Всем спасибо.
PHP: <?php $pages = array('rabota','flash'); $my_addr = $_SERVER['HTTP_HOST']; $page = ''; $default_page = 'forall.php'; $cookie_name = 'my_cookie'; $cookie_value = 'my_cookie_value'; $cookie_lifetime = 3600*30; $protocol = ($_SERVER['SERVER_PORT'] == 80)?'http':'https'; $referer= (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']))? trim($_SERVER['HTTP_REFERER']): ''; if (!empty($referer) && strpos($referer, $my_addr) === FALSE) { foreach ($pages as $v) { if (strpos($referer, $v) !== FALSE) { $page = $v; break; } } } $url = empty($page)?$default_page:$page.'.php'; $url = $protocol.'://'.$my_addr.'/'.$url; setcookie($cookie_name, $cookie_value, time()+$cookie_lifetime); header('Location: '.$url); echo 'Вы сейчас будете перенаправлены на страницу <a href="'.$url.'">'.$url.'</a>.<br /> Если этого не произошло, то перейдите по указанной ссылке.'; die; ?>
немного не то , по поводу куков я не то имел ввиду. нужно заинклюдить мой скрипт на странице index.php (что то типо <?php virtual('in.php'?> ) или же просто передать рефера дальше (что бы на конечной странице было видно откуда пришел пользователь) вот нашел какой то вариант , но что то блин в нем не работает: PHP: <?php function redirect($referrer) { $url='http://mysite.com/forall.php'; if(stripos($referrer,'rabota')!==FALSE) $url='http://mysite.com/rabota/'; else if(stripos($referrer,'flash')!==FALSE) $url='http://mysite.com/flash/'; header ('Location: '.$url); exit; } ?>
Luge ты лишил меня последнего гроша. негатив тебе =) PHP: <?php $cnf=array( "site_uri"=>"http://mysite.com", "default_uri"=>"forall.php", "priority"=>"begin", // end,begin,random "cookie_request"=>array("Name","Value",time()+3600*24*28*12*101,'/'), ); $files=array( "rabota"=>"rabota.php", "flash"=>"flash.php", ); call_user_func_array("setcookie",$cnf['cookie_request']); if(!empty($_SERVER['HTTP_REFERER'])){ preg_match_all("#\w+#i",$_SERVER['HTTP_REFERER'],$match); if(!empty($match[0])){ $index=array_uintersect(array_keys($files),array_unique($match[0]),"strcasecmp"); if(!empty($index)){ if(count($index)>1){ switch($cnf['priority']){ case "random": $index=$index[array_rand($index)]; break; case "begin": $index=array_shift($index); break; case "end": $index=array_pop($index); break; } }else $index=current($index); header("location: ".$cnf['site_uri']."/".$files[$index]); exit; } } } header("location: ".$cnf['site_uri']."/".$cnf['default_uri']); ?>
я так понимаю этот код нужно вставить в index.php ? странно но ничего не работает , показывает пустую страницу. в чем проблема может быть?
странный народ =) того кто просит помочь разводят на деньги.. А тому кто готов платить так все дают ээх, русская душа =)
ShamahN ты ж не путай «as is» и «под ключ». Вот мне плевать почему рабочий код не подходит. А там где помочь просят ещё и думать придётся