phpRS help fórum : phpRS Fórum
Hlavní diskuzní phpRS fórum. Najdete zde odpovědi na otázky týkající se provozu a instalace phpRS systému.
phpRS - redakční a informační systém
Hlasování pouze pro registrované
Zaslán uživatelem/kou: Yankee.106 (IP adresa zaznamenána)
Datum: 2005-02-19, 16:33

Omlouvám se pokud to bylo již někde řešeno, ale já to nenašel. Jelikož není možné "sušenky" zakázat a jsou nutné pro hlasování, bohužel i opakované (společná free wifi IP adresa), jsem nucen se optat, jak mohu nastavit hlasování pouze pro registrované uživatele. Protože jsem robotům zakázal hlasování a stále mi hlasy přibývají, mám podezření na lidský faktor, tedy jednoho č..... pánské přirození. Děkuji za jakoukoliv pomoc.

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: Honza (IP adresa zaznamenána)
Datum: 2005-02-19, 17:52

No to mě dělalo taky, ale jakmile sem v config.php předělal následující:

//--[ankety]----------------------------------------------------------
// typ zakonceni hlasovani: a] index = presmerovani na hl.stranku, b] vysledek = zobrazeni vysledku
$anketacilstr="index";

tak sem to předělal na:

//--[ankety]----------------------------------------------------------
// typ zakonceni hlasovani: a] index = presmerovani na hl.stranku, b] vysledek = zobrazeni vysledku
$anketacilstr="vysledek";

pak se mi přestaly načítat opakované hlasy..

--------------------------
Ať žije phpRS!
ICQ: 280775922
web: [http://www.polocas.com]
<a href="http://www.polocas.com"><img src="http://www.polocas.com/obr/ikona.jpg"></a>

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: Yankee.106 (IP adresa zaznamenána)
Datum: 2005-02-19, 18:03

Děkuji, dobrý nápad. Již jsem zapracoval do webu ;-)

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: Honza (IP adresa zaznamenána)
Datum: 2005-02-19, 18:07

Není zač..

--------------------------
Ať žije phpRS!
ICQ: 280775922
web: [http://www.polocas.com]
<a href="http://www.polocas.com"><img src="http://www.polocas.com/obr/ikona.jpg"></a>

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: intranet (IP adresa zaznamenána)
Datum: 2007-12-27, 12:51

Mna by zaujimalo ako upravit phpRS (aj databazu) tak, aby mohli hlasovat iba registrovany uzivatelia!
Rad by som totiz sprevadzkoval firemny intranet, na ktory maju pristup iba zamestnanci, ale niektori sa napr. delia o jeden PC a preto ma nastavenia aktualnej verzie phpRS viac menej len obmedzuju - samozrejme vyborne je ze sa to vsetko da nastavit v configu, ale takato volba (len registrovany) mi tu chyba :(
Je teda mozne nejakou upravou zakazat hlasovanie, resp. povolit ho len pre registrovanych?

PS: Som naozaj uplny zaciatocnik v php aj v databazach, budem Vam velmi vdacny ak na to zoberiete ohlad :)

Dakujem

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: zdenekh (IP adresa zaznamenána)
Datum: 2007-12-27, 14:42

Zdá se, že to tu ve foru ještě není nahozeno (a nebo nemám dnes při hledání svůj den;), tak jsem tu úpravu zplácal a tu je. Aspoň jsem si trošku procvičil mozek, místo neustálého plnění žaludku cukrovím:D

Otevři si soubor ankety.php. V něm si najdi (ve funkci ZobrazHlasAnketu) řádek 201 a několik následujících, je na nich následující kód:

if ($checked_prvni_pol==0):
      echo "<input type=\"radio\" name=\"hlas\" value=\"".$pole_data["ido"]."\" checked /> ";
      $checked_prvni_pol=1;
    else:
      echo "<input type=\"radio\" name=\"hlas\" value=\"".$pole_data["ido"]."\" /> ";
    endif;


a uprav to na následující (zaměň tímto):
if ($GLOBALS["prmyctenar"]->ctenarstav==1): //kontrola na přihlášení čtenáře
if ($checked_prvni_pol==0):
      echo "<input type=\"radio\" name=\"hlas\" value=\"".$pole_data["ido"]."\" checked /> ";
      $checked_prvni_pol=1;
    else:
      echo "<input type=\"radio\" name=\"hlas\" value=\"".$pole_data["ido"]."\" /> ";
    endif;
endif;


Pak o pár řádků níže si najdi toto:
// navrat na prehled vsech anket
echo "<p align=\"center\" class=\"z\"><a href=\"ankety.php\">".RS_AN_ZOBRAZ_VSE."</a></p>\n";
echo "<p></p>\n";


a vlož před to toto:
if ($GLOBALS["prmyctenar"]->ctenarstav!=1): //kontrola na přihlášení čtenáře
echo "<p align=\"center\" class=\"z\">".RS_AN_TREBA_REG."</p>\n";
endif;


Nakonec do slovníkového souboru sl_sk.php (popř. i do českého sl_cz.php) ve složce lang do části slovníkových definic pro ankety přidej tohle (přelož si to):
define('RS_AN_TREBA_REG','Hlasovat mohou jen registrovaní čtenáři! Prosím, přihlašte se!');


Dále je třeba upravit soubor spefce.php, kde se generuje blok s anketou a související ankety do článků (pro ty, co to používají).

Pro související ankety si najdi funkci function SouvisejiciAnketyCl() a úprava je téměř totožná viz. výše.

U bloku anket si najdi funkci Ankety() a najdi si tento řádek (zhruba 67):

$txt_anketa.="<input type=\"radio\" name=\"hlas\" value=\"".$akt_pole_data["ido"]."\">".$akt_pole_data["odpoved"]."&nbsp;(".$akt_pole_data["pocitadlo"]."&nbsp;".RS_SP_POCET_HLA.")<br />\n";


A ten nahraď tímto:
if ($GLOBALS["prmyctenar"]->ctenarstav==1): //kontrola na přihlášení čtenáře
$txt_anketa.="<input type=\"radio\" name=\"hlas\" value=\"".$akt_pole_data["ido"]."\">".$akt_pole_data["odpoved"]."&nbsp;(".$akt_pole_data["pocitadlo"]."&nbsp;".RS_SP_POCET_HLA.")<br />\n";
else: //čtenář není přihlášen, nemůže hlasovat
$txt_anketa.=$akt_pole_data["odpoved"]."&nbsp;(".$akt_pole_data["pocitadlo"]."&nbsp;".RS_SP_POCET_HLA.")<br />\n";
$txt_anketa.="Hlasovat mohou jen přihlášení čtenáři."; //tento řádek záleží jen na tobě, jestli ho tam dáš, lze to podobně jako viz. výše přidat do slovníkového souboru
endif;


Mělo by to snad fungovat, jakžtakž jsem to odzkoušel, tak snad tam není chyba. Určitě sem dej vědět, eslti je to OK.

T. O. Severka Děčín | New r.č. | Old Good Tom | Jinak už v tom nefrčím... :-)

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: intranet (IP adresa zaznamenána)
Datum: 2007-12-27, 14:49

OK, velmi pekne dakujem, idem to skusit upravit, potom napisem.

//edit: nedostal som sa dnes k tomu, hadam zajtra....urcite to vyskusam, kedze to potrebujem, potom dam vediet :)



Celkem upraveno 1×. Poslední úprava intranet v 27.12.2007 16:28.

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-12-27, 20:38

Pozor, to že sa hlasovanie obmedzí len na registrovaných, ešte neznamená, že jeden registrovaný user nemôže po vymazaní patričnej cookie hlasovať viackrát. Ak to má byť nepriestrelné, treba ukladať kto z čitateľov už hlasoval a pri pokuse o hlasovanie to kontrolovať. Niekde sa tu myslím riešila aj takáto kontrola pomocou samostatnej tabuľky.



Celkem upraveno 1×. Poslední úprava pa3k v 27.12.2007 20:39.

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: intranet (IP adresa zaznamenána)
Datum: 2007-12-28, 11:51

Najprv sa este raz podakujem a aj upresnim preco to chcem riesit takymto sposobom. Mal by to byt intranet, na ktory budu mat pristup len zamestnanci. Predpokladam ze sa ich tam zo vsetkych zaregistruje max. tak cca. 100-150 (mozno menej). Problem je tu ten, ze na jednom PC sa pocas sluzieb vymenia jeden-piati, no a keby chceli hlasovat s obmedzeniami, ktore su v phpRS standardne nastavene, tak by to bol problem. Este som az tak uplne do podrobna neprebadal cookies, ako co nastavit, resp. povolit., ale ak niekto vie "z fleku", tak mi prosim poradte kde/ako odstranit/zmenit blokovanie opakovaneho hlasovania z jednej IP, najlepsie na blokovanie opakovania na registrovaneho uzivatela. V config.php mam totiz nastavenu moznost hlasovat viac krat z jednej IP, konkretne:

$GLOBALS['rsconfig']['anketa_max_pocet_opak']=10;
$GLOBALS['rsconfig']['anketa_delka_omezeni']=3600;

no nepusti ma iba 1x (skusil som hlasovat jednym uzivatelom - odhlasenie, prihlasenie druheho na tom istom PC a hlasovanie mi uz nepovoli).

Prva cast je z tu navrhnutej zmeny od zdenekh funkcna, t. j. do ankety moze zahlasovat len prihlaseny uzivatel.
Mam ale problem s druhou castou, resp. upravou suboru spefce.php .... co znamena nasl.?, citujem:

"Pro související ankety si najdi funkci function SouvisejiciAnketyCl() a úprava je téměř totožná viz. výše."

Berte to prosim tak, ze som z toho magor :(
Urobil som nejake upravy, ale nasledne vidim len hlasku:

"Parse error: syntax error, unexpected T_STRING in /var/www/localhost/htdocs/specfce.php on line 68"

no a ako pozeram na tu lajnu 68, tak na nu pozeram, nemam sajnu co je to tam za chyba, nevidim tam ani nic chybajuce, ani nic naviac....skor si myslim ze nerobim dobre tu upravu....ja to mam v spefce.php totiz trosku inac.

.... 1. cast z originalu ....
function SouvisejiciAnketyCl($id_anketa = 0, $navratova_url = '')
{
$id_anketa=phprs_sql_escape_string($id_anketa); // bezpecnostni korekce

// zjisteni anketni otazky
$dotazotazka=phprs_sql_query("select otazka,zobrazit,uzavrena from ".$GLOBALS["rspredpona"]."ankety where ida='".$id_anketa."'",$GLOBALS["dbspojeni"]);
if ($dotazotazka!=0&&phprs_sql_num_rows($dotazotazka)==1):
$akt_pole_anketa=phprs_sql_fetch_assoc($dotazotazka); // nacteni ankety
else:
$akt_pole_anketa['zobrazit']=0; // chyba - anketa nenalezena
endif;

.... 2. cast z originalu ....
$txt_anketa="<div class=\"anketa-blok-z\">".$ankotazka."</div><br />\n";
$txt_anketa.="<div class=\"anketa-blok-odpovedi\">\n";
while($akt_pole_data = phprs_sql_fetch_assoc($dotazodp)):
$velikost=ceil($jednoproc*$akt_pole_data["pocitadlo"]);
$txt_anketa.="<a href=\"ankety.php?akce=hlasuj&amp;hlas=".$akt_pole_data["ido"]."&amp;cil=".$GLOBALS['rsconfig']['anketa_cil_str']."&amp;anketa=".$zjistanketa."\">".$akt_pole_data["odpoved"]."</a>&nbsp;(".$akt_pole_data["pocitadlo"]."&nbsp;".RS_SP_POCET_HLA.")<br />\n";
// pruh generovany skrze PHP skript (GD knihovna)
//$txt_anketa.="<img src=\"pictures.php?rvel=".$velikost."&amp;barva=".$barva_prouzku."\" height=\"8\" width=\"".$velikost."\" alt=\"".$akt_pole_data["pocitadlo"]."\" /> (".$akt_pole_data["pocitadlo"]." ".RS_SP_POCET_HLA.")<br />\n";
// pruh generovany skrze CSS styly
$txt_anketa.="<div class=\"anketa-blok-odp-cara\"><div class=\"anketa-blok-odp-cara-hlasy\" style=\"width: ".$velikost."px;\" title=\"".$akt_pole_data["pocitadlo"]."\">&nbsp;</div></div>\n";
$barva_prouzku++;
endwhile;
$txt_anketa.="</div><br />\n";
$txt_anketa.="<div align=\"center\" class=\"anketa-blok-z\">".RS_SP_CELKEM_HLA.": ".$celkemhlasu."</div>\n";

// zobrazeni menu

tak keby som vas mohol poprosit o pomoc, uz vopred dakujem.

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-12-28, 13:22

Citace:

$GLOBALS['rsconfig']['anketa_max_pocet_opak']=10;
$GLOBALS['rsconfig']['anketa_delka_omezeni']=3600;

no nepusti ma iba 1x (skusil som hlasovat jednym uzivatelom - odhlasenie, prihlasenie druheho na tom istom PC a hlasovanie mi uz nepovoli).


To je práve dané kontrolou pomocou cookies. Ak by mal návštevník vlastný účet na PC alebo aspoň vlastný profil v prehliadači, tento problém by si nemal. Dá sa to obísť upravením funkcie AnkCookies_UlozAnk (ankety.php) tak aby u registrovaných neukladala cookie, no zruší sa tým ochrana pred viacnásobným hlasovaním. Najlepšie riešenie je to, ktoré som spomínal vyššie - napísať si vlastnú kontrolu hlasovania pre registrovaných pomocou samostatnej tabuľky.

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: Fury (IP adresa zaznamenána)
Datum: 2008-07-24, 07:59

Předpokládám, že ten navod od zdenekh na úpravu pro hlasování registrovaných čtenářů je pouze pro phprs 2.8.x, protože já onen přepisovaný kód ve svém souboru ankety.php v phprs 2.6.5 nemám. Nemohl by někdo prosím napsat tuto úpravu i pro phprs 2.6.5?

Děkuji

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: zdenekh (IP adresa zaznamenána)
Datum: 2008-07-24, 08:29

Kód je sice jinej, ale postup bude podobný. Zkus se tím prokousat, třeba to zmákneš;)

T. O. Severka Děčín | New r.č. | Old Good Tom | Jinak už v tom nefrčím... :-)

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: Fury (IP adresa zaznamenána)
Datum: 2008-07-27, 10:40

No právě, nezmáknu, jinak bych sem přeci nepsal :-)
Byl bys prosím tak hodný a postnul to sem?
Thx

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: Fury (IP adresa zaznamenána)
Datum: 2008-08-09, 16:47

Tak mi nikdo nepomůže?

Re: Hlasování pouze pro registrované
Zaslán uživatelem/kou: (IP adresa zaznamenána)
Datum: 2011-07-06, 11:05

Nechápu to, když budu mazat historii např. v Firefox bez zavření prohlížeče můžu hlasovat ostošest. To fakt není nějaká možnost jak tohle zakázat? Zatím jsem tady nic nenašel a přitom na některých webech ti nedělá.



Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.