PDA

Bekijk Volledige Versie : Script dat >1 stemmen voorkomt in enquete



Frans
30/11/06, 21:38
Beste mensen,

Na lang zoeken heb ik uiteindelijk een zgn "Survey script" gevonden waarmee
ik een enquête kan bouwen. (phpESP)

Ik kom er nu achter dat er geen functie inzit dat meer dan 1 x stemmen moet
voorkomen. (via IP of zo)

Zijn er mogelijkheden om op een "eenvoudige" wijze een script in te bouwen
dat dit kan voorkomen?

Wie wil mij op weg helpen?

Mvrgr,
Frans

Erick T. Barkhuis
30/11/06, 21:38
Frans:

> Na lang zoeken heb ik uiteindelijk een zgn "Survey script" gevonden waarmee
> ik een enquête kan bouwen. (phpESP)
>
> Ik kom er nu achter dat er geen functie inzit dat meer dan 1 x stemmen moet
> voorkomen. (via IP of zo)

Zoek de plek in het script waar de uitgebrachte stem wordt opgeslagen.

Voor die plek voeg je toe:
- ophalen IP-adres
$ip = ($_SERVER['HTTP_X_FORWARDED_FOR'])
? $_SERVER['HTTP_X_FORWARDED_FOR']
: $_SERVER['REMOTE_ADDR'];

- ophalen stemmersbestand
$stemmen = file('stemmerbestand.txt');

- vergelijken
$ipn = $ip."\n";
if (in_array($ipn,$stemmen)) echo "Reeds gestemd!";


Na die plek voeg je toe:
- IP-adres in stemmersbestand plaatsen
$fp=fopen('stemmerbestand.txt',"a");
fwrite($fp,$ipn);
fclose($fp);

Wil je liever met een databasetabel werken om de IP-nummers op te slaan
en terug te lezen, dan voeg je natuurlijk hierboven de connectie en de
query in, en verwijder je het lezen/schrijven van het sequentiele
bestand.

Realiseer je, dat op die manier stemmen door meerdere leden van 1 gezin
op dezelfde PC wordt voorkomen, en mogelijk zelfs het stemmen van
meerdere van de duizenden medewerkers die vanuit hetzelfde
bedrijfsnetwerk websurfen.
Het is maar de vraag of je dat wilt.

--
Erick

"An error doesn't become a mistake until you choose to ignore it."

Frans
30/11/06, 21:38
"Erick T. Barkhuis" <erick.use-net@ardane.c-o-m> schreef in bericht
news:MPG.1fce20d7bd58d4b998a33a@news.individual.ne t...
> Frans:
>
>> Na lang zoeken heb ik uiteindelijk een zgn "Survey script" gevonden
>> waarmee
>> ik een enquête kan bouwen. (phpESP)
>>
>> Ik kom er nu achter dat er geen functie inzit dat meer dan 1 x stemmen
>> moet
>> voorkomen. (via IP of zo)
>
> Zoek de plek in het script waar de uitgebrachte stem wordt opgeslagen.
>
> Voor die plek voeg je toe:
> - ophalen IP-adres
> $ip = ($_SERVER['HTTP_X_FORWARDED_FOR'])
> ? $_SERVER['HTTP_X_FORWARDED_FOR']
> : $_SERVER['REMOTE_ADDR'];
>
> - ophalen stemmersbestand
> $stemmen = file('stemmerbestand.txt');
>
> - vergelijken
> $ipn = $ip."\n";
> if (in_array($ipn,$stemmen)) echo "Reeds gestemd!";
>
>
> Na die plek voeg je toe:
> - IP-adres in stemmersbestand plaatsen
> $fp=fopen('stemmerbestand.txt',"a");
> fwrite($fp,$ipn);
> fclose($fp);
>
> Wil je liever met een databasetabel werken om de IP-nummers op te slaan
> en terug te lezen, dan voeg je natuurlijk hierboven de connectie en de
> query in, en verwijder je het lezen/schrijven van het sequentiele
> bestand.
>
> Realiseer je, dat op die manier stemmen door meerdere leden van 1 gezin
> op dezelfde PC wordt voorkomen, en mogelijk zelfs het stemmen van
> meerdere van de duizenden medewerkers die vanuit hetzelfde
> bedrijfsnetwerk websurfen.
> Het is maar de vraag of je dat wilt.
>


Erik, vriendelijk bedankt voor je reactie en aangedragen oplossing.
Nu is het zo dat dit een enquête is voor een beperkte groep (kleine
sportvereniging) en de impact van dubbel stemmen beperkt blijft tot "onnozel
stemgedrag" .
Misschien moet ik daarom maar denken een een zgn tijdrestrictie tussen twee
stemmomenten van 1 IP-adres of zo. Alleen, en nu val ik door de mand...,
weet ik even niet
hoe dit nu in een "eenvoudige" php-opdracht gegoten moet worden. Ik zou het
op prijs stellen indien je mij daar een beetje mee op weg zou willen helpen.
Denk niet dat ik aan de kant blijf staan maar dit door "trail and error" wil
leren.

Mvrgr,
Frans

Erick T. Barkhuis
30/11/06, 21:38
Frans:

> Misschien moet ik daarom maar denken een een zgn tijdrestrictie tussen twee
> stemmomenten van 1 IP-adres of zo. Alleen, en nu val ik door de mand...,
> weet ik even niet
> hoe dit nu in een "eenvoudige" php-opdracht gegoten moet worden.

Zo heel eenvoudig is dat niet, omdat je eerst moet bepalen hoe je het
tijdmoment zou willen opslaan.
Mogelijkheden zijn:
- in het zelfde bestand als eerder genoemd
- in een database
- in een cookie op de client

Kies je voor de eerste optie, dan moet je de geschreven regel met IP-
adres uitbreiden met een separator en een datum/tijd-gegeven,
dus

$regel = $ipn."|".time();
fwrite($fp,$regel);

Het uitvragen wordt dan wat lastiger, omdat je eerst in de verkregen
array de regels moet splitsen (lees http://de3.php.net/split),
de juiste array-entry moet vinden bij IP-adres, en vervolgens de huidige
tijd met de bij dat IP-adres opgeslagen tijd moet vergelijken.

Maak je het helemaal mooi, dan doe je dat voordat het formulier wordt
gezonden eveneens, zodat je de verzendknop disabled kunt maken.


--
Erick

"Mobile phones are the only subject on which men boast about who's got
the smallest" - Neil Kinnock

Juliette
30/11/06, 21:38
Frans wrote:
> Beste mensen,
>
> Na lang zoeken heb ik uiteindelijk een zgn "Survey script" gevonden waarmee
> ik een enquête kan bouwen. (phpESP)
>
> Ik kom er nu achter dat er geen functie inzit dat meer dan 1 x stemmen moet
> voorkomen. (via IP of zo)
>
> Zijn er mogelijkheden om op een "eenvoudige" wijze een script in te bouwen
> dat dit kan voorkomen?
>
> Wie wil mij op weg helpen?
>
> Mvrgr,
> Frans
>
>

Je zou natuurlijk phpsurveyor ( www.phpsurveyor.org ) kunnen gebruiken -
als ik me goed herinner zit daar wel die mogelijkheid in.

Frans
30/11/06, 21:38
"Juliette" <jrf_no_spam@jokeaday.net> schreef in bericht
news:4564fc1c$0$2034$dbd43001@news.wanadoo.nl...
> Frans wrote:
>> Beste mensen,
>>
>> Na lang zoeken heb ik uiteindelijk een zgn "Survey script" gevonden
>> waarmee ik een enquête kan bouwen. (phpESP)
>>
>> Ik kom er nu achter dat er geen functie inzit dat meer dan 1 x stemmen
>> moet voorkomen. (via IP of zo)
>>
>> Zijn er mogelijkheden om op een "eenvoudige" wijze een script in te
>> bouwen dat dit kan voorkomen?
>>
>> Wie wil mij op weg helpen?
>>
>> Mvrgr,
>> Frans
>
> Je zou natuurlijk phpsurveyor ( www.phpsurveyor.org ) kunnen gebruiken -
> als ik me goed herinner zit daar wel die mogelijkheid in.

Hoi Juliette,

Vriendelijk bedankt voor je link. Dat lijkt mij een zeer goed bruikbaar
concept. Bedank!

mvrgr,
Frans