Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zabezpieczyć przed wielokrotnym wykonaniem skryptu wywołanego zdalnie, Licznik wyświetleń
markonix
post
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Kod HTML:
  1. <iframe src="http://example.com/count.php" width="1" height="1"></iframe>
  2. <iframe src="http://example.com/count.php" width="1" height="1"></iframe>
  3. <iframe src="http://example.com/count.php" width="1" height="1"></iframe>


Kod PHP:

  1. <?php
  2.  
  3. if (time() - $_SESSION['last_vistit'] <= 10) {
  4. die();
  5. }
  6.  
  7. $_SESSION['last_vistit'] = time();
  8.  
  9. mysql_query('INSERT INTO `test` SET `value` = "'. $_SESSION['last_vistit'] .'"');


W jaki sposób zabezpieczyć skrypt count.php aby zapobiec dodaniu do bazy 3 wierszy?
Jak widać zabezpieczyłem skrypt przez zbyt szybkim wywołaniem, jak odświeżę stronę to zabezpieczenie działa.
Ale gdy wczytam stronę z ramkami iframe to dodają się od 1 do 3 razy - co ciekawe nie ma normy.

Ten post edytował markonix 4.03.2016, 20:11:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Wazniak96
post
Post #2





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


Jakbyś zapisał do bazy także ip to można byłoby wykorzystać zapytanie coś w stylu:
  1. INSERT INTO test (value)
  2. SELECT * FROM (SELECT {$_SESSION['last_vistit']}) AS tmp
  3. WHERE NOT EXISTS (
  4. SELECT value FROM test WHERE `ip` = {$ip} AND `value` >= time() - 10
  5. ) LIMIT 1;
  6.  


Wolna myśl... Nie wiem czy zadziała.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 13:13