<MyRusakov.ru />

Создание Интернет-магазина на OpenCart 2.0

Создание Интернет-магазина на OpenCart 2.0

Видеокурс "Создание Интернет-магазина на OpenCart 2.0" обучит Вас созданию любых Интернет-магазинов на OpenCart 2. В первом разделе курса разбираются абсолютно все возможности данного движка с примерами.

Во втором разделе создаётся полноценный Интернет-магазин, где Вы уже всё увидите своими глазами.

И, наконец, в третьем разделе курса созданный Интернет-магазин будет размещён в Интернете.

К курсу так же идут бесплатные и очень ценные Бонусы сопоставимые с самим курсом: "Как сэкономить на Яндекс.Директ до 50%", "Дропшиппинг" и "Как раскрутить Интернет-магазин".

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Как реализовать запрет повторного голосования?
27.04.2013 23:54:40 Как реализовать запрет повторного голосования? Сообщение #1
sligor

sligor

Новичок

Новичок

Дата регистрации:
02.02.2013 13:57:20

Сообщений: 3

Здравствуйте, Михаил.
Возможно Вы уже писали об этом, но на сайте я ничего не нашёл. Подскажите пожалуйста, каким образом можно реализовать возможность только однократного голосования на сайте, будь то выставление рейтинга или участие в опросе. Спасибо.
Профиль Ответить
28.04.2013 09:24:21 Как реализовать запрет повторного голосования? Сообщение #2
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

Здравствуйте! Я лично делаю так: сам опрос, когда пользователь проголосовал, то в базу добавляется его Login или id, и за кого он проголосовал, а перед этим проверяется голосовал ли он? Вот пример:


Форма опроса

<form method = 'post' action = 'opros.php'>
<table>
<tr><td><input type = 'radio' value = '1' name = 'var' />Первый вариант</td></tr>
<tr><td><input type = 'radio' value = '2' name = 'var' />Второй вариант</td></tr>
<tr><td><input type = 'radio' value = '3' name = 'var' />Третий вариант</td></tr>
<tr><td><input type = 'submit' name = 'opros' value = 'Проголосовать' /></td></tr>
<tr><td><a href = 'itog.php' title = 'Итоги'>Итоги</a></td></tr>
</table>
</form>


Обработчик формы

<?php
require_once "meta/functions.php";
if(isset($_POST["opros"])) {
$var = $_POST["var"];
if($var != "" {
addOpros($_SESSION["login"], $smena);
echo "<script>alert('Вы успешно проголосовали!');</script>";
}
elseif($var == "" {
echo "<script>alert('Вы не выбрали вариант ответа! Попробуйте еще раз!!!');</script>";
}
elseif(selectLogin($_SESSION["login"])) {
echo "<script>alert('Вы уже голосовали!');</script>";
}
}
?>


functions.php(Файл с функциями)

function selectOpros($login) {
global $mysqli;
connectDB();
$result_set = $mysqli->query("SELECT * FROM `opros` WHERE `login` = '$login'";
closeDB();
return $result_set->fetch_assoc();
}

function addOpros($login, $var) {
global $mysqli;
connectDB();
$mysqli->query("INSERT INTO `opros` (`login`, `var`) VALUES ('$login', '$var')";
closeDB();
}

function getCountOpros($var) {
global $mysqli;
connectDB();
$result_set = $mysqli->query("SELECT COUNT(`id`) FROM `opros` WHERE `var` = '$var'";
$row = $result_set->fetch_assoc();
closeDB();
return $row["COUNT(`id`)"];
}


Итоги

<?php
require_once "meta/functions.php";
$count_1 = getCountOpros("1";
$count_2 = getCountOpros("2";
$count_3 = getCountOpros("3";
?>
<table>
<tr><td>1 вариант: </td><td><?php echo $count_1;?></td></tr>
<tr><td>2 вариант: </td><td><?php echo $count_2;?></td></tr>
<tr><td>3 вариант: </td><td><?php echo $count_3;?></td></tr>
</table>

Профиль Ответить
28.04.2013 09:31:56 Как реализовать запрет повторного голосования? Сообщение #3
sligor

sligor

Новичок

Новичок

Дата регистрации:
02.02.2013 13:57:20

Сообщений: 3

Спасибо, Илья! Алгоритм Вашего решения мне понятен. Но дело в том, что я хотел бы разрешить голосование всем посетителям сайта, а не только зарегистрированным. Вероятно это надо делать через coockies.
Профиль Ответить
28.04.2013 09:45:19 Как реализовать запрет повторного голосования? Сообщение #4
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

Сделайте так, вместо $_SESSION["login"]используйте ip пользователя,
$ip = $REMOTE_ADDR;
Профиль Ответить
28.04.2013 13:48:18 Как реализовать запрет повторного голосования? Сообщение #5
sligor

sligor

Новичок

Новичок

Дата регистрации:
02.02.2013 13:57:20

Сообщений: 3

Спасибо, попробую.
Профиль Ответить
28.04.2013 14:00:04 Как реализовать запрет повторного голосования? Сообщение #6
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

извините, замените вот эту строку

$ip = $REMOTE_ADDR;


на эту


$ip = $_SERVER["REMOTE_ADDR"];
Профиль Ответить