[SCRIPT] Topsite

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par asoez, 28 Août 2011.

  1. asoez
    asoez Nouveau WRInaute
    Inscrit:
    28 Août 2011
    Messages:
    2
    J'aime reçus:
    0
    Bonsoir,
    Je suis actuellement en train de concevoir un topsite,j'ai donc utilisé un script,juste un soucis je n'arrive pas à faire en sorte que la bdd puisse stocker l'ip pour empêcher un autre vote car il suffit de vider ses cookies pour voter à nouveau ( les votes sont fait 1 fois tous les 24H) donc voilà j'aimerai savoir si quelqu'un pourrait m'aider à résoudre ce problème car je suis bloqué.

    Je vous remercie d'avance! :)
     
  2. K-mi-k-z
    K-mi-k-z WRInaute discret
    Inscrit:
    26 Août 2011
    Messages:
    193
    J'aime reçus:
    0
    Sauf que si un types cherche à vider ses cookies pour revoter, il aura aussi vite fait d'ouvrir le site via un proxy pour re-voter.

    L'unique solution pour gérer un vote et d'en donner la possibilité uniquement après enregistrement. Et là, à toi de le gérer au mieux pour éviter les multicomptes.


    Maintenant, pour ton soucis technique, si tu nous montre pas le script et la structure de ta table, on est pas vraiment avancé.
     
  3. asoez
    asoez Nouveau WRInaute
    Inscrit:
    28 Août 2011
    Messages:
    2
    J'aime reçus:
    0
    Oui,excusez moi ^^
    Voilà

    L'index.php
    Code:
    <?php
    include('config.php');
    function dehtml($html)
    {
    	return htmlentities($html, ENT_QUOTES, 'utf-8');
    }
    include 'inc/header.php';
    ?>
    <body>
    <div id="container">
    	<div id="header">
    	
    	
    <?php
    //On verifie si ladministrateur a essaye de se connecter
    if(isset($_POST['motdepasse']))
    {
    	//On verifie si le mot de passe est bon
    	if(strtolower($_POST['motdepasse'])==strtolower($mot_de_passe))
    	{
    		echo '<div class="connection">Vous avez bien &eacute;t&eacute; connect&eacute;.</div>';
    		$_SESSION['connecte'] = true;
    	}
    	else
    	{
    		echo '<div class="connection">Le mot de passe que vous avez entr&eacute; n\'est pas le bon.</div>';
    	}
    }
    //On affiche un lien dinscription et la top site
    ?>
    
    <?php include 'inc/search.php'; ?>
    
    	</div>
    	<div id="container-top">
    		<div id="navigation">
    			<a id="navi-home" href="#" onclick="page('pages/accueil.php'); return false;"></a>
    			<a id="navi-ajouter" href="nouveau.php"></a>
    			<a id="navi-news" href="#" onclick="page('pages/news.php'); return false;"></a>
    			<a id="navi-contact" href="contact.php"></a>
    			<a id="navi-partenaires" href="partenaires.php"></a>
    		</div>
    	</div>
    	
    		<div id="container-bg">
    				<div id="notice-bg"><b>Accueil</b>
    		</div>
    		<div id="contents">
    			
    <script type="text/javascript">
    page('pages/accueil.php')
    </script>
    		</div>
    		
      <br /><div id="notice-bg">
    
    	<div class="classement2"><b>Classement</b></div>
    	<div class="serveur2"><b>Serveur</b></div>
    	<div class="vote2"><b>Vote</b></div>
    
    		</div>
    	</div>
    	<div id="container-bg">
    
    <div id="contents">
    <table class="topsite" cellpadding="0" cellspacing="0">
    	<tr>
        	<th class="classement_th"></th>
        	<th class="site_th"></th>
        	<th class="votes_th"></th>
        </tr>
    <?php
    //On recupere le nombre de sites
    $req1 = mysql_fetch_array(mysql_query('select count(id) as nb from topsite where statut="ok"'));
    //On recupere la page actuelle
    if(isset($_GET['page']))
    {
    	$page = intval($_GET['page']);
    }
    else
    {
    	$page = 1;
    }
    //On calcule le nombre de pages et on affiche la site des pages
    $nbpages = ceil($req1['nb']/$nb_site_page);
    if($page<1 or $page>$nbpages)
    {
    	$page = 1;
    }
    $pages_list = 'Pages:<br />';
    if($page>1)
    {
    	$pages_list .= '<a href="?page='.($page-1).'"><img src="images/flechegauche.png" alt="" align="center"></a> ';
    }
    for($i=1;$i<=$nbpages;$i++)
    {
    	if($i==$page)
    	{
    		$pages_list .= '<strong>'.$i.'</strong> ';
    	}
    	else
    	{
    		$pages_list .= '<a href="?page='.$i.'">'.$i.'</a> ';
    	}
    }
    if($page<$nbpages)
    {
    	$pages_list .= '<a href="?page='.($page+1).'"><img src="images/flechedroite.png" alt="" align="center" </a>';
    }
    ?>
    <?php
    //on calcule la position premier a afficher
    $premier_message = ($page-1)*$nb_site_page;
    $i = $premier_message;
    //On affiche les sites
    $req2 = mysql_query('select id, url, nom, description, banniere, votes from topsite where statut="ok" order by votes desc limit '.$premier_message.','.$nb_site_page);
    while($dnn2 = mysql_fetch_array($req2))
    {
    	$i++;
    ?>
    	<tr>
        	<td class="classement"><?php echo $i; ?>
    <?php
    //On verifie si cest un administrateur
    if($_SESSION['connecte']==true)
    {
    ?>
    			<br /><a href="accepter_refuser.php?id=<?php echo $dnn2['id']; ?>&ch=s" style="font-size:16px;">Supprimer ce site</a>
    <?php
    }
    ?>
    		</td>
        	<td class="site"><a href="<?php echo dehtml($dnn2['url']); ?>" style="color:#5F8CA3;text-decoration:none;font-weight:bold;"><font size="4px"><center><?php echo dehtml($dnn2['nom']); ?></center></font></a><br />
    		<center><?php echo dehtml($dnn2['description']); ?></center>
            <div style="text-align:center;"><a href="<?php echo dehtml($dnn2['url']); ?>"><br /><img src="<?php echo dehtml($dnn2['banniere']); ?>" alt="<?php echo dehtml($dnn2['nom']); ?>" style="max-width:450px;max-height:130px;" /></a></div></td>
    		<td class="votes"><?php echo $dnn2['votes']; ?><br /><br /><a class="voter" href="vote.php?id=<?php echo $dnn2['id']; ?>"><img src="images/voter.gif" alt=""onmouseover="javascript:this.src='images/voter-hover.gif';" onmouseout="javascript:this.src='images/voter.gif';"></a></td>
        
    	</tr>
        <tr>
        	<td colspan="3"><div id="notice-bg2">
    		</div></td>
        </tr>
    <?php
    }
    //On reaffiche la site des pages en bas
    ?>
        <tr>
        	<td colspan="3" class="pages"><?php echo $pages_list; ?></td>
        </tr>
    </table>
    <?php
    //On verifie si cest un administrateur
    if($_SESSION['connecte']==true)
    {
    //On affche un lien pour reinitialiser les votes
    ?>
    <div style="text-align:right;margin-right:20px;"><a href="reinitialisation.php">R&eacute;initialiser les votes</a></div>
    <?php
    }
    //On reaffiche un lien dinscription
    ?>
    <br /><br /><div class="new"><a href="nouveau.php" id="ajouter"><img src="images/ajouterserveur.png" alt=""onmouseover="javascript:this.src='images/ajouterserveur-hover.png';" onmouseout="javascript:this.src='images/ajouterserveur.png';"></a></div>
    <?php
    //On verifie si cest un administrateur
    if($_SESSION['connecte']==true)
    {
    ?>
    <h1>Administration</h1>
    <table class="topsite" cellpadding="0" cellspacing="0">
    	<tr>
        	<th class="site_th">Site</th>
        	<th class="votes_th">Votes</th>
        	<th class="accepter_refuser_th">Accepter/Refuser</th>
        </tr>
    <?php
    //On affiche les sites qui nont pas encore ete valides
    $i = false;
    $req2 = mysql_query('select id, url, nom, description, banniere, votes from topsite where statut!="ok"');
    while($dnn2 = mysql_fetch_array($req2))
    {
    	$i = true;
    ?>
    	<tr>
        	<td class="site"><a href="<?php echo dehtml($dnn2['url']); ?>" style="color:#0000ff;text-decoration:underline;font-weight:bold;"><?php echo dehtml($dnn2['nom']); ?></a><br />
    		<?php echo dehtml($dnn2['description']); ?><br />
            <div style="text-align:center;"><a href="<?php echo dehtml($dnn2['url']); ?>"><img src="<?php echo dehtml($dnn2['banniere']); ?>" alt="<?php echo dehtml($dnn2['nom']); ?>" style="max-width:500px;max-height:200px;" /></a></div></td>
        	<td class="votes"><?php echo $dnn2['votes']; ?><br /><a href="vote.php?id=<?php echo $dnn2['id']; ?>">Voter</a></td>
            <td class="accepter_refuser"><a href="accepter_refuser.php?id=<?php echo $dnn2['id']; ?>&ch=a">Accepter</a><br /><a href="accepter_refuser.php?id=<?php echo $dnn2['id']; ?>&ch=r">Refuser</a></td>
        </tr>
    <?php
    }
    if(!$i)
    {
    ?>
    	<tr>
        	<td colspan="3">Il n'y a aucun site en attente de validation.</td>
        </tr>
    <?php
    }
    ?>
    </table>
    <?php
    }
    else
    {
    	//Si ladmnistrateur nest pas connecte, on affiche un formulaire
    ?>
    <a href="#null" onclick="document.getElementById('administration').style.display='block';">Administration</a>
    <form action="<?php echo $url_toplist; ?>" method="post" id="administration" style="display:none;">
    	<label for="motdepasse">Mot de passe</label><input type="password" name="motdepasse" id="motdepasse" /><input type="submit" value="Connection" />
    </form>
    <?php
    }
    ?>
    
    
    
    		</div>
    
    	</div>
    <?php include 'inc/footer.php'; ?>

    Vote.php
    Code:
    <?php
    include('config.php');
    function dehtml($html)
    {
    	return htmlentities($html, ENT_QUOTES, 'utf-8');
    }
    include 'inc/header.php';
    ?>
    <body>
    <div id="container">
    	<div id="header">
    	
    	
    <?php
    //On verifie si ladministrateur a essaye de se connecter
    if(isset($_POST['motdepasse']))
    {
    	//On verifie si le mot de passe est bon
    	if(strtolower($_POST['motdepasse'])==strtolower($mot_de_passe))
    	{
    		echo '<div class="connection">Vous avez bien &eacute;t&eacute; connect&eacute;.</div>';
    		$_SESSION['connecte'] = true;
    	}
    	else
    	{
    		echo '<div class="connection">Le mot de passe que vous avez entr&eacute; n\'est pas le bon.</div>';
    	}
    }
    //On affiche un lien dinscription et la top site
    ?>
    
    <?php include 'inc/search.php'; ?>
    
    	</div>
    	<div id="container-top">
    		<div id="navigation">
    			<a id="navi-home" href="#" onclick="page('pages/accueil.php'); return false;"></a>
    			<a id="navi-ajouter" href="nouveau.php"></a>
    			<a id="navi-news" href="#" onclick="page('pages/news.php'); return false;"></a>
    			<a id="navi-contact" href="contact.php"></a>
    			<a id="navi-partenaires" href="partenaires.php"></a>
    		</div>
    	</div>
    	
    		<div id="container-bg">
    				<div id="notice-bg"><b>Accueil</b>
    		</div>
    		<div id="contents">
    			
    <script type="text/javascript">
    page('pages/accueil.php')
    </script>
    		</div>
    		
      <br /><div id="notice-bg">
    
    	<div class="classement2"><b>Classement</b></div>
    	<div class="serveur2"><b>Serveur</b></div>
    	<div class="vote2"><b>Vote</b></div>
    
    		</div>
    	</div>
    	<div id="container-bg">
    
    <div id="contents">
    <table class="topsite" cellpadding="0" cellspacing="0">
    	<tr>
        	<th class="classement_th"></th>
        	<th class="site_th"></th>
        	<th class="votes_th"></th>
        </tr>
    <?php
    //On recupere le nombre de sites
    $req1 = mysql_fetch_array(mysql_query('select count(id) as nb from topsite where statut="ok"'));
    //On recupere la page actuelle
    if(isset($_GET['page']))
    {
    	$page = intval($_GET['page']);
    }
    else
    {
    	$page = 1;
    }
    //On calcule le nombre de pages et on affiche la site des pages
    $nbpages = ceil($req1['nb']/$nb_site_page);
    if($page<1 or $page>$nbpages)
    {
    	$page = 1;
    }
    $pages_list = 'Pages:<br />';
    if($page>1)
    {
    	$pages_list .= '<a href="?page='.($page-1).'"><img src="images/flechegauche.png" alt="" align="center"></a> ';
    }
    for($i=1;$i<=$nbpages;$i++)
    {
    	if($i==$page)
    	{
    		$pages_list .= '<strong>'.$i.'</strong> ';
    	}
    	else
    	{
    		$pages_list .= '<a href="?page='.$i.'">'.$i.'</a> ';
    	}
    }
    if($page<$nbpages)
    {
    	$pages_list .= '<a href="?page='.($page+1).'"><img src="images/flechedroite.png" alt="" align="center" </a>';
    }
    ?>
    <?php
    //on calcule la position premier a afficher
    $premier_message = ($page-1)*$nb_site_page;
    $i = $premier_message;
    //On affiche les sites
    $req2 = mysql_query('select id, url, nom, description, banniere, votes from topsite where statut="ok" order by votes desc limit '.$premier_message.','.$nb_site_page);
    while($dnn2 = mysql_fetch_array($req2))
    {
    	$i++;
    ?>
    	<tr>
        	<td class="classement"><?php echo $i; ?>
    <?php
    //On verifie si cest un administrateur
    if($_SESSION['connecte']==true)
    {
    ?>
    			<br /><a href="accepter_refuser.php?id=<?php echo $dnn2['id']; ?>&ch=s" style="font-size:16px;">Supprimer ce site</a>
    <?php
    }
    ?>
    		</td>
        	<td class="site"><a href="<?php echo dehtml($dnn2['url']); ?>" style="color:#5F8CA3;text-decoration:none;font-weight:bold;"><font size="4px"><center><?php echo dehtml($dnn2['nom']); ?></center></font></a><br />
    		<center><?php echo dehtml($dnn2['description']); ?></center>
            <div style="text-align:center;"><a href="<?php echo dehtml($dnn2['url']); ?>"><br /><img src="<?php echo dehtml($dnn2['banniere']); ?>" alt="<?php echo dehtml($dnn2['nom']); ?>" style="max-width:450px;max-height:130px;" /></a></div></td>
    		<td class="votes"><?php echo $dnn2['votes']; ?><br /><br /><a class="voter" href="vote.php?id=<?php echo $dnn2['id']; ?>"><img src="images/voter.gif" alt=""onmouseover="javascript:this.src='images/voter-hover.gif';" onmouseout="javascript:this.src='images/voter.gif';"></a></td>
        
    	</tr>
        <tr>
        	<td colspan="3"><div id="notice-bg2">
    		</div></td>
        </tr>
    <?php
    }
    //On reaffiche la site des pages en bas
    ?>
        <tr>
        	<td colspan="3" class="pages"><?php echo $pages_list; ?></td>
        </tr>
    </table>
    <?php
    //On verifie si cest un administrateur
    if($_SESSION['connecte']==true)
    {
    //On affche un lien pour reinitialiser les votes
    ?>
    <div style="text-align:right;margin-right:20px;"><a href="reinitialisation.php">R&eacute;initialiser les votes</a></div>
    <?php
    }
    //On reaffiche un lien dinscription
    ?>
    <br /><br /><div class="new"><a href="nouveau.php" id="ajouter"><img src="images/ajouterserveur.png" alt=""onmouseover="javascript:this.src='images/ajouterserveur-hover.png';" onmouseout="javascript:this.src='images/ajouterserveur.png';"></a></div>
    <?php
    //On verifie si cest un administrateur
    if($_SESSION['connecte']==true)
    {
    ?>
    <h1>Administration</h1>
    <table class="topsite" cellpadding="0" cellspacing="0">
    	<tr>
        	<th class="site_th">Site</th>
        	<th class="votes_th">Votes</th>
        	<th class="accepter_refuser_th">Accepter/Refuser</th>
        </tr>
    <?php
    //On affiche les sites qui nont pas encore ete valides
    $i = false;
    $req2 = mysql_query('select id, url, nom, description, banniere, votes from topsite where statut!="ok"');
    while($dnn2 = mysql_fetch_array($req2))
    {
    	$i = true;
    ?>
    	<tr>
        	<td class="site"><a href="<?php echo dehtml($dnn2['url']); ?>" style="color:#0000ff;text-decoration:underline;font-weight:bold;"><?php echo dehtml($dnn2['nom']); ?></a><br />
    		<?php echo dehtml($dnn2['description']); ?><br />
            <div style="text-align:center;"><a href="<?php echo dehtml($dnn2['url']); ?>"><img src="<?php echo dehtml($dnn2['banniere']); ?>" alt="<?php echo dehtml($dnn2['nom']); ?>" style="max-width:500px;max-height:200px;" /></a></div></td>
        	<td class="votes"><?php echo $dnn2['votes']; ?><br /><a href="vote.php?id=<?php echo $dnn2['id']; ?>">Voter</a></td>
            <td class="accepter_refuser"><a href="accepter_refuser.php?id=<?php echo $dnn2['id']; ?>&ch=a">Accepter</a><br /><a href="accepter_refuser.php?id=<?php echo $dnn2['id']; ?>&ch=r">Refuser</a></td>
        </tr>
    <?php
    }
    if(!$i)
    {
    ?>
    	<tr>
        	<td colspan="3">Il n'y a aucun site en attente de validation.</td>
        </tr>
    <?php
    }
    ?>
    </table>
    <?php
    }
    else
    {
    	//Si ladmnistrateur nest pas connecte, on affiche un formulaire
    ?>
    <a href="#null" onclick="document.getElementById('administration').style.display='block';">Administration</a>
    <form action="<?php echo $url_toplist; ?>" method="post" id="administration" style="display:none;">
    	<label for="motdepasse">Mot de passe</label><input type="password" name="motdepasse" id="motdepasse" /><input type="submit" value="Connection" />
    </form>
    <?php
    }
    ?>
    
    
    
    		</div>
    
    	</div>
    <?php include 'inc/footer.php'; ?>
    Et la db :

    Code:
    -- phpMyAdmin SQL Dump
    -- version 3.1.1
    -- http://www.phpmyadmin.net
    --
    -- Serveur: localhost
    -- Généré le : Dim 28 Août 2011 à 01:14
    -- Version du serveur: 5.1.30
    -- Version de PHP: 5.2.8
    
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    
    --
    -- Base de données: `test`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Structure de la table `topsite`
    --
    
    CREATE TABLE IF NOT EXISTS `topsite` (
      `id` int(11) NOT NULL,
      `nom` varchar(55) NOT NULL,
      `url` varchar(255) NOT NULL,
      `description` varchar(255) NOT NULL,
      `banniere` varchar(255) NOT NULL,
      `email` varchar(255) NOT NULL,
      `votes` int(11) NOT NULL,
      `statut` varchar(2) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
    --
    -- Contenu de la table `topsite`
    --
    
    INSERT INTO `topsite` (`id`, `nom`, `url`, `description`, `banniere`, `email`, `votes`, `statut`) VALUES
    Merci.
     
  4. K-mi-k-z
    K-mi-k-z WRInaute discret
    Inscrit:
    26 Août 2011
    Messages:
    193
    J'aime reçus:
    0
    Les 2 premiers script sont les mêmes, non ?

    Le problème, c'est que tu ne stockes que ton total de vote.

    il te faut une table pour les votant avec comme champs minimum "idArticle" et "IPVoteur" que contiendra la liste des IP des voteur pour chaque article.

    Ensuite, dans le script qui va prendre en compte le clic de l'internaute et updater la table, tu vérifie que l'ip ne correspond pas déjà à l'id de l'article dans la nouvelle table des votant.
    Si oui, tu ne fait rien.
    Si non, tu update les 2 tables. La première en ajoutant un vote à l'article, la seconde avec l'IP récupéré et l'id de l'article voté.
     
Chargement...
Similar Threads - [SCRIPT] Topsite Forum Date
[script] anti spam referrer Développement d'un site Web ou d'une appli mobile 20 Août 2015
[script] miniature et cache d'image à la volée Développement d'un site Web ou d'une appli mobile 13 Décembre 2013
[script] changer un texte en images Développement d'un site Web ou d'une appli mobile 10 Décembre 2013
[Script] Ajouter les boutons de partage des réseaux sociaux sans le tracking Développement d'un site Web ou d'une appli mobile 25 Août 2013
[Script] Clone légal? Développement d'un site Web ou d'une appli mobile 7 Avril 2013
[script] Comment charger un script différent suivant l'heure ? Help ! Développement d'un site Web ou d'une appli mobile 4 Octobre 2012
[script] Oméga-Annonces 1.5.1 - Php/MySqL Développement d'un site Web ou d'une appli mobile 4 Septembre 2012
[script] tracking formulaire d'affiliation Développement d'un site Web ou d'une appli mobile 5 Août 2012
[Script] - Interroger et manipuler Wordpress directement via un script PHP en crontab Développement d'un site Web ou d'une appli mobile 26 Avril 2012
[Script] Pour charger un fichier et le mettre sur son serveur Développement d'un site Web ou d'une appli mobile 6 Mars 2012