Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подстановка случайной ссылки
 
 автор: dordoy   (18.05.2008 в 18:47)   письмо автору
 
 

Допустим есть страница с размещенными картинками, ссылки с картинок ведут на внешние сайты.
Нужен скрипт, который через определенное количество кликов посетителя на картинки, подставляет случайную ссылку из файла (null.txt).

Количество кликов должно опрелеляться случайным образом от 2 до 5.

   
 
 автор: cheops   (19.05.2008 в 00:21)   письмо автору
 
   для: dordoy   (18.05.2008 в 18:47)
 

Какова структура файла null.txt?

   
 
 автор: SiM(R)   (19.05.2008 в 02:10)   письмо автору
 
   для: dordoy   (18.05.2008 в 18:47)
 

Предположим, что ссылка сначала ведет на php скрипт, а уже потом пересылает на нужный сайт, тогда. Ссылка будет выглядеть примерно так: http://mysite/count.php?site=адресс сайта.
Код count.php:


<?php
$count
=$_COOKIE['count'] + 1;

setcookie('count'$count);

header ('location: site');
?>

Код на странице со ссылками:

<?
$rand
=rand(2,5);                                  // герерируем случайное число от 2 до 5
if ($rand=$_COOKIE['count'])               // если оно равно тому которое в куках, то
{
    
$file=file('null.txt');                          // открываем файл
    
foreach ($file as $str)                   // считываем ссылки в нем, если каждая расположена с новой строки
    
{
        
$site[]=$str;                            // пишем каждую ссылку в массив
    
}
    
$num_url=rand(0count($site));    //  определяем номер случайной ссылки

    
echo "<a href=\"{$site[$num_url]}\">".$site[$num_url]."</a>"//формируем ссылку
}
?>

   
 
 автор: dordoy   (19.05.2008 в 11:56)   письмо автору
 
   для: SiM(R)   (19.05.2008 в 02:10)
 

Создал файл count.php
В файле null.txt с новой строки прописал несколько ссылок

Вставил код в страницу с картинками

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Случайная ссылка</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<? 
$rand
=rand(2,5);                                  // герерируем случайное число от 2 до 5 
if ($rand=$_COOKIE['count'])               // если оно равно тому которое в куках, то 

    
$file=file('null.txt');                          // открываем файл 
    
foreach ($file as $str)                   // считываем ссылки в нем, если каждая расположена с новой строки 
    

        
$site[]=$str;                            // пишем каждую ссылку в массив 
    

    
$num_url=rand(1count($site));    //  определяем номер случайной ссылки 
  

?> 
<table border="0" cellpadding="5" cellspacing="0">
  <tr>
    <td><a href="http://mysite/count.php?site=www.avto.ru" target="_blank"><img src="/pics/1.jpg" border=0></a></td>
    <td><a href="http://mysite/count.php?site=www.avto1.ru" target="_blank"><img src="/pics/2.jpg" border=0></a></td>
    <td><a href="http://mysite/count.php?site=www.avto2.ru" target="_blank"><img src="/pics/3.jpg" border=0></a></td>
    <td><a href="http://mysite/count.php?site=www.avto3.ru" target="_blank"><img src="/pics/4.jpg" border=0></a></td>
    <td><a href="http://mysite/count.php?site=www.avto4.ru" target="_blank"><img src="/pics/5.jpg" border=0></a></td>
  </tr>
</table>

</body>
</html>


Не работает

   
 
 автор: KPETuH   (19.05.2008 в 12:02)   письмо автору
 
   для: dordoy   (19.05.2008 в 11:56)
 

нигде не вижу
<?
echo "<a href=\"{$site[$num_url]}\">".$site[$num_url]."</a>"

   
 
 автор: dordoy   (19.05.2008 в 12:12)   письмо автору
 
   для: KPETuH   (19.05.2008 в 12:02)
 

>нигде не вижу
>
<?
>echo "<a href=\"{$site[$num_url]}\">".$site[$num_url]."</a>"



куда вставить?

   
 
 автор: KPETuH   (19.05.2008 в 12:22)   письмо автору
 
   для: dordoy   (19.05.2008 в 12:12)
 

в то место где хотите увидеть случайную ссылку...

   
 
 автор: SiM(R)   (19.05.2008 в 17:16)   письмо автору
 
   для: KPETuH   (19.05.2008 в 12:22)
 

Сорри слегка неправельно определил рэндом

<?
if ($_COOKIE['rand']>'5'setcookie('count''0'); // если нажали больше 5 сылок, то возвращаем в ноль
if ($_COOKIE['rand']=='0')
{
    
$rand=rand(2,5);                                  // герерируем случайное число от 2 до 5
    
setcookie('rand'$rand);                        // создаем куки, которые помнят сколько надо посетить ссылок до появления новой
    
$_COOKIE['rand']=$rand;
}

if (
$_COOKIE['rand']==$_COOKIE['count'])               // если оно равно тому которое в куках, то
{
    
$file=file('null.txt');                          // открываем файл
    
foreach ($file as $str)                   // считываем ссылки в нем, если каждая расположена с новой строки
    
{
        
$site[]=$str;                            // пишем каждую ссылку в массив
    
}
    
$num_url=rand(1count($site))-1;    //  определяем номер случайной ссылки
    
setcookie('count''0');
    
setcookie('rand''0');
    echo 
"<a href=\"{$site[$num_url]}\">".$site[$num_url]."</a>";
}

?>


ps Данный скрипт будет работать, если будет перезагружаться страница, а у Вас все сслылки открывают новые окна, то есть эта страница обновляться не будет и соответственно не будет просчитывать скрипт. Для проверки на машине клиента необходимо писать скрипт на Java


<?php
$count
=$_COOKIE['count'] + 1;

setcookie('count'$count);

header ("location: {$site}");
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования