begin process at 2012 05 27 20:24:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > SONDAGE "MEILLEURE IMAGE" SANS BASE DE DONNÉES (FICHIER TXT)

SONDAGE "MEILLEURE IMAGE" SANS BASE DE DONNÉES (FICHIER TXT)


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :sondage, fichier, image, texte, survey Niveau :Débutant Date de création :08/02/2006 Date de mise à jour :08/02/2006 14:09:44 Vu / téléchargé :9 438 / 1 087

Auteur : xmag

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Je me suis inspirée de la source http://www.phpcs.com/code.aspx?ID=30791 pour créer un sondage permettant aux utilisateurs inscrits de voter pour la photo/affiche/image qu'ils préfèrent. Un seul vote par membre.
$_SESSION["utilisateurId"] correspond à l'identifiant de l'utilisateur connecté.
Pour l'affichage, j'ai utilisé un tableau, je sais que ce n'est pas top : je vais bientôt me mettre aux CSS, promis!
La config se fait dans index_vote.php
sondage_simple.php est une classe PHP4.


Source

  • <?php
  • /*!
  • *
  • * Fonction : Sondage avec gestion des réponses dans un simple fichier txt
  • *
  • * @author Magaly CLEMENT (http://www.elsalunghini.org)
  • *
  • */
  • class sondage_simple {
  • var $strQuestion;
  • var $tabReponses;
  • var $tabImages;
  • var $strNomFichierResultats;
  • var $strRepertoire;
  • var $strFichierVotants;
  • // **************************
  • // * Interface publique *
  • // **************************
  • /*!
  • * constructeur de la classe
  • *
  • */
  • function sondage_simple($strQuestion, $tabReponses, $tabImages, $strNomFichierResultats, $strRepertoire) {
  • $this->strQuestion = $strQuestion;
  • $this->tabReponses = $tabReponses;
  • $this->tabImages = $tabImages;
  • $this->strNomFichierResultats = $strRepertoire . $strNomFichierResultats;
  • $this->strRepertoire = $strRepertoire;
  • $this->strFichierVotants = $strRepertoire . "votants_" . $strNomFichierResultats;
  • }
  • /*!
  • *
  • * Ajout de l'utilisateur dans le fichier des votants (un seul vote par utilisateur)
  • *
  • */
  • function ajoutUtiVote($intIdUti){
  • $file = fopen($this->strFichierVotants, "r+") or die("impossible d'ouvrir le fichier ($this->strFichierVotants)");
  • $aVote = 0;
  • $utilisateurs = $intIdUti;
  • while (!feof($file)) {
  • $line = fgets($file);
  • $utilisateurs = $utilisateurs . "\n" . $line;
  • }
  • // On revient au debut du fichier
  • fseek ($file, 0);
  • // On ajoute nos données mises à jour
  • fputs ($file, $utilisateurs);
  • fclose($file);
  • }
  • /*!
  • *
  • * verif si pas deja voté
  • *
  • */
  • function verifVote($intIdUti){
  • $file = fopen($this->strFichierVotants, "r+") or die("impossible d'ouvrir le fichier ($this->strFichierVotants)");
  • $aVote = 0;
  • while (!feof($file)) {
  • $line = (int) fgets($file);
  • if ($line == $intIdUti){
  • $aVote = 1;
  • }
  • }
  • fclose($file);
  • return $aVote;
  • }
  • /*!
  • *
  • * Vote
  • *
  • */
  • function vote($intIdUti, $vote){
  • $nbReponses = count($this->tabReponses);
  • $resultats = fopen($this->strNomFichierResultats, "r+") or die("impossible d'ouvrir le fichier ($this->strNomFichierResultats)");
  • $erreur = 0;
  • if (!$this->verifVote($intIdUti)){
  • // Parcourt du fichier + incrementation de la ligne correspondant au vote
  • for ($numero = 1; $numero <= $nbReponses; $numero ++) {
  • $ligne[$numero] = (int) fgets($resultats);
  • if ($numero == $vote) {
  • $ligne[$numero] ++;
  • }
  • if (isset($donnees_votes)) {
  • $donnees_votes = $donnees_votes . "\n" . $ligne[$numero];
  • } else {
  • $donnees_votes = $ligne[$numero];
  • }
  • }
  • // On revient au debut du fichier
  • fseek ($resultats, 0);
  • // On ajoute nos données mises à jour
  • fputs ($resultats, $donnees_votes);
  • // a voté!
  • $this->ajoutUtiVote($intIdUti);
  • } else {
  • $erreur = 1;
  • }
  • fclose($resultats);
  • return $erreur;
  • }
  • /*!
  • *
  • * Lecture des votes
  • *
  • */
  • function lectureVotes(){
  • $resultats = fopen($this->strNomFichierResultats, "r") or die("impossible d'ouvrir le fichier ($this->strNomFichierResultats)");
  • $nbReponses = count($this->tabReponses);
  • $numero = 1;
  • while ($numero <= $nbReponses) { // attribution d'un nombre pour chaque vote à l'array $resultat[]
  • $resultat[$numero] = fgets($resultats);
  • if ($resultat[$numero] == NULL) // on remplace les lignes vides du fich txt par 0
  • {
  • $resultat[$numero] = 0;
  • }
  • $numero ++;
  • }
  • $total_votes = 0; // calcul du total des votes
  • foreach($resultat as $nb_resultat){
  • $total_votes += $nb_resultat;
  • }
  • if ($total_votes == 0){ // éviter la division par 0
  • $total_votes = 1;
  • }
  • $numero = 1;
  • while ($numero <= $nbReponses){ // transformation du nombre de vote en pourcentages
  • $pourcentage[$numero] = $resultat[$numero] / $total_votes * 100;
  • $numero ++;
  • }
  • $long_max_bloc = 120; // longueur maximale du curseur pour un vote en pixels
  • // affichage des barres et du nombre de votes
  • $numero = 1;
  • $total = 0;
  • while ($numero <= $nbReponses) {
  • ?>
  • <tr>
  • <td align="right">
  • <span class="bleu">
  • <?php echo $this->tabReponses[$numero]; ?> :
  • </span>
  • </td>
  • <td align="left">
  • &nbsp;<img src="<?php echo $this->strRepertoire?>/images/barre.gif" height="10" width="<?php echo $pourcentage[$numero] / 100 * $long_max_bloc?>" alt="<?php echo round($pourcentage[$numero])?> %" />
  • </td>
  • <td align="left">
  • <span class="bleu">
  • <strong><?php echo $resultat[$numero]; ?> votes</strong>
  • </span>
  • </td>
  • </tr>
  • <?php
  • $total += $resultat[$numero];
  • $numero ++;
  • }
  • ?>
  • <tr>
  • <td align="right">
  • <span class="bleu">
  • <strong>TOTAL</strong>
  • </span>
  • </td>
  • <td align="left">
  • &nbsp;
  • </td>
  • <td align="left">
  • <span class="bleu">
  • <strong><?php echo $total; ?> votes</strong>
  • </span>
  • </td>
  • </tr>
  • <?php
  • fclose($resultats);
  • }
  • /*!
  • *
  • * Formulaire de vote
  • *
  • */
  • function afficheFormulaireVote(){
  • $nbReponses = count($this->tabReponses);
  • $numero = 1;
  • $i = 0;
  • ?>
  • <div align="center">
  • <span class="bleu"><?php echo $this->strQuestion; ?></span>
  • </div><br />
  • <?php
  • while ($numero <= $nbReponses){
  • if ($i == 4){
  • echo "</tr><tr><td colspan='4'><br /></td><tr>";
  • }
  • $i++;
  • ?>
  • <td align="center">
  • <a href="<?php echo $this->strRepertoire?>/images/<?php echo $this->tabImages[$numero]?>" target="_blank" title="Cliquez pour agrandir"><img height="150" src="<?php echo $this->strRepertoire?>/images/mini_<?php echo $this->tabImages[$numero]?>" border="0" /></a>
  • <br />
  • <span class="noir_fin"><?php echo $this->tabReponses[$numero]; ?></span>
  • <br />
  • <input type="radio" name="vote" value="<?php echo $numero; ?>" />
  • </td>
  • <?php
  • $numero++;
  • }
  • }
  • }
  • ?>
<?php
	
 /*!
  * 
  * 	Fonction : Sondage avec gestion des réponses dans un simple fichier txt
  *
  * 	@author Magaly CLEMENT (http://www.elsalunghini.org)
  *
  */

class sondage_simple {

	var $strQuestion;
	var $tabReponses;
	var $tabImages;
	var $strNomFichierResultats;
	var $strRepertoire;
	var $strFichierVotants;
	
	// **************************
	// *   Interface publique   *
	// **************************


	/*!
	*   constructeur de la classe
	*
	*/
	function sondage_simple($strQuestion, $tabReponses, $tabImages, $strNomFichierResultats, $strRepertoire) {

		$this->strQuestion 				= $strQuestion;
		$this->tabReponses 				= $tabReponses;
		$this->tabImages 				= $tabImages;
		$this->strNomFichierResultats 	= $strRepertoire . $strNomFichierResultats;
		$this->strRepertoire			= $strRepertoire;
		$this->strFichierVotants 		= $strRepertoire . "votants_" . $strNomFichierResultats;
			
	}
	
	/*!
	*  
	*   Ajout de l'utilisateur dans le fichier des votants (un seul vote par utilisateur)
	*
	*/
	function ajoutUtiVote($intIdUti){
		
		$file = fopen($this->strFichierVotants, "r+") or die("impossible d'ouvrir le fichier ($this->strFichierVotants)");
		
		$aVote = 0;
		
		$utilisateurs = $intIdUti;
		
		while (!feof($file)) {
			
			$line 			= fgets($file);
			
		    $utilisateurs 	= $utilisateurs . "\n" . $line; 
		   
		}
		
		// On revient au debut du fichier   
		fseek ($file, 0); 
		   
		// On ajoute nos données mises à jour
		fputs ($file, $utilisateurs);
		    
		fclose($file);	
		
		
	} 
	
	/*!
	*  
	*   verif si pas deja voté
	*
	*/
	function verifVote($intIdUti){
		
		$file = fopen($this->strFichierVotants, "r+") or die("impossible d'ouvrir le fichier ($this->strFichierVotants)");
		
		$aVote = 0;
		
		while (!feof($file)) {
			$line = (int) fgets($file);

			if ($line == $intIdUti){
				$aVote = 1;	
			}
		}
	  	fclose($file);
	  	
	  	return $aVote;
	} 
	
	
	/*!
	*  
	*   Vote
	*
	*/
	function vote($intIdUti, $vote){
		
		$nbReponses = count($this->tabReponses); 
		 
		$resultats 	= fopen($this->strNomFichierResultats, "r+") or die("impossible d'ouvrir le fichier ($this->strNomFichierResultats)");
		
		$erreur = 0;
		
		if (!$this->verifVote($intIdUti)){
			
			// Parcourt du fichier + incrementation de la ligne correspondant au vote
			for ($numero = 1; $numero <= $nbReponses; $numero ++) { 
		        $ligne[$numero] = (int) fgets($resultats); 
		        if ($numero == $vote) { 
		            $ligne[$numero] ++; 
		        } 
		        if (isset($donnees_votes)) { 
		            $donnees_votes = $donnees_votes . "\n" . $ligne[$numero]; 
		        } else  { 
		            $donnees_votes = $ligne[$numero];
		        } 
	        }  
	        // On revient au debut du fichier   
	        fseek ($resultats, 0); 
	       
	        // On ajoute nos données mises à jour
	        fputs ($resultats, $donnees_votes);
	        
	        // a voté!
	        $this->ajoutUtiVote($intIdUti);
	        
        } else {
        	$erreur = 1;	
        }
        fclose($resultats); 
        
        return $erreur;
	}
	
	
	/*!
	*  
	*   Lecture des votes
	*
	*/
    function lectureVotes(){
  	
  		$resultats = fopen($this->strNomFichierResultats, "r") or die("impossible d'ouvrir le fichier ($this->strNomFichierResultats)");  	
    	
    	$nbReponses 	= count($this->tabReponses); 
    		
        $numero = 1; 
        
    	while ($numero <= $nbReponses) {   // attribution d'un nombre pour chaque vote à l'array $resultat[] 
 
            $resultat[$numero] = fgets($resultats); 
            if ($resultat[$numero] == NULL) // on remplace les lignes vides du fich txt par 0 
            { 
                    $resultat[$numero] = 0; 
            } 
        	$numero ++; 
        } 

        $total_votes = 0; // calcul du total des votes 
        
        foreach($resultat as $nb_resultat){
        	$total_votes += $nb_resultat; 
        }
        if ($total_votes == 0){    // éviter la division par 0 
            $total_votes = 1; 
        } 
        $numero = 1; 
        while ($numero <= $nbReponses){ // transformation du nombre de vote en pourcentages 
            $pourcentage[$numero] = $resultat[$numero] / $total_votes * 100; 
            $numero ++; 
        }
        
        $long_max_bloc = 120; // longueur maximale du curseur pour un vote en pixels 
         
        // affichage des barres et du nombre de votes 
        $numero = 1; 
       	
       	$total = 0;
       	
      	while ($numero <= $nbReponses) {
        	?>
        	<tr>
	        	<td align="right">
		        	<span class="bleu">
		        		<?php echo $this->tabReponses[$numero]; ?> :
		        	</span>
		        </td>
	        	<td align="left">
		        	&nbsp;<img src="<?php echo $this->strRepertoire?>/images/barre.gif" height="10" width="<?php echo $pourcentage[$numero] / 100 * $long_max_bloc?>" alt="<?php echo round($pourcentage[$numero])?> %" />
		        </td>
		        <td align="left">
		        	<span class="bleu">
		        		<strong><?php echo $resultat[$numero]; ?> votes</strong>
		        	</span>
	        	</td>
	        </tr>
        	<?php
        	$total += $resultat[$numero];
        	
            $numero ++; 
        } 
        ?>
    	<tr>
        	<td align="right">
	        	<span class="bleu">
	        		<strong>TOTAL</strong>
	        	</span>
	        </td>
        	<td align="left">
	        	&nbsp;
	        </td>
	        <td align="left">
	        	<span class="bleu">
	        		<strong><?php echo $total; ?> votes</strong>
	        	</span>
        	</td>
        </tr>
    	<?php
        fclose($resultats); 
 	
   	 }   
       
      
    /*!
	*  
	*   Formulaire de vote
	*
	*/  
     function afficheFormulaireVote(){
    		
    	$nbReponses 	= count($this->tabReponses); 
    	
    	$numero = 1; 
    	$i = 0;
    	?>
    		<div align="center">
    			<span class="bleu"><?php echo $this->strQuestion; ?></span>
    		</div><br />
    	<?php
        while ($numero <= $nbReponses){
        	
        	if ($i == 4){
        		echo "</tr><tr><td colspan='4'><br /></td><tr>";
        	} 
        	$i++;
        	
        	?>
        	<td align="center">	
        		<a href="<?php echo $this->strRepertoire?>/images/<?php echo $this->tabImages[$numero]?>" target="_blank" title="Cliquez pour agrandir"><img height="150" src="<?php echo $this->strRepertoire?>/images/mini_<?php echo $this->tabImages[$numero]?>"  border="0" /></a>
    			<br />
    			<span class="noir_fin"><?php echo $this->tabReponses[$numero]; ?></span>
    			<br />
    			<input type="radio" name="vote" value="<?php echo $numero; ?>" />
    		</td>
        	<?php 
        	
        	
        	$numero++;
        } 	
     	
     }	

	}
?> 

 Conclusion

Le répertoire "images" contient des exemples d'affiches.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 février 2006 10:31:37 :
J'ai oublié de dire : index_vote.php est une page incluse dans la page index.php du site : donc pas du header/footer HTML ;-)
08 février 2006 14:09:44 :
J'ai ajouté les "or die" aux "fopen".

 Sources du même auteur

Source avec Zip LISTAGE DES IMAGES D'UN RÉPERTOIRE AVEC PAGINATION

 Sources de la même categorie

INSPECTEUR DE PAGES (VÉRIFIEZ SI DES SITES AFFICHENT UN TEXT... par pablo836
Source avec Zip Source avec une capture GÉOLOCALISATION par pgl10
Source avec Zip TAPI : METTRE EN RELATION DEUX POSTES TELEPHONIQUES par ravery
Source avec Zip CLIENT / SERVEUR : LES SOCKETS par Morphinof
Source avec Zip VALIDATEUR_3WC par lezj

 Sources en rapport avec celle ci

REDIMENSIONNEMENT D'IMAGE PHP par JStevens
Source avec Zip Source avec une capture GÉNÉRATEUR DE TEXTE SUR IMAGE(S) (BANNIÈRES/BOUTTONS....OU N... par c v
Source avec Zip AFFICHAGE DYNAMIQUE EN LISTE DES IMAGES par milo2009
Source avec Zip Source avec une capture AVATAR PERSONNALISÉ POUR FORUM par nacedo57400
Source avec Zip Source avec une capture FORUM EN PHP + FICHIERS TEXTES ET SONDAGE + MYSQL par syllebreton

Commentaires et avis

Commentaire de shadow125 le 08/02/2006 13:25:22

Tres bonne source! Bien expliquée et complète ! Je n'ai pas eu le tps de l'essayer mais elle a l'air tres bien :)

Commentaire de coucou747 le 08/02/2006 13:41:59 administrateur CS

Salut
un avantage de ta source : son orientation objet, mais un désavantage : aucune vérification d'erreurs...
$resultats = fopen($this->strNomFichierResultats, "r"); sans or die...
fclose($resultats);
et ton code html n'est pas super super... on en est au CSS 3...
<td align="center"> est à remplacer par un style=...
<font class="bleu"> est à remplacer par un span...
bref, je noterais quand tu l'auras amélioré

Commentaire de coucou747 le 01/08/2006 12:04:16 administrateur CS

je repassais ici par hazard, et j'ai vu quelques trucs corrigés, alors je vais mettre 8/10

Commentaire de Manu_Corp le 17/08/2006 07:41:22

Bonjour,

je ne peux voter , je n'ai que le resultat d'office :(
Merci pour votre aide

Commentaire de safermoh le 30/10/2008 07:29:41

merci pour se script

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Session bizarroïde [ par malik7934 ] Hello,Je ne connais pas trop les sessions et j'ai un problème:J'ai un fichier pwd.php qui crée une image avec un text 'pwd':&lt;? session_start();func Problème pour creer un fichier texte! [ par robapt ] Bonjours à tous, voila ma page se compose de deux zone de texte ou le visiteur peut écrire :La première est un chemin à choisir pour uploader une imag Comment creer un fichier texte ? [ par robapt ] Bonsoir à tous, je voudrais savoir comment il serais possible de creer un fichier texte à partir de ce formulaire qaund le visiteur clique sur envoyer Creer compteur en PHP (sans fichier texte) [ par fdiedler2000 ] Salut all,J'ai vu plein de sources sur des compteurs de pages en php avec fichier texte mais je ne penses pas que cela soit la bonne solution.Imaginez Problème avec mon tewte défilant [ par LilSiM ] Bonjour à tous ! Voilà j'ai un petit problème avec mon code html : je veux faire défiler du texte dans un block avec une image de fond fixe, j'ai don inserer une image dans un fichier Word en php [ par florentklein ] Bonjour, je fais un logiciel en PHP/ mySQL et je voudrais générer automatiquement un fichier Word qui contiendrait un rapport contenant des données CODE [ par fadwaelouali ] salut tout le monde,j'ai un probleme sur les news (le texte +image)d'un site.je veux que mon texte soit defilant mais l'image soit stable ,jusqu'à ce Réaffichage d'un formulaire [ par ninoy ] Bonjour!Je suis en train de créer un formulaire,et j'ai quelques problèmes...Pour commencer, mon formulaire contient 2 input type text, un textarea et aide sur image [ par mike501 ] Bonjour, j ai un script pour mettre une image qui change tous les jours mes le souci qui a c est que j aimerai que avant d ouvrir la photo il y ai une supprimer des lignes dans un fichier texte [ par jvergoby ] Bonjour à tous,le truc tout bête à faire, mais là je bloque. J'ai pas mal chercher sur le web et dans les forums, mais rien qui ne pourrait m'aider. A


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales