Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][SQL][PHP]Coś tu jest nie tak!? (Timer, Mysql, PHP, JS)
MefjuU
post 3.05.2018, 19:17:59
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.04.2018

Ostrzeżenie: (0%)
-----


Witam otóż mam taki o plik o nazwie test.php

Jego zawartość:

  1. <?php
  2.  
  3. require './site/header.php';
  4. require './config/config.php';
  5. require_once './config/user.class.php';
  6. ?>
  7. Odliczanie: <div id="test"></div>
  8.  
  9. <script>
  10.  
  11. function startTimer(duration, display) {
  12. var timer = duration
  13. var minutes;
  14. var seconds;
  15. countDown();
  16. var interval = setInterval(countDown, 1000);
  17.  
  18. var levelnext = <?php echo $levelnext ?>;
  19.  
  20. function countDown() {
  21. minutes = parseInt(timer / 60, 10)
  22. seconds = parseInt(timer % 60, 10);
  23.  
  24. minutes = minutes < 10 ? "0" + minutes : minutes;
  25. seconds = seconds < 10 ? "0" + seconds : seconds;
  26.  
  27. display.innerHTML=(minutes+":"+seconds);
  28.  
  29. if (--timer < 0) {
  30. display.innerHTML= $levelnext; //PO UPŁYWIE 10 minut powinno załadować mi plik który podałem w $levelnext
  31. clearInterval(interval);
  32. //location.href="./test2.php";
  33. }
  34. }
  35. }
  36.  
  37. (function() {
  38. startTimer(10*60,document.getElementById('test')); // 10 minut
  39. }());
  40.  
  41. </script>
  42. <?php
  43. $sprlevel = require'./test2.php'; // A TO MA ZAŁADOWAĆ INNY PLIK DO KODU .js
  44. $levelnext = $sprlevel // TUTAJ JEST TEN PLIK
  45. ?>
  46. </body>
  47. </html>


I chodzi o to że do kodu .js po upływie tych 10 min powinien zostać załadowany inny plik (test2.php)
i właśnie chodzi o to że jak upłynie 10 min to załaduje mi drugi plik który wykona UPDATE tabeli w bazie danych dla danego użytkownika i zwiększy jego punkty w tym przypadku 'nosmoney'. Ale problem polega w tym pierwszym pliku (test.php) nie wywala mi żadnego błędu, ale również i nic nie odlicza. A powinno. :/

Zawartość pliku test2.php:

  1. <?php
  2. if (user::isLogged()) {
  3. // Widok dla użytkownika zalogowanego
  4.  
  5. // Pobierz dane o użytkowniku i zapisz je do zmiennej $user
  6. $user = user::getData('', '');
  7. echo 'Witam';
  8. mysql_query("UPDATE users SET nosmoney=nosmoney+1 WHERE id='$user[id]';") or die ('<p class="error">Wystąpił błąd.</p>');
  9.  
  10. if (($user['nosmoney']+1)==10) {
  11. echo 'Brawo! masz 10 pkt';
  12. }
  13. }else {
  14. // Widok dla użytkownika niezalogowanego
  15. echo '<center><br/><p1>Witaj nieznajomy!<br/></p1></center>';
  16. }
  17. ?>



Wcześniej zrobiłem to na innej podstawie dokładnie takim sposobem:
  1. //location.href="./test2.php";


ale nie chodzi mi o to żeby po upływie 10 min zmieniało mi stronę tylko żeby akcja dalej toczyła się na tej samej stronie.
Czyli tak jakby żeby połączyć mniej więcej jakoś do .js plik .php ale bez przekierowania.


Ponieważ próbuję zrobić taki prosty system leveli (który dodaje nam punkty za pobyt na stronie.) na stronie że później w index'ie jak i na reszcie stronach będzie odliczać i dodawać do bazy bez przekierowywania nas np. co 10 min na jakąś stronę (w poprzednim przypadku np. jak już podałem poprzez funkcję "location.href="./test2.php";" na stronę test2.php) a wręcz przeciwnie abyśmy pozostali na aktualnie przeglądanej przez nas stronie.
Go to the top of the page
+Quote Post
SmokAnalog
post 4.05.2018, 10:42:35
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Kłaniają się tutaj zupełne podstawy JavaScript i PHP. Łączysz te języki w nieprawidłowy sposób.

Masz dwie podstawowe możliwości:
  • Trzymaj treść tej nowej strony w ukrytym elemencie (display: none) i pokazuj go w momencie upływu czasu timera (element.style.display = 'block')
  • Jeśli treść nowej strony ma się ładować z serwera dopiero po upłynięciu czasu, to pozostaje Ci Ajax lub Fetch API.
Go to the top of the page
+Quote Post
MefjuU
post 5.05.2018, 01:28:42
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.04.2018

Ostrzeżenie: (0%)
-----


No właśnie nigdy czegoś takiego nie łączyłem ;/ (w sensie że js i php)

Ten post edytował MefjuU 5.05.2018, 01:29:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 19:42