<?php
session_start();
require_once("fonctions/fonction.php");
$con=new connection_base();
$afficher="";
$msg="0,";
/*postage&lecture des commentaires (:
Postage+Template*/
$resultat="";
//On trouve dans quel Post on est...
if(!isset($_GET[´id´]) || !i s_numeric($_GET[´id´]
))
{
die("Erreur Fatal, l´id n´existe pas.");
}
$id_post=(int) $_GET[´id´];
//On vérifique qu´il existe (:
$requette="SELECT id_post FROM post WHERE id_post=
$id_post";
$result=$con->mysql_execution($requette);
if(mysql_num_rows($result)==0)
{
die("Erreur Fatal, l´id n´existe pas.");
}
//Si qq1 poste un comms...
if(isset($_POST[´pseudo´]))
{
//Si pseudo est pas bon..
if(!verification_($_POST[´pseudo´],"!^[a-zA-Z0-9\-
]+$!",3,30))
{
$msg.=PSEUDO_ERR.",";
}
if(empty($_POST[´contenu´]) || !i sset($_POST[´con
tenu´]) || strlen($_POST[´contenu´])>12000)
{
$msg.=CONTENU_ERR.",";
}
$date=date("Y-m-d H:i:s");
$ip_pseudo=$_SERVER[´REMOTE_ADDR´];
//On vérifie pour son ip (:
$requette="SELECT UNIX_TIMESTAMP(date) as date2 FR
OM commentaire WHERE
ip_pseudo=´$ip_pseudo´ and id_post=$id_post ORDER BY date DESC";
$result=$con->mysql_execution($requette);
if(mysql_num_rows($result)>0)
{
$date2=mysql_fetch_array($result);
if((date("U")-$date2[´date2´])<5*60){
$msg.=IP_ERR.",";
}
}
$contenu=mysql_real_escape_string(htmlspecialchars
($_POST[´contenu´]));
$pseudo=mysql_real_escape_string(htmlspecialchars(
$_POST[´pseudo´]));
if($msg!="0,")
{
$_SESSION[´msg´]=$msg;
header(´Location: commentaire.php?id=´.$id_post);exit;
}
$requette="INSERT INTO
commentaire(id_post,date,ip_pseudo,pseudo,contenu)
VALUES
($id_post,´$date´,´$ip_pseudo´,´$pseudo´,´$contenu
´)";
$result=$con->mysql_execution($requette);
$resultat="<span style=\"background-color:white;\">Commentaire posté.</span>";
}
//Si une erreur...
if(isset($_SESSION[´msg´]))
{
$err=explode(",",$_SESSION[´msg´]);
session_unset();
session_destroy();
if(in_array(PSEUDO_ERR,$err))
$resultat.="<span
style=\"color:red;background-color:white;\">Erreur
au niveau de votre pseudo.</span><br>";
if(in_array(CONTENU_ERR,$err))
$resultat.="<span
style=\"color:red;background-color:white;\">Erreur
au niveau du contrenu de votre commentaire.<br></
span>";
if(in_array(IP_ERR,$err))
$resultat.="<span
style=\"color:red;background-color:white;\">Veuill
ez patientez 5 minutes avant de reposter.<br></span>";
}
//On récupère les infos sur le post 
$requette="SELECT titre FROM post WHERE id_post=$i
d_post";
//On récupère tous les commentaires (:
$requette2="SELECT DATE_FORMAT(c.date,´%e/%c/%Y &a
grave; %l h %i´) as date2,
c.contenu,c.pseudo FROM commentaire as c WHERE id_post=$id_post";
$result=$con->mysql_execution($requette);
$result2=$con->mysql_execution($requette2);
$a=mysql_fetch_array($result);
$nom_post=$a[´titre´];
//On stock tous les commentaires 
$commentaire=array();
while($b=mysql_fetch_array($result2))
array_push($commentaire,$b);
//Ensuite, on affiche les commentiares
//TEMPLATE !! !!!!
$tp = new Template("template/");
$tp->set_file(array("commentaire"=>"commentaire.tp
l")); //on ajoute un fichier tpl
$tp->set_block(´commentaire´,´COMMENTAIRES´,´comme
ntaires´);
$tp->set_var(´NOM_POST´, $nom_post);
$tp->set_var(´ID_POST´, $id_post);
if(isset($resultat) && !e mpty($resultat))$tp->set
_var(´RESULTAT´, $resultat);
$i=0;
foreach($commentaire as $tableau)
{
//On définit les variables a l intérieurs du bloc
$tp->set_var(´DATE´, $tableau[´date2´]);
$tp->set_var(´PSEUDO´, $tableau[´pseudo´]);
$tp->set_var(´TEXTE´, smiley_edou($tableau[´conten
u´],$adresse));
if($i%2==1)
{$tp->set_var(´Y´, "y");}
else
$tp->set_var(´Y´, "");
$tp->parse("commentaires","COMMENTAIRES",true);
$i++;
}
//On parse
$tp->parse("affichage","commentaire",true);
$tp->p("affichage");
// !^ [a-zA-Z0-9_\-\.]+$!
function
verification_($averifier,$pattern,$longueurmin,$lo
ngueurmax)
{
if(!empty($averifier) && preg_match($pattern,$aver
ifier) && strlen($averifier)>=$longueurmin && strlen($averifier)<=$longueurmax)
{
return true;
}
return false;
}
Après avoir regarder mon fabuleux code source, look@this one :
if($msg!="0,")
{
$_SESSION[´msg´]=$msg;
header(´Location: commentaire.php?id=´.$id_post);exit;
}
$requette="INSERT INTO
commentaire(id_post,date,ip_pseudo,pseudo,contenu)
VALUES
($id_post,´$date´,´$ip_pseudo´,´$pseudo´,´$contenu
´)";
$result=$con->mysql_execution($requette);
$resultat="<span style=\"background-color:white;\">Commentaire posté.</span>";
}
//Si une erreur...
if(isset($_SESSION[´msg´]))
{
Sous free, la $_SESSION n´est pas gérée. Enfin, un
iquement celle çi alors que partout c´est bien gérer. Quelqu´un saurait pourquoi ? Ca commence à me gaver free avec ces pbs à la con. Je pense que je vais changer d´hébergeur.