Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z punktami
Forum PHP.pl > Forum > PHP
marcinrm5
Witam. Mam mały problem przy tworzeniu tej strony: www.themostpower.xaa.pl/prezencik
Chce aby dodawało pkt po zalogowaniu się raz na 24h, ankietę można było rozwiązywać raz na 24h i by dodawały się do niej pkt po udzieleniu dobrej odpowiedzi.
Kiedy ja próbuję to zrobić to mi coś nie wychodzi :/
W mysql mam baze themostp_prezent > uzytkownicy > punkty INT(30)

Tutaj kod php z pliku index
  1. <?php
  2. include("config.php");
  3. $id = $_SESSION['id'];
  4. $nick = $_SESSION['nick'];
  5. $haslo = $_SESSION['haslo'];
  6. $punkty = $_SESSION['punkty'];
  7. $email = $_SESSION['email'];
  8. $ip = $_SESSION['ip'];
  9. $konto = $_SESSION['konto'];
  10. $data = $_SESSION['data'];
  11. if ((empty($nick)) AND (empty($haslo))) {
  12. echo '<p>Nie byłeś zalogowany albo zostałeś wylogowany<br><a href="index.php">Strona Główna</a></p>';
  13. }
  14. $user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1"));
  15. $data = date("Y-m-d");
  16. mysql_query("INSERT INTO uzytkownicy WHERE (data) VALUES (NOW())");
  17. if ( $row['data'] < (time() - 3600) ) {
  18. mysql_query("update uzytkownicy set punkty = punkty + 10 where id = {$_SESSION['id']}");
  19. }
  20. if (empty($user[id]) OR !isset($user[id])) {
  21. echo '<p>Nieprawidłowe logowanie.</p>';
  22. }
  23. // tresc dla zalogowanego uzytkownika
  24. echo '<p>Nick: '.$user['nick'].'</p>';
  25. echo '<p>Posiadasz '.$user['punkty'].' pkt!</p>';
  26. echo '<p>Jesteś naszym '.$user['id'].' użytkownikiem.';
  27. echo '<p>Twój email: '.$user['email'].'';
  28. echo '<p>Twoje zarejestrowane ip: '.$user['ip'].'';
  29. echo '<p>Typ konta: '.$user['konto'].'';
  30. echo '<p>Zarejestrowany: '.$user['data'].'';
  31. echo '<p><a href="wyloguj.php">Wyloguj mnie</a></p>';
  32. ?>


A tu z gry.php
  1. <?php include("config.php");
  2. $nick = $_SESSION['nick'];
  3. $haslo = $_SESSION['haslo'];
  4. if ((empty($nick)) AND (empty($haslo))) {
  5. echo '<p>Nie byłeś zalogowany albo zostałeś wylogowany<br><a href="index.php">Strona Główna</a></p>';
  6.  
  7. }
  8. ?>
  9. <table border="0" width="300px">
  10. <tr height="50px">
  11. <td>
  12. <?php
  13.  
  14. $akcja = $_POST['akcja'];
  15.  
  16. if ($akcja != 'wyniki')
  17. {
  18. ?>
  19. <form action='gry.php' method='post'>
  20. <b>Ile rucin ma lat?</b><br>
  21. 15 <input type='radio' name='odp1' value='10'><br>
  22. 13 <input type='radio' name='odp1' value='0'><br>
  23. 18 <input type='radio' name='odp1' value='0'><br><br>
  24. </td>
  25. </tr>
  26. <tr height="50px">
  27. <td><b>Kiedy powstał skrypt "PrezenciK"?</b><br>
  28. 16.07.2011 <input type='radio' name='odp2' value='0'><br>
  29. 20.06.2011 <input type='radio' name='odp2' value='0'><br>
  30. 03.11.2010 <input type='radio' name='odp2' value='10'><br><br></td>
  31. </tr>
  32. <tr height="50px">
  33. <td><b>Skrypt był zrobiony dla?</b><br>
  34. Shift <input type='radio' name='odp3' value='10'><br>
  35. Nikogo <input type='radio' name='odp3' value='0'><br>
  36. Progo <input type='radio' name='odp3' value='0'><br></td>
  37. </tr>
  38. </table>
  39. <input type='hidden' name='akcja' value='wyniki'>
  40. <input type='submit' value='Wyslij'></form>
  41. <?
  42. }
  43. elseif ($akcja == 'wyniki')
  44. {
  45.  
  46. if ($_POST['odp1'] =="10")
  47. {
  48. $odp1 = $_POST['odp1'];
  49. }
  50. else
  51. {
  52. $odp1 = "0";
  53. }
  54. ;
  55. if ($_POST['odp2'] =="10")
  56. {
  57. $odp2 = $_POST['odp2'];
  58. }
  59. else
  60. {
  61. $odp2 = "0";
  62. }
  63. ;
  64. if ($_POST['odp3'] =="10")
  65. {
  66. $odp3 = $_POST['odp3'];
  67. }
  68. else
  69. {
  70. $odp3 = "0";
  71. }
  72. ;
  73.  
  74. $punkty = $odp1 + $odp2 + $odp3;
  75. echo "Zdobyłes(aś) <b>$punkty</b> punkty!<br>";
  76. }
  77. ?>


Pomoże ktoś? :/
Fifi209
Cytat(marcinrm5 @ 17.07.2011, 12:19:58 ) *
Kiedy ja próbuję to zrobić to mi coś nie wychodzi :/

No i jaki masz problem? Bo nie napisałeś.
toaspzoo
Syf nie kod.

Czemu w jednym miejscu dajesz w echo "" a w drugim '' ?
marcinrm5
Fifi209, "Chce aby dodawało pkt po zalogowaniu się raz na 24h, ankietę można było rozwiązywać raz na 24h i by dodawały się do niej pkt po udzieleniu dobrej odpowiedzi." Czyli w gry.php na końcu masz $puinkty i żeby je dodawało do mysql.

toaspzoo, przepraszam za bałagan ale mam zamiar jeszcze tam pozmieniać pare rzeczy smile.gif
xamrex
Co to logowaniu aby było tylko raz na 24h.
To ja mam taki pomysł.
Jeśli user się zaloguje to w bazie zapisuje się czas logowania (funkcja date)
I załóżmy że się wylogował i loguje się ponownie
I teraz w pliku php masz coś takiego:
Jeśli czas w którym się loguje minus ostatni czas <24h to nie dodawać pkt.

A co do dodaniu pkt, to odczytujesz ile user ma pkt i za pomocą update dodajesz np 5pkt
marcinrm5
xamrex, no i teraz taki problem :/
Mam wpisane tak:
  1. include("config.php");
  2. $id = $_SESSION['id'];
  3. $nick = $_SESSION['nick'];
  4. $haslo = $_SESSION['haslo'];
  5. $punkty = $_SESSION['punkty'];
  6. $email = $_SESSION['email'];
  7. $ip = $_SESSION['ip'];
  8. $konto = $_SESSION['konto'];
  9. $data = $_SESSION['data'];
  10. if ((empty($nick)) AND (empty($haslo))) {
  11. echo '<p>Nie byłeś zalogowany albo zostałeś wylogowany<br><a href="index.php">Strona Główna</a></p>';
  12. }
  13. $user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1"));
  14. $data = date("Y-m-d");
  15. mysql_query("INSERT INTO uzytkownicy WHERE (data) VALUES ($data");
  16. if ( $row['data'] < (time() - 3600) ) {
  17. mysql_query("update uzytkownicy set punkty = punkty + 10 where id = {$_SESSION['id']}");
  18. }


I nie działa :/ Ktoś pokaże błędy lub co kolwiek? :/
xamrex
Ale co nie działa?
Jaki błąd?
Nie updatuje punktów czy co?
marcinrm5
Tak, dalej jest 0 pkt w mysql
Jakby nie wyświetliło obrazka - http://zapodaj.net/images/975a687fbe6b.png
xamrex
Obrazek nie działa.
To spróbuj sobie przez phpmyadmina takie zapytanie walnąć:

  1. UPDATE uzytkownicy SET punkty = 10 WHERE id = 1

I napisz czy zadziała
marcinrm5
Wpisałem
  1. if ( mysql_query("UPDATE `uzytkownicy` SET `punkty` = '125' WHERE `id`='1'") )
  2. {
  3. echo "Dodano 10pkt!";
  4. }
  5. else {
  6. die(mysql_error()); // zapytanie zwróciło error!
  7. echo "ERROR";
  8. }


I dalej nie działa ;? nie wiem czemu


@ już naprawiłem ^^
Powodem było
  1. if (konto == silver)
  2.  
  3. {
  4. Tutaj był powyższy kod
  5. }
  6. ;

Ale dlaczego nie chciało dodać?
Fifi209
Cytat(marcinrm5 @ 18.07.2011, 11:01:19 ) *
@ już naprawiłem ^^
Powodem było
  1. if (konto == silver)
  2.  
  3. {
  4. Tutaj był powyższy kod
  5. }
  6. ;

Ale dlaczego nie chciało dodać?

A masz te dwie stałe? Bo nazwy zmiennych zaczynają się od $ czyli to były stałe, a skoro ich nie zdefiniowałeś to wywalał błąd, na przyszłość zapoznaj się z tematem:
error_reporting
marcinrm5
ok dzięki

temat do zamknięcia smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.