Перейти к содержимому



Голосовать только 1 раз ???

#41 phpuser

phpuser
    Topic Starter
  • Пользователь
  • 520 сообщений
  • Репутация: 8
0

Отправлено 05 Август 2009 - 14:19

У меня и стоит charset=windows-1251 в настройках DW.
Сейчас проверю.


  • 0
Вникаю в тему создания сайтов...


#42 phpuser

phpuser
    Topic Starter
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 05 Август 2009 - 14:59

Спасибо Евгений заработало без проблем!
Получается что код для работы с куки надо ставить выше всего кода, иначе возникают проблемы?
У меня ещё один вопрос:
if (isset($_COOKIE['opros'])) {
$msg = '<form action="vote_res.php" method="post" name="vv" target="_self">
<p class="pvote">Оцениете заметку:   1<input name="score" type="radio" value="1">   2<input name="score" type="radio" value="2">   3<input name="score" type="radio" value="3">   4<input name="score" type="radio" value="4">   5<input name="score" type="radio" value="5" checked> <input name="submit" type="submit" value="Оценить" class="sub_vote"><input name="id" type="hidden" value="<?php echo "$id"; ?>"></p>
</form>';
}


Так можно сделать? Если нет то как?

  • 0
Вникаю в тему создания сайтов...


#43 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 05 Август 2009 - 15:13

<?php if (isset($_COOKIE['opros'])) { ?>
<form action="vote_res.php" method="post" name="vv" target="_self">
<p class="pvote">Оцениете заметку:
  1<input name="score" type="radio" value="1">
  2<input name="score" type="radio" value="2">
  3<input name="score" type="radio" value="3">
  4<input name="score" type="radio" value="4">
  5<input name="score" type="radio" value="5" checked>
<input name="submit" type="submit" value="Оценить" class="sub_vote">
<input name="id" type="hidden" value="<?php echo "$id"; ?>">
</p>
</form>
<?php } ?>

так думаю будет лучше.

Получается что код для работы с куки надо ставить выше всего кода, иначе возникают проблемы?

несовсем... главное чтобы до setcookie() ничего не выводилось на экран
  • 0

#44 phpuser

phpuser
    Topic Starter
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 05 Август 2009 - 15:33

[quote name='Евгений' date='5.8.2009, 16:13' post='29852']

<?php if (isset($_COOKIE['opros'])) { ?>
<form action="vote_res.php" method="post" name="vv" target="_self">
<p class="pvote">Оцениете заметку:
  1<input name="score" type="radio" value="1">
  2<input name="score" type="radio" value="2">
  3<input name="score" type="radio" value="3">
  4<input name="score" type="radio" value="4">
  5<input name="score" type="radio" value="5" checked>
<input name="submit" type="submit" value="Оценить" class="sub_vote">
<input name="id" type="hidden" value="<?php echo "$id"; ?>">
</p>
</form>
<?php } ?>


Но в данном случае форма голосования выведется в начале страницы?
Мну ж надо что б в нужном мне месте. А с помощь include нельзя вывести в том месте где мне нужно?


  • 0
Вникаю в тему создания сайтов...


#45 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 05 Август 2009 - 15:36

Не выделяйте все свои сообщения жирным шрифтом!

Куку вы будите ставить в файле vote_res.php, вот там то и надо будет сверху страницы ставить setcookie. А сейчас этот код можете хоть в самый конец файла закинуть.


  • 0

#46 phpuser

phpuser
    Topic Starter
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 05 Август 2009 - 15:44

Дык получается что когда я буду ставить куку в начале файла vote_res.php я потом его буду инклудить в середину документа. У меня с этим проблем не возникнет?


  • 0
Вникаю в тему создания сайтов...


#47 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 05 Август 2009 - 15:47

а может пора бы уже начать делать и проверить возникнут ошибки или нет? :) если ошибки возникнут обращайтесь.

vote_res.php - это ведь скрипт обработчика? т.е. заносит в базу новый голос? ну дак вот, там куда-нибудь и вставьте setcookie а потом echo "Ваш голос засчитан!"


  • 0

#48 phpuser

phpuser
    Topic Starter
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 05 Август 2009 - 16:13

Попробовал работает но коряво =(
Уже надоело с куками возится но всё таки хочется доделать!

Работает в принципе правильно только 3 небольших проблемки:
- Предупреждение как выводилось так и выводится.
- Оценку можно ставить только 1й статье (чего я и боялся) - куку ставил так: setcookie ("opros".$id, "yes", time()+43200, "/"); не знаю почему так получилось.
- Сообщение которое должно выводится 1 раз выводится 2 раза: Выводим результат голосования Выводим результат голосования.

Ну а теперь и сам собсно код:

<?php if (isset($_COOKIE['opros'])) {
echo "Выводим результат голосования";
}
else {
?>
<form action="vote_res.php" method="post" name="vv" target="_self">
<p class="pvote">Оцениете заметку:   1<input name="score" type="radio" value="1">   2<input name="score" type="radio" value="2">   3<input name="score" type="radio" value="3">   4<input name="score" type="radio" value="4">   5<input name="score" type="radio" value="5" checked> <input name="submit" type="submit" value="Оценить" class="sub_vote"><input name="id" type="hidden" value="<?php echo "$id"; ?>"></p>
</form>
<?php } ?>


А в начале файла vote_res.php я ставил куку setcookie ("opros".$id, "yes", time()+43200, "/");
Причину данных ошибок найти не смог, так что вся надежда на вас форумчане.


  • 0
Вникаю в тему создания сайтов...


#49 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 05 Август 2009 - 16:24

весь код напишите, 2х файлов
  • 0

#50 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 05 Август 2009 - 16:35

view_post.php
<?php if (isset($_COOKIE['opros'])) {
echo "Выводим результат голосования";
}
else {
setcookie("opros", "yes", time()+43200, "/");
echo "выводим варианты ответа, чтобы юзер проголосовал, т.е. выводим все то что В ФОРМЕ";
}
?>

<?php if (isset($_COOKIE['opros'])) {
echo "Выводим результат голосования";
}
else {
?>
<form action="vote_res.php" method="post" name="vv" target="_self">
<p class="pvote">Оцениете заметку:   1<input name="score" type="radio" value="1">   2<input name="score" type="radio" value="2">   3<input name="score" type="radio" value="3">   4<input name="score" type="radio" value="4">   5<input name="score" type="radio" value="5" checked> <input name="submit" type="submit" value="Оценить" class="sub_vote"><input name="id" type="hidden" value="<?php echo "$id"; ?>"></p>
</form>
<?php } ?>


нафига 2 раза одно и тоже писать? тем более я ж говорил что setcookie("opros", "yes", time()+43200, "/"); не должно быть по середине документа хтмл. переделайте эту часть так


 <?php if (isset($_COOKIE['opros'.$id])) { 
echo "Выводим результат голосования";
}
else {
?>
<form action="vote_res.php" method="post" name="vv" target="_self">
<p class="pvote">Оцениете заметку:   1<input name="score" type="radio" value="1">   2<input name="score" type="radio" value="2">   3<input name="score" type="radio" value="3">   4<input name="score" type="radio" value="4">   5<input name="score" type="radio" value="5" checked> <input name="submit" type="submit" value="Оценить" class="sub_vote"><input name="id" type="hidden" value="<?php echo "$id"; ?>"></p>
</form>
<?php } ?>

т.е. удалите верхнюю часть :)

vote_res.php
if ($update)
{
setcookie("opros".$id, "yes", time()+43200, "/");
echo "<html>
<head>
<meta http-equiv='Refresh' content='0; URL=view_post.php?id=$id'>
</head>
</html>";
exit();
}

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru