(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi |
|
Alati teme | Način prikaza |
|
08. 12. 2010. | #1 |
profesionalac
Professional
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
|
Jednostavna Ajax anketa
Pozdrav svima. Prepravljam neki jednostavnu aknetu tako da glasati mogu oni sa jedinstvenim posjetama, tj ako je neko vec glasao da ne moze glasati dok mu se ne promeni IP adresa. Odmah na vrhu sam zapoceo da dohvatam IP adrese posetilaca i da ih stavljam u jedan niz. Posle svake IP dodajem neki znak | da bih kasnije mogao da skontam gde je kraj jedne IP adrese. E sad bih trebao nekako da prodjem kroz ovaj niz, da proverim da li IP posetioca vec ima u fajlu voters.txt i ako ima da mi samo stampam rezultat a ako ne da mu prikazem anketu da glasa, ali mi nesto ne ide. Ne znam jesam cak i ovo dobro napisao.Evo skripte:
Kôd:
<?php $vote = $_REQUEST['vote']; //Hvatanje IP adresa $imefajla="voters.txt" $ip = $_SERVER['REMOTE_ADDR']; $users[]=$ip; $fp= fopen($imefajla,"w"); fputs($fp, $users[],"|"); //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); ?> <h2>Result:</h2> <table> <tr> <td>Yes:</td> <td> <img src="poll.gif" width='<?php echo(100*round($yes/($no+$yes),2)); ?>' height='20'> <?php echo(100*round($yes/($no+$yes),2)); ?>% </td> </tr> <tr> <td>No:</td> <td> <img src="poll.gif" width='<?php echo(100*round($no/($no+$yes),2)); ?>' height='20'> <?php echo(100*round($no/($no+$yes),2)); ?>% </td> </tr> </table> |
08. 12. 2010. | #2 |
expert
Grand Master
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
|
Idi preko SQL baze ovako se bezveze mučiš...
|
08. 12. 2010. | #3 |
expert
Grand Master
|
ukoliko nemas instaliran server za bazu podataka, razmotri http://www.php.net/manual/en/book.sqlite.php
|
08. 12. 2010. | #4 |
profesionalac
Professional
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
|
Nemam pristup bazi uopste zato sam mislio da to resim pomocu fajlova.
|
09. 12. 2010. | #5 |
profesionalac
Professional
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
|
Evo kako sam resio deo problema:
poll_vote.php Kôd:
<?php $vote = $_REQUEST['vote']; //Hvatanje IP adresa i upis u datoteku if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } $imefajla="voters.txt"; $fp= fopen($imefajla,"w"); fputs($fp, $ip."\n"); //get content $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); ?> <h2>Result:</h2> <table> <tr> <td>Yes:</td> <td> <img src="poll.gif" width=' <?php echo(100*round($yes/($no+$yes),2)); ?>' height='20'> <?php echo(100*round($yes/($no+$yes),2)); ?>% </td> </tr> <tr> <td>No:</td> <td> <img src="poll.gif" width='<?php echo(100*round($no/($no+$yes),2)); ?>' height='20'> <?php echo(100*round($no/($no+$yes),2)); ?>% </td> </tr> </table> anketa.php Kôd:
<html> <head> <script type="text/javascript" src="poll.js"></script> </head> <body> <?php //Hvatanje IP adrese if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $IP=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) $IP=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $IP=$_SERVER['REMOTE_ADDR']; } $fp = fopen("voters.txt",'r'); while (!feof($fp)) { //OVAJ DEO NE RADI,TJ TREBA OBEZBEDITI KADA JE OVAJ USLOV ISPUNJEN DA SE STAMPA KOMENTAR 'Vec ste glasali' I REZULTAT ANKETE U SUPROTNOM DA SE STAMPA ANKETA ZA GLASANJE $ip=fgets($fp); if($IP=$ip) { echo'Vec ste glasali <p>'; } if($IP!=$ip) { echo''; } } ?> <div id="poll"> <h3>Do you like PHP and AJAX so far?</h3> <form> Yes: <input type="radio" name="vote" value="0" onclick="getVote(this.value)" /> <br />No: <input type="radio" name="vote" value="1" onclick="getVote(this.value)" /> </form> </div> </body> </html> |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
anketa | mirko | Sva početnička pitanja | 21 | 18. 12. 2007. 10:20 |
Anketa - Koga bi USA trebalo bombardovati | dinke | Opušteno | 7 | 26. 09. 2006. 17:24 |
[anketa] Naslovi.net vs B92.net | mungos | Opušteno | 45 | 20. 03. 2006. 12:12 |
Ajax Mistakes a.k.a kad ne treba da koristite Ajax | nixa | Planiranje i usability | 7 | 13. 02. 2006. 17:20 |
Php i anketa | [nq] | PHP | 8 | 10. 09. 2005. 14:44 |