Поскольку вы хотите, чтобы оно запоминало значение между сессиями (т. Е. Если я увеличил счетчик, покинул веб-сайт и вернулся, я ожидаю, что оно все еще будет увеличиваться), вам необходимо сохранить значение на стороне сервера.Базы данных - лучшая рекомендация для этого.
Если вы планируете использовать PHP (что я предполагаю из тегов), то MySQL - одна из самых простых в реализации баз данных.Если на вашем хосте уже настроена база данных MySQL, это будет легко.Если нет, то как задать базу данных MySQL - это еще один вопрос, который вам нужно задать.
Поскольку вы хотите быстро и грязно, лучшим способом будет форма.Либо POST, либо GET (желательно GET, если вы хотите, чтобы люди отправляли ссылку «проголосовать за это изображение», предпочтительно POST, если вы не хотите, чтобы такие ссылки были возможны).Это легко, но также требует перезагрузки страницы, поэтому современные системы голосования используют вызовы AJAX (javascript).
Ваша HTML-форма будет выглядеть примерно так:
<!-- Person A goes here -->
This person has a score of <!-- We'll do this soon -->.
<form method="get" <!-- or post --> action="vote.php">
<input type="submit" name="submit_button" value="Vote Up!" />
<input type="submit" name="submit_button" value="Vote Down =(" />
<input type="hidden" name="person" value="A" />
</form>
<!-- Similar for person B -->
Обратите внимание, что<!-- -->
- это синтаксис для HTML-комментария (они будут удалены на конечном веб-сайте)
В файле voice.php вам сначала нужно будет проверить, была ли отправлена форма, а затем посмотреть, КАКАЯ кнопка отправки была нажата (голосуйте вверх или вниз), затем посмотрите, к какому человеку это относится.Затем мы делаем запись в нашей базе данных.
<?php
if(isset($_GET['submit_button'])){
// They submit the form
$add = ($_GET['submit_button'] == 'Vote Up!') ? 1 : -1;
$person = $_GET['person'];
$link = mysql_connect('localhost', 'user', 'password');
mysql_select_db('database', $link);
mysql_query("UPDATE table SET value=value+$add WHERE person=$person");
} else {
die("You didn't submit the form =(");
}
?>
Имейте в виду, что это ДЕЙСТВИТЕЛЬНО грязный метод (нет синтаксического анализа запроса и никаких проверок. Это очень восприимчиво к SQL-инъекции. НЕ используйте этов базе данных с важной информацией. На самом деле - вероятно, не используйте это вообще без нескольких изменений =))
Теперь, в основном, это берет таблицу table
, находит запись, где person
равно любому человеку, который был выбран (выбран по тому, какая форма была использована для отправки), затем добавляет +1 или -1 к value
.Вы можете изменить любое из этих имен переменных в своей собственной таблице.Следующий шаг: чтение значения для отображения на предыдущей странице.Помните, что раньше у меня только что был комментарий <!-- we'll do this soon -->
.Мы вернемся к этому сейчас.
В начале вашей первой страницы вы хотите прочитать базу данных.Это означает, что ваша первая страница также должна быть PHP.
<?php
$link = mysql_connect('localhost', 'user', 'password');
mysql_select_db('database', $link);
$result = mysql_query("SELECT value FROM table WHERE person=A");
...
Теперь у вас есть ресурс MySQL, но вам нужно его значение.
...
$row = mysql_fetch_row($result);
...
И теперь мы отображаем его с помощьюинформация.
<!-- Person A goes here -->
This person has a score of <?php echo $row[0]; ?>.
<form method="get" <!-- or post --> action="vote.php">
<input type="submit" name="submit_button" value="Vote Up!" />
<input type="submit" name="submit_button" value="Vote Down =(" />
<input type="hidden" name="person" value="A" />
</form>
Затем вы повторяете для человека B. Это действительно самый грязный метод, поскольку он включает один вызов базы данных на человека.В идеале вы должны получить все нужные значения за один вызов, а затем перебрать возвращенный ресурс и определить, кто есть кто.Или, если вы действительно хотите проявить фантазию, вы уже можете знать, кто есть кто, используя SORT ASC
=)
Как я уже говорил, это самый быстрый, самый простой и самый грязный способ сделать то, что выхочу использовать PHP и MySQL.