Autor Zpráva
fafa
Profil *
Dobrý den, již delší dobu si lámu hlavu nad následujícím skriptem. Totiž, ať už v jakémkoliv prohlížeči, vždy mi anketa dovolí kliknout dvakrát, tj. tento skript proběhne dvakrát, až pak zareaguje podmínka, že už bylo hlasováno, jako by sessions i cookies reagovaly se spožděním. Asi je něco špatně, ale nevím co...

//pocatecni prirazeni do session a cookie informaci o tom, ze zatim nebylo hlasovano a muze se jeste hlasovat
if(!isset($_SESSION['hlasovano_s']) and !isset($_COOKIE['hlasovano_c']))
{
setcookie("hlasovano_c","ne",$cas);
session_register("hlasovano_s");
$_SESSION["hlasovano_s"] = "ne";
}


(po kliknutí na anketu a odesláni tlačítkem se ustanoví SESSIONS i COOKIES, a v následujícím skriptu se zpracovávají)
session_start();
if(!isset($_POST['anketa'])){Header('Location: '.$adresa_webu.'index.php');}
if($_SESSION['hlasovano_s']=="ano" or $_COOKIE['hlasovano_c']=="ano"){Header('Location: '.$adresa_webu.'index.php');}
if ($_SESSION['hlasovano_s']=="ne" or $_COOKIE['hlasovano_c']=="ne"){
$cas = time() + 1000;
setcookie("hlasovano_c","ano",$cas);
$_SESSION['hlasovano_s'] = "ano";
$id = Sql_Safe($_POST['id'],"n");
$count = Sql_Safe($_POST['anketa'],"t");
$dotaz = "select ".$count." from ankety where id=".$id." limit 1";
$result = @mysql_query($dotaz) or System_Error(7);
$row = @mysql_fetch_row($result);
$number = $row['0']+1;
$dotaz = "update ankety set ".$count."=".$number." where id=".$id;
@mysql_query($dotaz) or System_Error(6);
@mysql_close();
}

Header('Location: '.$adresa_webu.'index.php');

Dále mi není jasná implementace sessions a cookies v IE 5, 5.5 - jak to mám proboha udělat, aby se nechalo přihlásit, či hlasovat ve výše uvedené anketě?

Díky...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0