[SCRIPT] Topsite

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [SCRIPT] Topsite

Re: [SCRIPT] Topsite

par olivierg » 07 sept. 2011, 14:29

alors je n'ai pas encore regardé ton code, mais je pense qu'il faut tout simplement ajouter un champ IP (varchar 15 par exemple) et la date dans ta base.

et dans ton code, tu dois utiliser :

Code : Tout sélectionner

$ip_user = $_SERVER["REMOTE_ADDR"];
pour récupérer l'ip de l'utilisateur, et la mettre en base de données, par exemple tu fais une table avec deux champs, ip_user et date.

ensuite à la connexion et la vérification du user, tu regarde dans la base si l'ip existe à j-1 (24h) ou un truc du genre

c'est ce que tu veux faire ?

Re: [SCRIPT] Topsite Help ^^

par Mazarini » 31 août 2011, 11:04

Pour connaitre l'adresse ip de l'internaute, tu peux faire la page suivante :
<?PHP phpinfo(); ?>
Tu trouveras dans le résultat de cette page les variables qui pourront te servir pour avoir cette adresse. En général, je fais une recherche de la valeur que je veux obtenir pour trouver les variables pouvant me servir. C'est très pratique. Les noms sont assez explicites et en cas de doute entre plusieurs variables, la doc est pas mal faite.

[SCRIPT] Topsite

par Asozi » 31 août 2011, 02:32

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é.

Donc voici l'index :
<?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>

Et voici le vote.php

<?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>

Et la db :
-- 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

Sa m'aiderait vraiment :/,si certaines personnes n'ont pas compris n'hésitez pas à me le dire.
Je vous remercie :).