.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
.39
.40
.41
.42
.43
.44
.45
.46
.47
.48
.49
.50
.51
.52
.53
.54
.55
.56
.57
.58
.59
.60
.61
.62
.63
.64
.65
.66
.67
.68
.69
.70
.71
.72
.73
.74
.75
.76
.77
.78
.79
.80
.81
.82
.83
.84
.85
.86
.87
.88
.89
.90
.91
.92
.93
.94
.95
.96
.97
.98
.99
.100
.101
.102
.103
.104
.105
.106
.107
.108
.109
.110
.111
.112
.113
.114
.115
.116
.117
.118
.119
.120
.121
.122
.123
.124
.125
.126
.127
.128
.129
.130
.131
.132
.133
.134
.135
.136
.137
.138
.139
.140
.141
.142
.143
.144
.145
.146
.147
.148
.149
.150
.151
.152
.153
.154
.155
.156
.157
.158
.159
.160
.161
.162
.163
.164
.165
.166
.167
.168
.169
.170
.171
.172
.173
.174
.175
.176
.177
.178
.179
.180
.181
.182
.183
.184
.185
.186
.187
.188
.189
.190
.191
.192
.193
.194
.195
.196
.197
.198
.199
.200
.201
.202
|
|
<?php
/******************************************************************************/
/* */
/* ___ ____ */
/* / _ \___ _ __|_ / __ */
/* / // / -_) |/ //_ < |/|/ / */
/* /____/\__/|___/____/__,__/ */
/* */
/* */
/******************************************************************************/
/* */
/* Titre : Sondage pour faire voter vos visiteurs */
/* */
/* URL : http://www.dev3w.com/scripts9-PHP.htm */
/* Auteur : kof_eve */
/* Date édition : 23 Avril 2009 */
/* */
/******************************************************************************/
?>
?>
//================= Notre Table ====================
--
-- Structure de la table `vote`
--
CREATE TABLE `vote` (
`id` smallint(10) unsigned NOT NULL auto_increment,
`titre` tinytext NOT NULL,
`reponse` smallint(1) NOT NULL default '0',
`ip` varchar(15) NOT NULL default '',
`unix` varchar(25) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
//================== Notre Page ===================
<html>
<head>
<title>Sondage</title>
</head>
<body>
<?php
$sql_serveur = "localhost"; // Serveur mySQL
$sql_base = "base"; // Base de donnees mySQL
$sql_login = "root"; // Login de connection a mySQL
$sql_password = ""; // Mot de passe pour mySQL
@mysql_connect($sql_serveur, $sql_login, $sql_password) or die(
"Connection interrompue");
@mysql_select_db($sql_base);
$ip = $_SERVER['REMOTE_ADDR']; // récupere l'ip de visiteur.
$unix = time(); // temps actuel.
$temps = time()-3600; // le temps y'as maintenant une heure.
//on demande a notre table de nous donné tous les ip qui ressemble a l'ip de
// notre visiteur actuel, et qui ne sont pas
//daté de plus d'une heure.
$verifier = "SELECT ip FROM vote WHERE ip='$ip' AND unix > '$temps'";
$voter = mysql_query($verifier,$connection);
if(@mysql_num_rows($voter)!='0'){
//Si oui, ca veut dire que notre visiteur a déja voté, on lui affiche alors un
// message de remerciments, et les résultats.
echo
'<p style="font-size:20px;text-align:center;color:#660000"><strong>Merci' .
' d\'avoir voté !</strong></p>';
$sql = "SELECT reponse FROM vote WHERE titre='lieu_de_championat'";
//on récupere le résultat des anciens votes.
$result = mysql_query($sql , $connection);
while($resultat = mysql_fetch_array($result)) {
$cadre[] = $resultat['reponse'];
//on récupere le résultat de notre requête, et on le stocke dans un tableau.
}
//on stocke le total du vote dans une variable "$totalvote" via la méthode
// "count" qui parcourt tout notre tableau.
$totalvote= count($cadre);
//on stocke le nombre de chaque choix dans un tableau avec la méthode
// "array_count_values" .. qui retourne par exmple.
//$array = array(1, "tyty", 1, "slt", "tyty"); array_count_values($array);
// retourne array(1=>2, "tyty"=>2, "slt"=>1)
$totalreponse = array_count_values($cadre);
//Maintenant on calcule le pourcentage de nos votes selon la régle universel
// pour ca ^^ "p = chifre x 100 / total".
//pour ca on utilise "bcdiv" qui divise et renvoie le résultat sous forme de
// chaîne de caractères.(en plus qu'on peut la fixé comme içi à 2 chiffres
// après
// la virgule). sinon on aura parfois des pourcentage genre 65.2323232323% et
// c'est pas beau >_<
$reponse1 = bcdiv($totalreponse[1]*100, $totalvote, 2);
$reponse2 = bcdiv($totalreponse[2]*100, $totalvote, 2);
$reponse3 = bcdiv($totalreponse[3]*100, $totalvote, 2);
$reponse4 = bcdiv($totalreponse[4]*100, $totalvote, 2);
//pour l'affichage on utilise une petite function ^^ .. Prenez le temps de la
// comprendre, c'est facile.
function VerifText($text,$valeur,$reponse,$totaldesreponse){
if ($text < '1'){
// on teste si le total des votes est moins qu'un, alors, on n'affiche pas
// d'image, et on met "0" comme valeur du vote
$text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
'% <strong>0</strong> vote.<br />';
}
if ($text == '1'){
// on teste si le total des votes est égal a 1, alors, on affiche l'image de la
// barre avec comme valeur de Width, "la variable du pourcentage", et on met la
// "valeur du vote".
$text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
'% <img src="barre.gif" alt="chargement impossible" height="5" width="'.
$reponse.'" /> <strong>'.$totaldesreponse.'</strong> vote.<br />';
}
if ($text > '1'){
// on teste si le total des votes est plus grand que 1, alors, on affiche
// l'image de la barre avec comme valeur de Width, "la variable du
// pourcentage",
// et on met la "valeur du vote" avec une "s" a la fin cette fois. c tt
$text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
'% <img src="barre.gif" alt="chargement impossible" height="5" width="'.
$reponse.'" /> <strong>'.$totaldesreponse.'</strong> votes.<br />';
}
return $text1;
}
//la on affiche notre function avec ces nouveaux paramètres.
//VerifText($_variable_du_total_du_vote , 'Valeur a affiché dans notre page' ,
// $_variable_de_notre_pourcentage , $_variable_du_total_du_vote);
//ce qui donne quelque chose comme ça.
echo VerifText($totalreponse[1],'valeur 1',$reponse1,$totalreponse[1]).
VerifText($totalreponse[2],'valeur 2',$reponse2,$totalreponse[2]). VerifText(
$totalreponse[3],'valeur 3',$reponse3,$totalreponse[3]).VerifText($totalreponse[
4],'valeur 4',$reponse4,$totalreponse[4]);
echo '<strong> Total votes : </strong>'.$totalvote.'<br /><br /><br />';
//on répète notre function n fois nos choix avec une "." Pour la concaténation
// , et une autre echo pour le total des votes.
}else{
//Si non, ça veut dire que notre visiteur n'as pas encore voté, on lui affiche
// le formulaire avec les choix.
echo 'Quelle Valeur souhaité vous ? <br /><br />';
echo
'<form method="POST" action="vote.php?vote=ok"><div><input class="zonetext"' .
' type="radio" value="1" name="choix" /> - Valeur 1<br /><input class="zonetex'
.
't" type="radio" value="2" name="choix" /> - Valeur 2<br /><input class="zonet'
.
'ext" type="radio" value="3" name="choix" /> - Valeur 3<br /><input class="zon'
.
'etext" type="radio" value="4" name="choix" /> - Valeur 4<br /><input class="z'
.
'onetext" type="submit" value=" Ok ! " /></div></form>';
}
// Enregistrement du vote dans la table si le vote est diffèrent de "0" , ce
// qui
// veux dire que le gars a validé le formulaire sans prendre un choix.
// Et si la variable "vote" récupéré par la méthode $_GET et égal a "ok", ce
// qui
// veut dire que c'est le formulaire qui as envoyé cette page, pas un simple
// lien.
if ($_GET[vote]=='ok' & $_POST[choix]!=){
$enregistrer =
"INSERT vote SET id='', titre='lieu_de_championat', reponse='$_POST[choix]'," .
" ip='$ip', unix='$unix'";
mysql_query ($enregistrer, $connection);
header("Location: vote.php"); //la on ré-actualise notre page..
}
// Et voila c'est fini.
?>
</body>
</html>
|