Nefunkční cekies u hlasování

Vyřešeno397 zhlédnutíWebhosting
0

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
0

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
0

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
0

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
0

Prolém je hlavně řádek 20

if (isset("hit"))

Správně má být

if (isset($hit))

Role: Zákazník
TJ285257 Změnil status na publikováno 11. 2. 2023