[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: третий случайный переход
Naposaram
Всем привет! Есть такая проблемка хочу сделать вот так: есть ссылка по ней переходят пользователи (любые) и каждый третий переход ведет на случайный URL.
С моими скудными познаниями в php написал вот так:
PHP
<?php
$f
=fopen("stat.dat","a+");
flock($f,LOCK_EX);
#36;count=fread($f,100);
@$count++;
ftruncate($f,0);
{
if (
$f==3
header("location: http://xxx.xx");
$f=0;
fwrite($f,count);
else      
//говорит вот здесь ошибка
fwrite($f,$count);
}
fflush($f);
flock($f,LOCK_UN);
fclose($f);


естественно пишет ошибку. подскажите что не правильно и как реализовать?



Спустя 17 минут, 6 секунд (1.02.2009 - 11:44) Adamant написал(а):
Ужос! ohmy.gif Вы сами поняли чего написали?
user posted image

Спустя 4 минуты, 25 секунд (1.02.2009 - 11:48) Naposaram написал(а):
Цитата (Adamant @ 1.02.2009 - 08:44)
Ужос! ohmy.gif  Вы сами поняли чего написали?
user posted image

нет biggrin.gif я же говорю я чайник biggrin.gif я в синтаксисие пхп не очень шарю

Спустя 17 минут, 32 секунды (1.02.2009 - 12:06) Adamant написал(а):
PHP
<?php
$f 
fopen("stat.dat""a+");

flock($fLOCK_EX);
$count fread($f100);
ftruncate($f0);
fputs($f, ++$count);
fflush ($f);
flock($fLOCK_UN);
fclose ($f);

if (!(
$count 3)) {
    
header ("location: http://xxx.xx");
    exit;
}
?>


Спустя 2 минуты, 58 секунд (1.02.2009 - 12:09) Naposaram написал(а):
Цитата (Adamant @ 1.02.2009 - 09:06)
PHP
<?php
$f 
= fopen("stat.dat", "a+");

flock($f, LOCK_EX);
$count = fread($f, 100);
ftruncate($f, 0);
fputs($f, ++$count);
fflush ($f);
flock($f, LOCK_UN);
fclose ($f);

if (!($count % 3)) {
    header ("location: http://xxx.xx");
    exit;
}

и это будет работать? huh.gif
а разве не надо счетчик обнулить, если $f=3? huh.gif

Спустя 6 минут, 31 секунда (1.02.2009 - 12:15) Adamant написал(а):
Try it yourself.

Спустя 6 минут, 26 секунд (1.02.2009 - 12:22) Naposaram написал(а):
Цитата (Adamant @ 1.02.2009 - 09:15)
Try it yourself.

I will well try. Thanks for the help

Спустя 52 секунды (1.02.2009 - 12:23) Adamant написал(а):
Арифметические операции

__________________________________________________________________
Пример | Название | Результат
__________________________________________________________________

$a % $b | Деление по модулю | Целочисленный остаток от деления $a на $b.

Спустя 7 минут, 49 секунд (1.02.2009 - 12:30) Naposaram написал(а):
Цитата (Adamant @ 1.02.2009 - 09:23)
Арифметические операции

__________________________________________________________________
Пример | Название | Результат
__________________________________________________________________

$a % $b | Деление по модулю | Целочисленный остаток от деления $a на $b.

в смысле? если делится на 3 то переходим а если нет то прибавляем 1 в счетчик?

Спустя 7 минут, 58 секунд (1.02.2009 - 12:38) Adamant написал(а):
PHP
<?php
$f 
= fopen("stat.dat", "a+");

flock($f, LOCK_EX);
// "узнаем" сколько всего переходов было сделано
$count = fread($f, 100);
ftruncate($f, 0);
// увеличиваем общее кол-во переходов на 1 и  записываем в файл
fputs($f, ++$count);
fflush ($f);
flock($f, LOCK_UN);
fclose ($f);

// проверяем если целочисленный остаток от деления на 3 равен нулю 
// т.е. число делится без остатка значит это очередной ТРЕТИЙ переход
// перекидываем юзера и делаем обязательный эксит, чтобы скрипт не выполнялся ниже по файлу(если там есть еще какой нибудь код)
if (!($count % 3)) {
    header ("location: http://xxx.xx");
    exit;
}

Спустя 13 минут, 1 секунда (1.02.2009 - 12:51) Naposaram написал(а):
а вот теперь ясно huh.gif спсибо большое biggrin.gif

Спустя 1 час, 18 минут, 12 секунд (1.02.2009 - 14:10) Naposaram написал(а):
чет вот такую ошибу при третьем переходе выдает: Warning: Cannot modify header information - headers already sent by (output started at /home/sabla204/domains/sablazn.ru/public_html/1/go.php:1) in /home/sabla204/domains/sablazn.ru/public_html/1/go.php on line 18


Спустя 3 часа, 18 минут, 50 секунд (1.02.2009 - 17:29) Adamant написал(а):
Naposaram в вашем скрипте не должно быть ничего, что может перед header() выводится на печать - никаких echo и print-ов и проследите что перед <?php нет никаких пробелов или html-кода.

http://www.phpfaq.ru/headers

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.