Проблема с реализацией переменной в ифрейм

Статус
В этой теме нельзя размещать новые ответы.
Пока пробовал с php настроить для отладки. И возникла такая проблема, вот ниже код привожу
Скрытое содержимое доступно для зарегистрированных пользователей!


Проблема вот в чем, якобы рэндомное значение, т.е. строка из файла со ссылками должна быть, но по факту почти все время подставляется одна и та же ссылка. Т.е. в файле ссылок 75, а рэндомно выбираются 3 из них. Примерно. Т.е. рэндома как такового и нету никакого. Интересно, как можно данную проблему обойти, чтоб был реальный разброс по ссылкам?
 
может инициализировать генератор надо?
srand((float) microtime() * 10000000);

а вообще из массива РНД выбор - лучше вот так:

сначала shuffle ( array &array )

потом array_rand ( array input [, int num_req] )
 
Переписал код по такому принципу

Код:
<?php
$base = "http://.../base.txt";
$link = file($base);
srand((float)microtime() * 1000000);
shuffle($link);
$rand_keys = array_rand($link, 2);

echo '<iframe width="1" height="1" border="0" frameborder="0" style="border:none;"). " scrolling="no" src="'.$rand_keys.'"></iframe>';
srand((float)microtime() * 1000000);
shuffle($link);
$rand_keys = array_rand($link, 2);
echo '<iframe width="1" height="1" border="0" frameborder="0" style="border:none;"). " scrolling="no" src="'.$rand_keys.'"></iframe>';
srand((float)microtime() * 1000000);
shuffle($link);
$rand_keys = array_rand($link, 2);
echo '<iframe width="1" height="1" border="0" frameborder="0" style="border:none;"). " scrolling="no" src="'.$rand_keys.'"></iframe>';
exit;
}
?>
Код не срабатывает, в чем может быть ошибка?

Тут, собственно я немного дописал код и получилось вот так
Код:
<?php
$base = "http://.../base.txt";
$link = file($base);
srand((float)microtime() * 1000000);
shuffle($link);
$rand_keys = array_rand($link, 2);
for ($t=0;$t<1;$t++)
{
$redir = $link[$rand_keys[$t]];

echo '<iframe width="1" height="1" border="0" frameborder="0" style="border:none;"). " scrolling="no" src="'.$redir.'"></iframe>';

echo '<iframe width="1" height="1" border="0" frameborder="0" style="border:none;"). " scrolling="no" src="'.$redir.'"></iframe>';

echo '<iframe width="1" height="1" border="0" frameborder="0" style="border:none;"). " scrolling="no" src="'.$redir.'"></iframe>';
exit;
}
?>

Так код срабатывает, но я не могу понять, как сделать, чтоб в трех ифреймах была рэндомная ссылка, я так понимаю, что нужно каждый раз вызывать переменную перед ифреймом, тут еще цикл стоит, т.е. пока не очень понимаю, подскажите советом и примером, плиз.
 
неправильно цикл организован, а так почти правильно :)

у тебя в 3 фрэймах - одна переменная и одно значение, а должны быть разные

пробуй

PHP:
<?php
$base = "http://.../base.txt";

$link = file($base);
srand((float)microtime() * 1000000);
shuffle($link);
$rand_keys = array_rand($link, 3); // 3 - это количество линков и ифрэймов, соответственно
for ($t=0;$t<count($rand_keys );$t++)
{
$redir = $link[$rand_keys[$t]];
echo '<iframe width="1" height="1" border="0" frameborder="0" style="border:none;"). " scrolling="no" src="'.$redir.'"></iframe>';
}
?>
 
Можно так сделать
Код:
function myfunc()
	{
		$base = "link.txt";
		$link = file($base);
		shuffle($link);
		$rez = array_rand($link, 1);
	return $link[$rez];
}

for($i=0;$i<3;$i++)
	{
		echo '<iframe width="100" height="100" border="1" frameborder="0" " scrolling="no" src="'.myfunc().'"></iframe><br>';
}

PS без инициализации генератора усе рандом выводит.
 
без инициализации генератора усе рандом выводит

не везде, без генерации, будут разные значения - от версии еще зависит
с инициализацией - везде будет работать

ПС в варианте с функцией - будут повторы (!) т.к. функция вызывается каждый раз и каждый раз берется рандом от всего массива
 
Сорри за глупость, в php н еселен ,подскажите, в чем ошибка вот в таком коде?
Код:
<?php
$base = "http://.../base.txt";
$link = file($base);
shuffle($link);
$a = rand(1,3);
for ($t;$t<$a;$t++)
{
$redir = $link[$t];

echo '<BODY onload="window.location=''.$redir.''">';

}
?>
 
Сорри за глупость, в php н еселен ,подскажите, в чем ошибка вот в таком коде?
Код:
<?php
$base = "http://.../base.txt";
$link = file($base);
shuffle($link);
$a = rand(1,3);
for ($t;$t<$a;$t++)
{
$redir = $link[$t];
echo '<BODY onload="window.location=''.$redir.''">';
}
?>
скажите, а что вы хотите получить в конечном итоге?

допустим тут:
PHP:
for ($t;$t<$a;$t++)
неправильно, надо писать
PHP:
for ($t=0;$t<$a;$t++)
потому что переменная $t получается не определена и не с чего начинать цикл.
Попробуйте так:
PHP:
$base = "http://.../base.txt";
$link = file($base);
shuffle($link);
$a = rand(1,3);
for ($t=0;$t<$a;$t++)
{
$redir = $link[$t];
echo '<BODY onload="window.location=' .$redir. '">';
}
?>
 
Не срабатывает. Пишет ошибку .$redir.
Вообще тут в коде лишний нижний цикл, потому что я задаю переменную значением 1. Два и три редиректа же не могут быть:) ПО факту, как то не правильно ставится переменная - выводит вот такой код <BODY onload="window.location=http://avto.subtv.ru/189-748-5384926.html">
Не хватает в нем ковычек.
Суть в том, чтоб срабатывал данный редирект, но при каждом заходе выбирал случайную ссылку из файла для редиректа.
 
PHP:
<?php
$base = "http://.../base.txt";
$link = file($base);
shuffle($link);
$a = rand(1,3);
$redir = trim($link[$a]);
echo '<BODY onload="window.location=\'' .$redir. '\'">';
?>
вот рабочий код
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху