PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (3): « 1 [2] 3 »

> Найдено сообщений: 31
Yaroshrostyslav Отправлено: 20 Августа, 2015 - 04:19:28 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
ПОЧЕМУ ИНОГДА ПИШЕТ "Техническая ошибка" ?
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 17:03:09 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
Спасибо большое за помощь !!)
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 16:32:28 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
а можно вот так ?
PHP:
скопировать код в буфер обмена
  1. echo '<script>alert("Вы уже голосовали за этого человека")</script>';

(Добавление)
когда я нажимаю " ОК ", меня перекидывает на пустую страницу.
как сделать, чтобы после сообщения меня вернуло на сайт ?
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 15:34:28 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
andrewkard пишет:
Да

Отлично! всё работает) то, что нужно.
Скажите еще пожалуйста, как сделать чтобы echo выводился не на новой странице, а в браузере.
http://rghost[dot]ru/6fjKZdd7c
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 15:22:29 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
$ip=$_SERVER['REMOTE_ADDR'];
$hash_ip = md5($ip);
$vote = isset($_GET['winner'])?(int)$_GET['winner']:0;

так?
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 15:19:46 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
я хз где его искать
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 15:01:50 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
andrewkard пишет:
Yaroshrostyslav
Нет. Как у Вас голос засчитывался? Как скрипт узнает, что голос отдан какой то фотографии?

Functions.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. // Calculate the expected % outcome
  4. function expected($Rb, $Ra) {
  5.         return 1/(1 + pow(10, ($Rb-$Ra)/400));
  6. }
  7.  
  8. // Calculate the new winnner score
  9. function win($score, $expected, $k = 24) {
  10.         return $score + $k * (1-$expected);
  11. }
  12.  
  13. // Calculate the new loser score
  14. function loss($score, $expected, $k = 24) {
  15.         return $score + $k * (0-$expected);
  16. }
  17.  
  18. ?>

rate.php

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. include('mysql.php');
  5. include('functions.php');
  6.  
  7.  
  8. $ip=$_SERVER['REMOTE_ADDR'];
  9. $hash_ip = md5($ip);
  10. $vote = 1; //1=> winner, 2=> looser
  11.  
  12. //Если не голосовали
  13. if (!isset($_COOKIE['hash'])) {
  14.     //Ставим куки на сутки
  15.     setcookie("hash", $hash_ip, time() + 86400);
  16.     //Запоминаем выбор
  17.     $arr_vote[]=$vote;
  18.     setcookie("vote", serialize( $arr_vote ) ,time()*2);
  19.     //Успех
  20.     echo 'Ваш голос учтен';
  21.     exit;
  22. }
  23. //Проверка IP
  24. if ($_COOKIE['hash'] != $hash_ip) {
  25.     echo 'Техническая ошибка';
  26.     exit;
  27. }
  28.  
  29. //Если голосовали
  30. if (isset($_COOKIE['vote'])) {
  31.     //и голос тот же
  32.     $arr_vote = unserialize($_COOKIE['vote']);
  33.         if (in_array($vote,$arr_vote)){
  34.             echo 'Вы уже голосовали за этого игрока';
  35.             exit;
  36.         }
  37. }
  38.  
  39. $arr_vote[]=$vote;
  40. //Ставим куки на сутки
  41. setcookie("hash", $hash_ip, time() + 86400);
  42. //Запоминаем выбор
  43. setcookie("vote", serialize( $arr_vote ), time()*2);
  44. //Успех
  45. echo 'Ваш голос учтен';
  46.  
  47. // If rating - update the database
  48. if ($_GET['winner'] && $_GET['loser']) {
  49.  
  50.  
  51.         // Get the winner
  52.         $result = mysql_query("SELECT * FROM images WHERE image_id = ".$_GET['winner']." ");
  53.         $winner = mysql_fetch_object($result);
  54.  
  55.  
  56.         // Get the loser
  57.         $result = mysql_query("SELECT * FROM images WHERE image_id = ".$_GET['loser']." ");
  58.         $loser = mysql_fetch_object($result);
  59.  
  60.  
  61.         // Update the winner score
  62.         $winner_expected = expected($loser->score, $winner->score);
  63.         $winner_new_score = win($winner->score, $winner_expected);
  64.                 //test print "Winner: ".$winner->score." - ".$winner_new_score." - ".$winner_expected."<br>";
  65.         mysql_query("UPDATE images SET score = ".$winner_new_score.", wins = wins+1 WHERE image_id = ".$_GET['winner']);
  66.  
  67.  
  68.         // Update the loser score
  69.         $loser_expected = expected($winner->score, $loser->score);
  70.         $loser_new_score = loss($loser->score, $loser_expected);
  71.                 //test print "Loser: ".$loser->score." - ".$loser_new_score." - ".$loser_expected."<br>";
  72.         mysql_query("UPDATE images SET score = ".$loser_new_score.", losses = losses+1  WHERE image_id = ".$_GET['loser']);
  73.  
  74.  
  75.         // Insert battle
  76.         mysql_query("INSERT INTO battles SET winner = ".$_GET['winner'].", loser = ".$_GET['loser']." ");
  77.  
  78.  
  79.         // Back to the frontpage
  80.         header('location: /');
  81.        
  82. }
  83.  
  84.  
  85. ?>


index.php
PHP:
скопировать код в буфер обмена
  1. <table>
  2.         <tr>
  3.                 <td valign="top" class="image"><a href="rate.php?winner=<?=$images[0]->image_id?>&loser=<?=$images[1]->image_id?>"><img src="images/<?=$images[0]->filename?>" width="320" height="400" /></a></td>
  4.                 <td valign="top" class="image"><a href="rate.php?winner=<?=$images[1]->image_id?>&loser=<?=$images[0]->image_id?>"><img src="images/<?=$images[1]->filename?>" width="320" height="400" /></a></td>
  5.         </tr>
  6.         <tr>
  7.                 <td><h4>Выбрана: <b><?=$images[0]->wins?></b> раз(а), Слита:<b> <?=$images[0]->losses?></b></h4></td>
  8.                 <td><h4>Выбрана: <b><?=$images[1]->wins?></b> раз(а), Слита: <b><?=$images[1]->losses?></b></h4></td>
  9.         </tr>
  10.         <tr>
  11.                 <td>Рейтинг: <b><?=$images[0]->score?></b></td>
  12.                 <td>Рейтинг: <b><?=$images[1]->score?></b></td>
  13.         </tr>
  14.         <tr>
  15.                 <td>Нравится: <b><?=round(expected($images[1]->score, $images[0]->score), 4)?></b></td>
  16.                 <td>Нравится: <b><?=round(expected($images[0]->score, $images[1]->score), 4)?></b></td>
  17.         </tr>
  18. </table>

(Добавление)
вам что-то из этого поможет?
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 14:30:34 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
$vote = 495; // $vote = $image_id;
$vote = 494; // $vote = $image_id;
$vote = 493; // $vote = $image_id;
$vote = 492; // $vote = $image_id;
и так дальше ?
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 14:01:26 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
Да, при обновлении страницы, фотографии меняются.
У каждой фотографии есть свой " image_id ". Что нужно изменить в скрипте?
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 11:15:39 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
andrewkard пишет:
Yaroshrostyslav пишет:
хз.

Куки нужно почистить. Сохранить файл в кодировке UTF-8 w BOM

Сделал.

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\girls\www\rate.php:1) in Z:\home\girls\www\rate.php on line 15

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\girls\www\rate.php:1) in Z:\home\girls\www\rate.php on line 18
Ваш голос учтен
(Добавление)
Извините. Заработало на хостинге.
Но неправильно работает.
Когда я выбрал 1 девушку, голос - учтен.
Когда выбрал 2 девушку, голос - учтен.
Но при обновлении страницы, фото меняются и тогда в 1 и 2 "Вы уже голосовали за этого игрока".
http://rghost[dot]ru/6NXtsVygQ
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 10:32:57 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
andrewkard пишет:
Yaroshrostyslav
Пробуйте так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $ip=$_SERVER['REMOTE_ADDR'];
  3. $hash_ip = md5($ip);
  4. $vote = 1; //1=> winner, 2=> looser
  5.  
  6. //Если не голосовали
  7. if (!isset($_COOKIE['hash'])) {
  8.     //Ставим куки на сутки
  9.     setcookie("hash", $hash_ip, time() + 86400);
  10.     //Запоминаем выбор
  11.     $arr_vote[]=$vote;
  12.     setcookie("vote", serialize( $arr_vote ) ,time()*2);
  13.     //Успех
  14.     echo 'Ваш голос учтен';
  15.     exit;
  16. }
  17. //Проверка IP
  18. if ($_COOKIE['hash'] != $hash_ip) {
  19.     echo 'Техническая ошибка';
  20.     exit;
  21. }
  22.  
  23. //Если голосовали
  24. if (isset($_COOKIE['vote'])) {
  25.     //и голос тот же
  26.     $arr_vote = unserialize($_COOKIE['vote']);
  27.         if (in_array($vote,$arr_vote)){
  28.             echo 'Вы уже голосовали за этого игрока';
  29.             exit;
  30.         }
  31. }
  32.  
  33. $arr_vote[]=$vote;
  34. //Ставим куки на сутки
  35. setcookie("hash", $hash_ip, time() + 86400);
  36. //Запоминаем выбор
  37. setcookie("vote", serialize( $arr_vote ), time()*2);
  38. //Успех
  39. echo 'Ваш голос учтен';
  40.  


Warning: in_array() expects parameter 2 to be array, boolean given in Z:\home\girls\www\rate.php on line 33

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\girls\www\rate.php:33) in Z:\home\girls\www\rate.php on line 41

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\girls\www\rate.php:33) in Z:\home\girls\www\rate.php on line 43
Ваш голос учтен

http://rghost[dot]ru/6H8Wp5z5x


хз.
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 08:43:59 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
Я сделал установил скрипт, он работает.
Но он позволяет только один раз проголосовать за любого человека.
А как сделать, чтобы можно было голосовать дальше, только за других уже людей?
Yaroshrostyslav Отправлено: 18 Августа, 2015 - 00:52:25 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
andrewkard пишет:
Yaroshrostyslav
Не совсем ясно как у Вас выбор осуществляется, но примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $ip=$_SERVER['REMOTE_ADDR'];
  3. $hash_ip = md5($ip);
  4. $vote = 1; //1=> winner, 2=> looser
  5. //Если уже голосовали
  6. if (isset($_COOKIE['hash'])){
  7.         //Если ip совпадает
  8.         if ($_COOKIE['hash'] == $hash_ip){
  9.                 echo 'Вы уже голосовали'
  10.                 exit;
  11.         } else {
  12.                 echo 'Техническая ошибка';
  13.                 exit;          
  14.         }
  15. } else {
  16.         //Ставим куки на сутки
  17.         setcookie("hash", $hash_ip, time() + 86400);
  18.         //Если голос был и он совпадает
  19.         if (isset($_COOKIE['vote']) && $_COOKIE['vote'] == $vote){
  20.                 echo 'Вы уже голосовали за этого игрока'
  21.                 exit;
  22.         }
  23.         //Иначе запоминаем выбор
  24.         setcookie("vote", $vote,time()*2);     
  25. }
  26.  

Его вставить в начале или в конец моего скрипта?
Yaroshrostyslav Отправлено: 17 Августа, 2015 - 23:52:00 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
Авторизации нету. Голосовать может любой кто зашел на сайт.
Можете пошагово объяснить, как это все сделать. ?
Yaroshrostyslav Отправлено: 17 Августа, 2015 - 15:42:57 • Тема: Установка защиты на Facemash • Форум: Напишите за меня, пожалуйста

Ответов: 34
Просмотров: 300
zypikov пишет:
Для того что вам это сделать, нужно точно идентифицировать пользователя. А такого способа, насколько я знаю, нет. Куки хранятся на клиенте, их можно не только тупо удалить, но и изменить. Айпишник тоже не вариант. Вроде как-то еще можно проверку с помощью сессий сделать, но помойму это тоже не 100% гарантия.

Если интересно можно почитать http://f9r[dot]ru/goloss[dot]html

Спасибо, я много находил похожего.
Но я не знаю как сделать его под себя..
Мне нужна помощь.

Страниц (3): « 1 [2] 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB