ПравилаРегистрацияВход
НАВИГАЦИЯ

Учим PHP

Модераторы: нет
Список форумов » Вэб-разработкаНа страницу  1, 2, 3 ... 84, 85, 86, 87, 88 
АВТОРСООБЩЕНИЕ
батька
Avatar
Имя: Сергей
Репутация: 0
Регистрация: 8.01.2010
Всего сообщений: 40
Откуда: Благовещенка
9 февраля 2011, 14:26
Да, стоят.
Вот текст скрипта обрабатывающего и показывающего результат
<?php
$file = "golos.txt";
$a = file($file);
$i = 1; $fi = Count($a);
$n = 0;
while ($i <= $fi):
$a[$i] = trim(str_replace ("\\n","", $a[$i]));
$n = $n+$a[$i];
$i++;
endwhile;
if ($answer != "") {
echo "<br>Спасибо, Ваше мнение учтено:";
$a[$answer]++; $n++;
$rez = "Результаты голосования!\\n".$a[1].
"\\n".$a[2]."\\n".$a[3]."\\n".$a[4];
$fp = @fopen($file,"w");
if ($fp) { $counter=fputs($fp,$rez); fclose($fp); }
else { echo "Произошла ошибка записи результатов!"; }
} else { echo "<br>Результаты голосования"; }
echo "<br>Круто! - <b>".$a[1]."</b>";
echo "<br>Так себе - <b>".$a[2]."</b>";
echo "<br>Сойдет - <b>".$a[3]."</b>";
echo "<br>Это что-то страшное! - <b>".$a[4]."</b>";
echo "<br><br>Всего проголосовало: ".$n;
?>
Profi
Administrator
Avatar
Репутация: 98
Регистрация: 25.04.2006
Всего сообщений: 7072
Откуда: Уфа РБ
9 февраля 2011, 16:25
батька, блин, и тут ошибки :)
Исправил до рабочего состояния.

<?php
$vote = isset($_POST['vote']) ? true : false;
$answer = isset($_POST['answer']) ? intval($_POST['answer']) : false;
$file = "golos.txt";
$a = file($file);
$i = 1; $fi = Count($a);
$n = 0;
while ($i < $fi) {
$a[$i] = trim(str_replace ("\n","", $a[$i]));
$a[$i] = $a[$i] ? $a[$i] : 0;
$n = $n+$a[$i];
$i++; }
if ($vote && $answer) {
echo "<br>Спасибо, Ваше мнение учтено:";
$a[$answer]++; $n++;
$rez = "Результаты голосования!\n".$a[1].
"\n".$a[2]."\n".$a[3]."\n".$a[4];
$fp = @fopen($file,"w");
if ($fp) { $counter=fputs($fp,$rez); fclose($fp); }
else { echo "Произошла ошибка записи результатов!"; }
} else { echo "<br>Результаты голосования"; }
echo "<br>Круто! - <b>".$a[1]."</b>";
echo "<br>Так себе - <b>".$a[2]."</b>";
echo "<br>Сойдет - <b>".$a[3]."</b>";
echo "<br>Это что-то страшное! - <b>".$a[4]."</b>";
echo "<br><br>Всего проголосовало: ".$n;
?>
Profi
Administrator
Avatar
Репутация: 98
Регистрация: 25.04.2006
Всего сообщений: 7072
Откуда: Уфа РБ
9 февраля 2011, 16:27
Несколько раз подряд вызывать echo - дурной тон, но это к автору :)
Если записать в куку какую нибудь закорючку, то при попытке повторного голосования можно посылать лесом.
батька
Avatar
Имя: Сергей
Репутация: 0
Регистрация: 8.01.2010
Всего сообщений: 40
Откуда: Благовещенка
9 февраля 2011, 16:29
СПАСИБО, очень признателен за помощь - никогда этого не забуду. Теперь буду учить, появлюсь не скоро.
shpien
Avatar
Имя: Руслан
Сейчас нет на сайте
Репутация: 3
Регистрация: 23.12.2008
Всего сообщений: 434
Откуда: Северо-Запад
22 февраля 2011, 17:08
Как сделать чтобы счётчик на скачивание файла не накручивался?
Как здесь сделано, в базу записывается кто скачал файл или в сессию записывается?
Profi
Administrator
Avatar
Репутация: 98
Регистрация: 25.04.2006
Всего сообщений: 7072
Откуда: Уфа РБ
22 февраля 2011, 17:49
shpien, можно повторные ip не засчитывать, можно отметку в куках ставить. Только кому сильно нужно всё равно накрутят, а делать крутые проверки из счётчика скачиваний как то неразумно .hz.
shpien
Avatar
Имя: Руслан
Сейчас нет на сайте
Репутация: 3
Регистрация: 23.12.2008
Всего сообщений: 434
Откуда: Северо-Запад
26 февраля 2011, 22:49
можно в MySQL создать одним запросом, чтобы из последних десяти сообщений выбирал одно?
shpien
Avatar
Имя: Руслан
Сейчас нет на сайте
Репутация: 3
Регистрация: 23.12.2008
Всего сообщений: 434
Откуда: Северо-Запад
27 февраля 2011, 00:01
Точнее, из десяти последних одно случайное
Profi
Administrator
Avatar
Репутация: 98
Регистрация: 25.04.2006
Всего сообщений: 7072
Откуда: Уфа РБ
27 февраля 2011, 13:28
shpien, нельзя.
Но ничто не мешает взять из базы последние 10 сообщений и рандомно вывести одно.
shpien
Avatar
Имя: Руслан
Сейчас нет на сайте
Репутация: 3
Регистрация: 23.12.2008
Всего сообщений: 434
Откуда: Северо-Запад
28 февраля 2011, 15:50
Profi, лишняя нагрузка. Всё же придумал как проще сделать:
<?php $rand=RAND(0,10);
$rs=mysql_query("SELECT * FROM book  ORDER by id DESC LIMIT $rand,1"); 
Список форумов » Вэб-разработкаНа страницу Пред. 1, 2, 3 ... 84, 85, 86, 87, 88 След.
 
стр.  
Страница 85 из 88
Часовой пояс: GMT + 4
Мобильный портал, Profi © 2005-2016
Время генерации страницы: 0.039 сек
Общая загрузка процессора: 4%
SQL-запросов: 4
Rambler's Top100