Autor Zpráva
Holomek
Profil *
Ahoj, nevi prosim nekdo jak mohu oezit hlasovani z jedne ip adresy? Jde mi o to vlozit nejakou funkci na tlacitko kterym se bude potvrzovat nejaka akce.. Dekuji.
krteczek
Profil
no dělá se to tak že se nastaví cookies, a potom se kontroluje jestli ji náhodou nemá. je to asi nejjednodužší a pokud nemá uživatel zakázané kokies tak i funkční. 100% funkční řešení neexistuje, protože jsou dynamické ip adresy, proxyservery...ty vymakanější skrypty to nějak kombinují cookies/ip adresy (třeba že za 1hodinu muže z určité ip přijít maximálně 20 zápisu do ankety(například)

krteczek
Holomek
Profil *
Dik, ale myslel jsem konkretneji. Teorii znam, myslel jsem kdyby mi nekdo napsal kratk ykod na vlozeni. Myslim ze to neni nic tak dlouheho? Stacilo by mozna pres cookies, ale radeji bych pres pomoci kontroly IP... Dik
krteczek
Profil
něco ve stylu:

if(!empty($_REQUEST['neco'])
{
if(empty($_COOKIE['anketa']))
{
//tady si to neco zpracuješ a podle vysledku nastavíš cookies
if($dobre=dobre)
{
$cas1=getdate(); //získáín aktualniho času
$cas=$cas1[0];//čas unixové ery
$doba_platnosti=86400; //24hodin v sekundách
setcookie("nazev","obsah",($cas+$doba_platnosti);
}
else
{
//nejde to,neco je špatně
}
}
else
{
//nejde to, má cookie
}

krteczek
Holomek
Profil *
Dik, hned to vyzkousim.
Holomek
Profil *
Nejak se mi nedari. Mohli by jste mi s tim prosim poradit? Prikladam kod. Dik moc.

<form>

<input type="radio" name=hodnoceni value="1">1
<input type="radio" name=hodnoceni value="2">2
<input type="radio" name=hodnoceni value="3">3
<input type="radio" name=hodnoceni value="4">4
<input type="radio" name=hodnoceni value="5">5

<input type=submit value="Hodnotit">
</form>

<?




if(!empty($_REQUEST['neco'])
{
if(empty($_COOKIE['anketa']))
{
//tady si to neco zpracuješ a podle vysledku nastavíš cookies
if($dobre=dobre)
{
$cas1=getdate(); //získáín aktualniho času
$cas=$cas1[0];//čas unixové ery
$doba_platnosti=86400; //24hodin v sekundách
setcookie("nazev","obsah",($cas+$doba_platnosti);
}
else
{
//nejde to,neco je špatně
}
}
else
{
//nejde to, má cookie
}






Header("Cache-Control: no-cache"); //zajistí, aby se výsledek skriptu neukládal do vyrovnávací paměti

$fp = FOpen ("jmeno_souboru", "r");
$data = FRead ($fp, FileSize("jmeno_souboru"));
FClose($fp);

$write = $data + $hodnoceni;

$fp = FOpen ("jmeno_souboru", "w");
FWrite ($fp, $write);
FClose ($fp);

?>

<?

readfile(jmeno_souboru);
?>
WertriK
Profil *
To mas v jednom souboru?
Řekl bych že to bude tím že máš výstup před odesláním cokiee takže v tom bych hledal tu chybu

<?




if(!empty($_REQUEST['neco'])
{
if(empty($_COOKIE['anketa']))
{
//tady si to neco zpracuješ a podle vysledku nastavíš cookies
if($dobre=dobre)
{
$cas1=getdate(); //získáín aktualniho času
$cas=$cas1[0];//čas unixové ery
$doba_platnosti=86400; //24hodin v sekundách
setcookie("nazev","obsah",($cas+$doba_platnosti);
}
else
{
//nejde to,neco je špatně
}
}
else
{
//nejde to, má cookie
}


Header("Cache-Control: no-cache"); //zajistí, aby se výsledek skriptu neukládal do vyrovnávací paměti

$fp = FOpen ("jmeno_souboru", "r");
$data = FRead ($fp, FileSize("jmeno_souboru"));
FClose($fp);

$write = $data + $hodnoceni;

$fp = FOpen ("jmeno_souboru", "w");
FWrite ($fp, $write);
FClose ($fp);

?>

<form>

<input type="radio" name=hodnoceni value="1">1
<input type="radio" name=hodnoceni value="2">2
<input type="radio" name=hodnoceni value="3">3
<input type="radio" name=hodnoceni value="4">4
<input type="radio" name=hodnoceni value="5">5

<input type=submit value="Hodnotit">
</form>
Holomek
Profil *
Dik, ale v tom to neni. Kdyz je to takhle, nic se na strance nezobrazuje! Pokud vymazu to s tim Cookie, vsechno jde jak ma..
WertriK
Profil *
Pise to nejakou chybu?
Holomek
Profil *
Ne. Jen je prazdna stranka...
WertriK
Profil *
hmm


<?


if ($go == "Hodnotit") {

$hlasoval = $HTTP_COOKIE_VARS['anketa'];

if($hlasoval != "1")
{
$cas1=getdate();
$cas=$cas1[0];
$doba_platnosti=86400; //24hodin v sekundách
setcookie("anketa","1",($cas+$doba_platnosti);

$fp = FOpen ("jmeno_souboru", "r");
$data = FRead ($fp, FileSize("jmeno_souboru"));
FClose($fp);

$write = $data + $hodnoceni;

$fp = FOpen ("jmeno_souboru", "w");
FWrite ($fp, $write);
FClose ($fp);

}
else {

echo "Už jsi hlasoval/a!";

}
}
?>

<form>

<input type="radio" name=hodnoceni value="1">1
<input type="radio" name=hodnoceni value="2">2
<input type="radio" name=hodnoceni value="3">3
<input type="radio" name=hodnoceni value="4">4
<input type="radio" name=hodnoceni value="5">5

<input type=submit name="go" value="Hodnotit">
</form>
WertriK
Profil *
oprav tento radek

setcookie("anketa","1",($cas+$doba_platnosti);
na
setcookie("anketa","1",($cas+$doba_platnosti));
Holomek
Profil *
Funguje!!! Moc dekuji! Jen mi ted zmizelo vypsane hodnoceni ale to bude prkotina se kterou si poradim. Ted mi to pise ze jsem hlasoval, muzes mi prosim jeste napsat jak udelat aby se nedalo hlasovat znovu?
Holomek
Profil *
Aha, je tam chybka, ted se mi prestaly nacitat hodnoceni.. :o(
Vypada to ted takhle.

<?


if ($go == "Hodnotit") {

$hlasoval = $HTTP_COOKIE_VARS['anketa'];

if($hlasoval != "1")
{
$cas1=getdate();
$cas=$cas1[0];
$doba_platnosti=86400; //24hodin v sekundách
setcookie("anketa","1",($cas+$doba_platnosti));

$fp = FOpen ("jmeno_souboru", "r");
$data = FRead ($fp, FileSize("jmeno_souboru"));
FClose($fp);

$write = $data + $hodnoceni;

$fp = FOpen ("jmeno_souboru", "w");
FWrite ($fp, $write);
FClose ($fp);

}
else {

echo "Už jsi hlasoval/a!";

}
}
?>

<form>

<input type="radio" name=hodnoceni value="1">1
<input type="radio" name=hodnoceni value="2">2
<input type="radio" name=hodnoceni value="3">3
<input type="radio" name=hodnoceni value="4">4
<input type="radio" name=hodnoceni value="5">5

<input type=submit name="go" value="Hodnotit">
</form>


<?

readfile(jmeno_souboru);
?>
Holomek
Profil *
http://www.server-baby.cz/JakubZacek/pokusyhodnoceni/hodnoceni.php
WertriK
Profil *
to vypsani mas tu
<?
readfile(jmeno_souboru);
?>
A to aby nemohl hlasovat znovu to je to s tema cookie, takze kdyz budes hlasovat a potom budes chtit znovu (do 24 hodin) tak ti to napise (po zmacknuti "Hodnotit") "Už jsi hlasoval/a!".
WertriK
Profil *
Aha, je tam chybka, ted se mi prestaly nacitat hodnoceni.. :o(
Nevim co myslis me to funguje bez problemu - alespon to tak vypada
Anonymní
Profil *
Jo uz jsem vse vyresil. Dik. Mel jsem tam prepis a uz jsem to nasel.
Anonymní
Profil *
Ted je vse O.K.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0