Bonjour ou bonsoir,
J'ai un problème sur les pages de mon forum (
Voir la page en ligne).
Le code de la page debut.php est le suivant :
Code :
<?php
function verif_auth($auth_necessaire)
{
//Dans un premier temps, on vérifie si le membre est connecté
if(isset($_SESSION['id'])) $auth = intval($_SESSION['level']);
else $auth = 1;
if ($auth_necessaire < $auth) return true;
else return false;
}
?>
<?php
if(verif_auth(1))
{
//Afficher le forum
}
else
{
//Laisser tomber :p
}
try
{
$bdd_forum = new PDO('mysql:host=xxx;dbname=mangario', 'id', 'mdp);
$bdd_site = new PDO('mysql:host=xxx;dbname=mangario', 'id, mdp');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$pageTitre = $titre;
?>
<?php include('../design.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<?php
if (!empty($titre)) //Si le titre est indiqué, on l'affiche entre les balises <title>
{
echo '<title> '.$titre.' </title>';
}
else //Sinon, on écrit forum par défaut
{
echo '<title> Forum </title>';
}
?>
<!-- ICI LES META-->
<meta name="Description" content="Ce site donne des solutions, astuces, informations, et propose même ses propres jeux exclusifs made in Mangario !" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href=<?php echo "\"$design\""; ?> />
<script type="text/javascript" src="http://www.lemondedemario.fr/MyWW/MyWW.js"></script>
<script type="text/javascript" src="http://www.lemondedemario.fr/MyWW/jquery.js"></script>
</head>
<body>
<div id="en_tete">
<a id="header"></a>
</div>
<div class="corps_sup"> <?php include('../menu2.php'); ?>
<div id="corps">
<?php
//Création des variables
$ip = ip2long($_SERVER['REMOTE_ADDR']);
if (!isset($_SESSION['id'])) $id=0;
else $id = intval($_SESSION['id']);
//Requête
$req_whosonline = $bdd_forum->prepare('INSERT INTO forum_whosonline VALUES(:id, :time, :page, '.$ip.')
ON DUPLICATE KEY UPDATE
online_page = :page , online_time = :time , online_id = :id');
$req_whosonline->execute(array(
'id' => $id,
'time' => time(),
'page' => $pageTitre,
'ip' => $ip,
));
$time_max = time() - (60 * 5);
$bdd_forum->exec('DELETE FROM forum_whosonline WHERE online_time < '.$time_max);
//Initialisation de la variable
$count_online = 0;
//Décompte des visiteurs
$requete_count_visiteurs = $bdd_forum->prepare('SELECT online_id, online_ip FROM forum_whosonline WHERE online_id = 0');
$requete_count_visiteurs->execute();
$count_visiteurs = $requete_count_visiteurs->rowCount();
//Décompte des membres
$time_max = time() - (60 * 5);
$requete_count_membres = $bdd_forum->prepare('SELECT online_id, online_ip
FROM forum_whosonline
WHERE online_time > :time_max AND online_id != 0');
$requete_count_membres->execute(array(
'time_max' => $time_max,
));
$count_membres = $requete_count_membres->rowCount();
$count_online = $count_visiteurs + $count_membres;
$requete_max_online = $bdd_forum->prepare('SELECT * FROM forum_config WHERE config_nom = "maxonline"');
$requete_max_online->execute();
$max_online = $requete_max_online->fetch();
if($count_online > $max_online['config_valeur'])
{
$req_max_online = $bdd_forum->prepare('UPDATE forum_config SET config_valeur=:count_online WHERE config_nom=:$maxonline');
$req_max_online->execute(array(
'count_online' => $count_online,
'max_online' => $maxonline,
));
}
?>
Et comme vous pouvez le voir sur la page, j'ai l'erreur suivante :
Code :
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /home/mangario/www/ForumV2/includes/debut.php on line 129
Avez-vous une solution ? Merci d'avance !