Autor Zpráva
Majk89
Profil
Dobrý den,

vytvářím script, který má přičíst po kliknutí na určitý odkaz k číslu v databázi +1. Script mi ale funguje vždy jen na přičtení +1 poprvé, pokud na stejný odkaz kliknu podruhé, už se nic nepřičte.

Náhled scriptu:
Odkaz

<a href='http://adresaStranek.cz/pridejHodnotu.php?id=$id'>Přičti 1</a>

Script, který se má vykonat po kliknutí na odkaz

require "databaze.php";
$id = $_GET["id"];
@ mysql_query("UPDATE Citac SET Hodnota = Hodnota +1 WHERE id=$id");
header ("Location: http://adresaStranek.cz");
exit();


Budu rád za každou radu.
Díky, Matěj.
HajekJirka
Profil
Majk89:
Zkontroluj jestli se ti nezmění po kliknutí $id v tom odkazu (řádek 3).

Zkus odstranit ten zavináč na řádku 5, spusť script a podívej se jestli ti to něco nevypisuje.
Majk89
Profil
HajekJirka:

$id je i po kliknutí stále stejné

bez zavináče script funguje naprosto stejně jako s ním

Zjistil jsem, že když kliknu na odkaz, který má přičíst +1 například ve Firefoxu, tak se přičte +1, ale po druhém kliknutí už se nic nepřičte. ALE pokud si poté stránku otevřu v jiném prohlížeči, nebo další den, odkaz zase funguje na první kliknutí.

Takže bych řekl, že může být chyba buď u prohlížeče, že si v mezipaměti na nějakou dobu uloží, že jsem už jednou na odkaz kliknul, nebo může být třeba pro jednu IP adresu v databázi (MySQL) nastevený časový interval, kolikrát mohu updatovat ten samý řádek?
Darker
Profil
Krom odstranění zavináče si taky za volání mysql_query dej ||die(mysql_error()).
Moc se mi nezdá že by to byla chyba prohlížeče, ale projistotu můžeš zkusit přes HTTP hlavičky zakázat cache.

Majk89:
nebo může být třeba pro jednu IP adresu v databázi (MySQL) nastevený časový interval, kolikrát mohu updatovat ten samý řádek?
To by byla dost divná specialitka.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0