[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка "тыкал или нет"
HellElite
Я сделал скрипт "оценка статьи"(если кому интересно могу выложить полностью ), но человек может голосовать безконечно и рейтинг будет повышатся. Надо сделать такую проверку: Если человек еще не голосовал то выводится следующее ->

PHP
<form action="vote_res.phpmethod="post" name="vv">
<
class="vote">Оценка<input name="score" type="radio" value="1"<input name="score" type="radio" value="2"<input name="score" type="radio" value="3"<input name="score" type="radio" value="4"<input name="score" type="radio" value="5" checked>

<
input name="submit" type="submit" value="Оценить" class="button">
<
input name="id" type="hidden" value="<?php echo "$id"; ?>">
<
input name="table" type="hidden" value="<?php echo "$table"; ?>">
<
input name="page_name" type="hidden" value="<?php echo "$page_name"; ?>">
</
p></form>


потом эти переменные отсылаются в обработчик он обрабатывает и выводит страницу заного.

А если человек уже голосовал выводится что нибудь примерно следующего содержания ->

HTML
<p><b>Бла бла бла, вы уже голосовали!</b></p>


Проблема в том что я не умею делать запрос на cookie. Напишите пожалуйста как это делается. Заранее спасибо.



Спустя 16 минут, 40 секунд (27.02.2009 - 16:30) sergeiss написал(а):
А ты не пробовал "пошерстить" это раздел? Тут таких тем - едва ли не каждая пятая...
Ну вот, например: http://phpforum.ru/index.php?showtopic=15910

Спустя 48 минут, 23 секунды (27.02.2009 - 17:19) HellElite написал(а):
Да, смотрел. Ничего по делу не сказали. Регистрация... НЕ НУЖНА! Котегорически.. Мне тут посаветывали сделать проверку на Cookie и на IP однавременно. Как сделать без понятия. Я вобще с cookie и IP туговато общаюсь. потому и прощу помощи. так то алгоритм мне понятен.

Спустя 3 часа, 28 минут, 17 секунд (27.02.2009 - 20:47) HellElite написал(а):
Скрытый текст
Свернутый текст
и что никто не знает как?

Спустя 18 минут, 25 секунд (27.02.2009 - 21:05) kirik написал(а):
setcookie() и $_SERVER['REMOTE_ADDR'] для получения IP адреса.

Спустя 21 час, 38 секунд (28.02.2009 - 18:06) HellElite написал(а):
А можно по подробнее?

Спустя 59 минут, 54 секунды (28.02.2009 - 19:06) HellElite написал(а):
Вот примерное содержание самого файла. Таких файлов у меня несколько штук. Как сделать так чтоб с разных файлов в обработчик отсылались переменные, и куки создавались для разных файлов разные?
PHP
<?php 
include ("blocks/bd.php"); /*Соединяемся с базой*/
$page_name 'article';
$table 'articles';

if (isset(
$_GET['id'])) {$id $_GET['id'];}
if (isset(
$_POST['proverka'])){$proverka $_POST['proverka']; }

$result mysql_query("SELECT * FROM articles WHERE id='$id'",$db);
$myrow mysql_fetch_array($result); 
$new $myrow["view"] +1;
$update mysql_query ("UPDATE articles SET view='$new' WHERE id='$id'");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="description" content="<?php echo $myrow['meta_d']; ?>">
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?>">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body alink="#2D7315" vlink="#33CC00" link="#006600">
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">

<!--Подключаем шапку сайта-->
<? include("blocks/header.php");   ?> 

  <tr>
    <td><table width="900" border="0" cellspacing="0" cellpadding="0">
      <tr>
<!--Подключаем левый блок сайта-->
<td width="165" valign="top" class="menu">
<? include ("blocks/lefttd.php");  ?>     
</td> 
        <td width="733" valign="top" class="window">
                

        <p class="view_title"><?php echo $myrow['title']; ?></p>
        <p class="view_date">Дата добавления: <?php echo $myrow['date']; ?></p>
        <p class="view_date">Автор: <?php echo $myrow['author']; ?></p>
        
          <p><?php echo $myrow['text']; ?></p>
          <?php
          
if ($proverka) { echo '
<form action="vote_res.php" method="post" name="vv">
<p class="vote">Оценка: 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="button">
          <input name="id" type="hidden" value="<?php echo "$id"; ?>">
          <input name="table" type="hidden" value="<?php echo "$table"; ?>">
          <input name="page_name" type="hidden" value="<?php echo "$page_name"; ?>">
          </p></form>'
; }
          else {
          echo 
'<p> Вы уже голосовали!</p>';
          }
          
          
?>
</td>
      </tr>
    </table></td>
  </tr>
<!--Подключаем нижний графический элемент-->  
<?  include ("blocks/footer.php");        ?>  
</tab


А вот содержание обработчика.

PHP
<?php 
$proverka 
0;
// Устанавливаем Cookie до конца сессии:
setcookie("Test",$proverka);
// Устанавливаем Cookie на один час после установки:
setcookie("My_Cookie",$proverka,time()+3600);

if (
setcookie("Test","Value")) {
echo 
"<h3 align='center'>Голосование прошло успешно!</h3>";
}
else
{
echo 
"<h3 align='center'>Голосование НЕ прошло!</h3>";
}
include (
"blocks/bd.php");
if (isset(
$_POST['score'])){
$score $_POST['score']; }

if (isset(
$_POST['id'])){
$id $_POST['id']; }

if (isset(
$_POST['table'])){
$table $_POST['table']; }

if (isset(
$_POST['page_name'])){
$page_name $_POST['page_name']; }


$result mysql_query("SELECT rating,q_vote FROM $table WHERE id='$id'",$db);

if (!
$result)
{
echo 
"<p>Запрос на выборку данных из базы не прошел.<br> <strong>Код ошибки:</strong></p>";
exit(
mysql_error());
}

if (
mysql_num_rows($result) > 0)

{
$myrow mysql_fetch_array($result); 

$new_rating $myrow['rating'] + $score;
$new_q_vote $myrow['q_vote'] + 1;
$update mysql_query("UPDATE $table SET rating = '$new_rating', q_vote = '$new_q_vote'  WHERE id='$id'",$db); 

if (
$update)
{
echo 
"<p align='center'>Ваш голос добавлен!</p><a href='view_$page_name.php?id=$id'>Вернутся</a>";

}


}

else
{
echo 
"<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}







Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.