Nefunkční cekies u hlasování
Dobrý den, nán vytvořen skript pro hlasování bez cokies vše funguje. Pokud do daného kódu přidám cokies vykazuje mi to chybu. Může mi někdo poradit? Posílám pouze části kódu
Kód bez Cokies vše funguje
$uloz = $mysqli->query("UPDATE hitparada SET pocet_hlasu='$soucet_hlas' WHERE id = '".$hit."'") or die(mysqli_error()); if ($uloz == 'true') { echo "<div class='alert alert-success'>Váš hlas do hitparady byl uložen.</div>"; } else { echo "<div class='alert alert-danger'>Váš hlas nebyl uložen.</div>"; }
Kód s Cokies
if (isset($_COOKIE["hit"])) { echo "Váš hlas byl již dříve započten.\n"; } else { setcookie("hit", $soucet_hlas, strtotime( '+30 days' )); $mysqli->query("UPDATE hitparada SET pocet_hlasu='$soucet_hlas' WHERE id = '".$hit."'"); }
Vykazuje mi to chybu na řádku
setcookie("hit", $soucet_hlas, strtotime( '+30 days' ));
Děkuji za pomoc.
Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
MB313456 Vybral nejlepší odpověď 27. 2. 2023
4 Answers
Nebo pokud má podmínka na řádku 20 řešit nastavené cookie pak
if (isset($_COOKIE['hit']))
Role: Zákazník
MB313456 Vybral nejlepší odpověď 27. 2. 2023
Snad už jenom prozradit o jakou chybu se jedná. Odhaduji to na problém s časem.
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
Role: Zákazník
MB313456 Změnil status na publikováno 9. 2. 2023
Posílám Vám k nahlédnuti celý zdrojový kód ke zpracovaní hlasu.
<? $username = "****"; $password = "****"; $hostname = "****"; $db_name = "****"; //connection to the database $mysqli = new mysqli($hostname, $username, $password, $db_name ); mysqli_set_charset($mysqli,"utf8"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } $hit = $_GET['hit']; $members = $mysqli->query("SELECT * FROM RZH_hitparada WHERE id = '".$hit."'"); $edit = mysqli_fetch_assoc($members); $hlas = $edit["pocet_hlasu"]; $soucet_hlas = $hlas + 1; if (isset("hit")) { echo "Váš hlas byl již dříve započten.\n"; } else { setcookie("hit", $soucet_hlas, time() + ( 86400 * 30 ), "/"); $mysqli->query("UPDATE RZH_hitparada SET pocet_hlasu='$soucet_hlas' WHERE id = '".$hit."'"); echo "Děkujeme Vám za Váš hlas."; } ?>
Ukazuje mi to chybu na řádku 26
Fatal error: Cannot use isset() on the result of an expression (you can use „null !== expression“ instead) in /data/web/virtuals/19078/virtual/www/subdom/radio/hit-hlasuj.php on line 26
Role: Zákazník
MB313456 Změnil status na publikováno 10. 2. 2023
TJ285257 Změnil status na publikováno 11. 2. 2023