Vini

Statistika

Pridružen/a:
01 sep 2006, 00:34
Zadnjič aktiven:
20 avg 2026, 12:47
Prispevki:
6652 | Vsi prispevki
Teme:
226 | Vse teme
5234
611
56

Podpis

#4

Da se enemu userju prikazujejo po vrsti ali na splosno?



Za prvo bi lahko uporabil session, za drugo bi pa moral v kaksen fajl zapisovat trenutno vrednost counterja. Tko na brzino iz glave...



za prvo varjanto:


session_start();
if (!isset($_SESSION['adcounter'])) $_SESSION['adcounter'] = 0;
$pasice = explode("\n", file_get_contents('pasice.txt'));
echo $pasice[($_SESSION['adcounter']++)%sizeof($pasice)];

nism sprobal, ampak mislim, da bi moralo delat... ce ti je kaksna druga skripta prej (recimo kaksen CMS ali kaj podobnega) startala session, ne potrebujes prve vrstice...



aha, problem bo za une, ki nimajo vklopljenih cookiejev, tem bo kazalo skos prvo reklamo... to bi resil na tak nacin, da bi inicializiral $_SESSION['adcounter'] na random key od $pasice, takole:


session_start();
$pasice = explode("\n", file_get_contents('pasice.txt'));
if (!isset($_SESSION['adcounter'])) $_SESSION['adcounter'] = array_rand($pasice);
echo $pasice[($_SESSION['adcounter']++)%sizeof($pasice)];

tistim brez cookiejev bi se prikazovali nakljucni oglasi, tistim s cookieji pa bi se najprej prikazal nakljucni oglas, potem pa po vrsti...



ce sem se kaj zatipkal, mi ne zameri, nism preveril primerov, to je tko iz glave...


všeč(0) ni všeč(0) spam(0)
#2

od PHP 4.2.0 ne rabis vec seedat random generatorja, ker se seeda samodejno, torej ti odpade vrstica


srand((double)microtime()*1000000);

zadnji dve vrstici lahko nadomestis z eno takole:


echo $pasice[array_rand($pasice)];

od 4.3.0 verzije PHPja pa lahko celo tvoje crevo napises v dveh vrsticah :)


$pasice = explode("\n", file_get_contents('pasice.txt'));
echo $pasice[array_rand($pasice)];

vsekakor pa pozdravljam tale vajin poskus zdruzevanja slovenskih webmastrov :)


všeč(0) ni všeč(0) spam(0)