Kezdőoldal » Számítástechnika » Weblapkészítés » Van egy szavazó scriptem,...

Van egy szavazó scriptem, aminek Yes vagy No-val lehet szavazni. Beszeretnék iktatni még egy Nem tudom -ot is, csak nem tudom megcsinálni, hogy kell?

Figyelt kérdés

A kódok:


szavazo.php:



<html>

<head>

<script>


function renderVote()

{

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else

{// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)

{

document.getElementById("poll").innerHTML=xmlhttp.responseText;

}

}

xmlhttp.open("GET","poll_vote.php?eredmenyek=1" ,true);

xmlhttp.send();

}

function getVote(int)

{

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else

{// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)

{

document.getElementById("poll").innerHTML=xmlhttp.responseText;

renderVote(); // miután leadta a szavazást, kinéz a szavazatokért!

}

}

xmlhttp.open("GET","poll_vote.php?szavaz=1&vote="+int,true);

xmlhttp.send();

}

</script>

</head>

<body onload="renderVote()">


<div id="poll">

<h3>Kérdés</h3>

<form>


<?php

if(isset( $_COOKIE["szavazott"]))

{

echo 'Nem szavazhat még! Várj 1 órát!';

}

else

{

echo 'Igen:

<input type="radio" name="vote" value="0" onclick="getVote(this.value)">

Nem:

<input type="radio" name="vote" value="1" onclick="getVote(this.value)">

';

}

?>

</form>

</div>


</body>

</html>


poll_vote.php:



<?php

if (isset($_GET["szavaz"])) {

$vote = $_REQUEST['vote'];

// get content of textfile

$filename = "poll_result.txt";

$content = file($filename);

// put content in array

$array = explode("||", $content[0]);

$yes = $array[0];

$no = $array[1];


if ($vote == 0) {

$yes = $yes + 1;

}

if ($vote == 1) {

$no = $no + 1;

}

// insert votes to txt file

$insertvote = $yes . "||" . $no;

$fp = fopen($filename, "w");

fputs($fp, $insertvote);

fclose($fp);

setcookie("szavazott", time() , time() + 3600);

/* egy órán át nem tud szavarzi */

}


if (isset($_GET["eredmenyek"]) AND isset($_COOKIE["szavazott"])) {

// get content of textfile

$filename = "poll_result.txt";

$content = file($filename);

// put content in array

$array = explode("||", $content[0]);

$yes = $array[0];

$no = $array[1];


if ($vote == 0) {

$yes = $yes + 1;

}

if ($vote == 1) {

$no = $no + 1;

}


?>


<h2>Result:</h2>

<table>

<tr>

<td>Yes:</td>

<td>

<?php echo(100 * round($yes / ($no + $yes), 2)); ?>%

</td>

</tr>

<tr>

<td>No:</td>

<td>

<?php echo(100 * round($no / ($no + $yes), 2)); ?>%

</td>

</tr>

</table>

<?php

}


?>



2013. szept. 6. 15:12
 1/5 anonim ***** válasza:
nem tudom
2013. szept. 6. 17:21
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:

1.) ez egy nagyon alap script, gyakorlatilag az ajaxos része w3school-ról származik azt megismerem

2.) általában szavazásnál nem fájlba hanem adatbázisba mentenek.

3. Egyébként meg annyit kell csinálni, hogy fogod beteszel egy button-t, vagy amit szeretnél és ugyanúgy elmented,vagy beteszed az adatbázisba annak értékét, a no és a yes-en kívül.

3. Gondolom még életedben nem programoztál, azért nem tudod megcsinálni...

2013. szept. 6. 17:45
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:

szavazo.php

...

Nem:

<input type="radio" name="vote" value="1" onclick="getVote(this.value)">

Nem tudom:

<input type="radio" name="vote" value="2" onclick="getVote(this.value)">

';


lejebb:

poll_vote.php


$vote = $_REQUEST['vote']; --> $_GET['vote'];

a fájlodba csinálsz egy harmadik oszlopot (23||40||0)

$donno = $array[2];


if ($vote == 2) {

$donno = $donno + 1;

}


legvégén

<td>Yes:</td>

<td>

<?php echo(100 * round($yes / ($no + $yes + $donno), 2)); ?>%

...



Ha letörlöm a kukim, akkor nem kell várnom egy órát. Inkább adatbázisba mentsed ezeket, és mondjuk -ha akárki szavazhat- az ip-t lemented és a szavazat értékét(0-1-2) és a dátumot. Ha az adott ip-vel nem szavazott az elmúlt órában, akkor szavazhat. Sokkal nehezebb kijátszani (.. :D a lényeg, hogy kevesebben, és lassabban).

2013. szept. 6. 17:46
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

Annyit tennék még hozzá, hogy a szavazásnál az, hogy beleteszed a szavazott stringet egy cookie-ba és utána leellenörzöd létezik-e, és ez alapján döntöd el a szavazhat-e vagy sem, az nagyon gáz, ugyanis, ha akarom percenként 30 szor törlöm ki azt a cookie-kat így percenként ennyiszer szavazhatok.

Egy normális -biztonságos- szavazóscript legalább ip címenként ellenőrzi, hogy ki hányszor szavazott már, akkor ha valaki véletlenül belenyúlna a fájlodba, akkor azzal nem csak csalni lehetne.

Tehát biztonsági szempontból sem ér sokat a scripted.

2013. szept. 6. 17:56
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:

#3 nézd, most ez van, mostmár a betöltés se jó :)

Megha rámegyek a donno-ra, akkor nem százalékolja ki, a másik nak számolja a tippet.

2013. szept. 7. 19:02

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!