1. PHP / Говнокод #3303

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    // если IP в файле есть, выводим сообщение с уведомлением
    if ($file[$i]===$ip."\r\n"){
    	echo 'Вы уже голосовали. Но спасибо, что попытались.<br>';
    	break;
    	// если IP нет, тогда считаем рейтинг и записываем IP в файл
    } elseif ($file[$i]!=$ip."\r\n") {
    	// ********* СЧИТАЕМ РЕЙТИНГ *********
    	// открываем файл с рейтингом
    	$file_open=fopen("rate.txt", "a+");
    	$file_read=fgets($file_open);
    	// разбиваем данные по спецсимволу ':'
    	$dan=explode(":",$file_read);
    	// первое значение - сумма всех оценок, второе - кол-во проголосовавших юзеров
    	// добавляем к сумме оценок - полученную новую оценку
    	// добавляем к сумме юзеров - 1 человека
    	if ($_POST['rating_val']>=1 && $_POST['rating_val']<=5){
    	$r=$_POST['rating_val'];
    	$ocenka=$dan[0]+$r;
    	$users=$dan[1]+1;
    	$write=$ocenka.':'.$users;
    	ftruncate ($file_open, 0);
    	fwrite($file_open, $write);
    	}
    	// рейтинг считаем по формуле: (сумма оценок + текущая оценка) / (кол-во юзеров + 1 юзер)
    	$rating=substr(($dan[0]+$r) / ($dan[1]+1),0,3);
    	echo 'Ваш рейтинг: '.$rating.'<br>
    	Всего голосов: '.$users.'<br>';
    	// закрываем файл с рейтингом
    	fclose($file_open);
    	// ************************************
    	fwrite($open_ip, $ip."\r\n");
    	echo 'Ваш голос учтен. Спасибо.<br>'; 
    	break;
    } else {
    	echo 'Странно. Вопреки всякой логике, произошла ошибка, которая появиться не могла.<br>
    	Пожалуйста, <a href=mail.php>напишите нам письмо</a> и мы обязательно разберемся.';
    }

    Проверка в скриптике друга. Смотрим самый внешний IF, порадовала ветка else :)

    Запостил: arsen, 24 Мая 2010

    Комментарии (13) RSS

    • предлагаю написать письмо, чтобы товарищ разобрался
      Ответить
    • Хоть бы файлы блокировали. Десять одновременных голосований и писец.
      Ответить
    • а то что это не в бд, а текстфайл? в общ очередной г-хомяк
      Ответить
    • по-моему, это просто стеб какой-то (насчет ветки else). Ну понятно же, что не выполнится никогда условие.
      имхо, стеб.
      Ответить
      • если айпи берётся из getenv('REMOTE_ADDR'), то таки не никогда.
        Ответить
        • понятное дело)
          задумался, простите))
          Ответить
      • ($x === $y) не эквивалентно ! ($x != $y)
        ("1" === 1) = FALSE
        ("1" == 1) = TRUE
        ("1" != 1) = FALSE
        Ответить
        • так в данном коде, оба значения полюбому будут строки.
          Ответить
    • Странно. Вопреки всякой логике, произошла ошибка, которая появиться не могла. Пожалуйста, найдите где у нас тут ошибка, и пришлите нам исправленную версию
      Ответить
    • Странно, но воперки всякой логике я работаю не в макдональдсе, а программистом, которым не должен был работать впринципе
      Ответить
    • А Базы данных религия пользовать не позволяет?!
      Ответить

    Добавить комментарий