[913]
Messages postés2Date d'inscriptionlundi 2 janvier 2012StatutMembreDernière intervention12 janvier 2012
-
2 janv. 2012 à 18:29
Bonjour à tous !
étant débutant en php j'ai besoin d'une petite aide pour un probleme.
j'ai ce message d'erreur qui apparait:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/142/sda/5/8/sondage.class.php on line 4
voici mon code :
<?php
class Sondage
{
public $Question = "" ;//Question du sondage la ligne ou il y a l'erreur public $Choix = array() ;//Contient les différents choix possibles du sondage
public $DejaVote = false;//True si le visiteur a déjà voté, false (par défaut) sinon
public $ListeIp = array() ;//Contient l'IP des visiteurs ayant déjà voté (extrait de $this->FichierIp)
public $Resultats = array() ;//Contient les résultats des votes (extrait de $this->FichierResultats)
public $FichierIp ;//Adresse du fichier (avec .php pour extension impérativement) contenant les IP des visiteurs ayant déjà votés (séparées par des ;)
public $FichierResultats ;//Adresse du fichier (avec .php pour extension impérativement) contenant les résultats du sondage (séparés par des ; et dans l'ordre de l'array $this->Choix)
//Constructeur de la classe
public function __construct ( $Question, $Choix, $FichierIp, $FichierResultats )
{
$this->Question = $Question ;
$this->Choix = $Choix ;
$this->FichierIp = $FichierIp ;
$this->FichierResultats = $FichierResultats ;
//Si les fichiers IP et Resultats n'existent pas : les crée (possibilité de supprimer cette partie si vous créez les fichiers manuellement)
if(!file_exists($FichierIp) OR !file_exists($FichierResultats)) {
touch($FichierIp) ;
touch($FichierResultats) ;
}
//Vérifie si le visiteur a déjà voté (Vérification Cookie + IP)
if(isset($_COOKIE['vote']) OR $this->VerifierIp($_SERVER["REMOTE_ADDR"]) === false) {
$this->DejaVote = true ;
}
}
//Vérifie si l'IP du visiteur est déjà présente dans dans le fichier $FichierResultats
private function VerifierIp ($ip)
{
$this->ListeIp = explode(";", file_get_contents($this->FichierIp, NULL, NULL, 16));
if(!empty($this->ListeIp) AND in_array($ip, $this->ListeIp)){
return false ;
}
return true ;
}
//Comptabilise le vote du Choix n° $NumVote : A UTILISER AVANT toute sortie (avant les balises <html><head> ...) car utilisation de la fonction setcookie()
public function AjoutVote ($NumVote)
{
if($this->DejaVote === true) {
return false ;
}
$this->Resultats = explode(";", file_get_contents($this->FichierResultats, NULL, NULL, 16));
//Si premier vote : initialisation de $this->Resultats avec 0 votes pour chaque choix
if(!isset($this->Resultats[0]{0})) {
$Nb = sizeof($this->Choix) ;
for($n=0;$n<$Nb;$n++) $this->Resultats[$n] = '0';
}
$this->Resultats[$NumVote]++ ;//Incrémentation du choix pour lequel le visiteur a voté
$this->ListeIp[] = $_SERVER["REMOTE_ADDR"] ;//Ajout de l'IP du votant à la liste
//Ecriture des Résultats et des IP dans les fichiers
if( !file_put_contents($this->FichierResultats, '<?php exit(); ?>'.implode(";", $this->Resultats) )
OR !file_put_contents($this->FichierIp, '<?php exit(); ?>'.implode(";", $this->ListeIp) ) ) {
return false ;
}
$this->DejaVote = true ;
setcookie('vote', true, time()+3*30*24*60*60) ; //Mise en place d'un cookie valide 3 mois
return true;
}
//Affiche les résultats du vote
public function AfficherResultats ()
{
//Si $this->Resultats est vide : il n'a pas encore été recherché dans le fichier $this->FichierResultats (ou 0 votes : voir ci-dessous)
if(empty($this->Resultats))
{
$this->Resultats = explode(";", file_get_contents($this->FichierResultats, NULL, NULL, 16));
//Si $this->Resultats est toujours vide : 0 votes : initialisation de $this->Resultats
if(empty($this->Resultats)) {
$Nb = sizeof($this->Choix) ;
for($n=0;$n<$Nb;$n++) $this->Resultats[] = 0;
}
}
$TotalVotes = array_sum($this->Resultats) ;//Fait la somme de tous les valeurs de $this->Resultats pour avoir le nombre total de votant