bonjour,

je code un forum sauf que voila je rencontre plusieurs problèmes
1: dans la page voirprofile.php = Parse error: syntax error, unexpected 'else' (T_ELSE) in /home/u609801953/public_html/forum test/pages/voirprofil.php on line 136
2: dans la page voirtopic.php = Fatal error: Cannot redeclare erreur() (previously declared in /home/u609801953/public_html/forum test/includes/functions.php:2) in /home/u609801953/public_html/forum test/includes/functions.php on line 7

1) voirprofil.php

 <?php
session_start();
$titre="Profil";
include("../includes/identifiants.php");
include("debut.php");
include("../includes/menu.php");
//On récupère la valeur de nos variables passées par URL
$action = isset($_GET['action'])?htmlspecialchars($_GET['action']):'consulter';
$membre = isset($_GET['m'])?(int) $_GET['m']:'';
?>

<?php
//On regarde la valeur de la variable $action
switch($action)
{
    //Si c'est "consulter"
    case "consulter":
       //On récupère les infos du membre
       $query=$db->prepare('SELECT membre_pseudo, membre_avatar,
       membre_email, membre_msn, membre_signature, membre_siteweb, membre_post,
       membre_inscrit, membre_localisation
       FROM forum_membres WHERE membre_id=:membre');
       $query->bindValue(':membre',$membre, PDO::PARAM_INT);
       $query->execute();
       $data=$query->fetch();

       //On affiche les infos sur le membre
       echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> 
       profil de '.stripslashes(htmlspecialchars($data['membre_pseudo']));
       echo'<h1>Profil de '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</h1>';
       
       echo'<img src="./images/avatars/'.$data['membre_avatar'].'"
       alt="Ce membre n a pas d avatar" />';
       
       echo'<p><strong>Adresse E-Mail : </strong>
       <a href="mailto:'.stripslashes($data['membre_email']).'">
       '.stripslashes(htmlspecialchars($data['membre_email'])).'</a><br />';
       
       echo'<strong>MSN Messenger : </strong>'.stripslashes(htmlspecialchars($data['membre_msn'])).'<br />';
       
       echo'<strong>Site Web : </strong>
       <a href="'.stripslashes($data['membre_siteweb']).'">'.stripslashes(htmlspecialchars($data['membre_siteweb'])).'</a>
       <br /><br />';
 
       echo'Ce membre est inscrit depuis le
       <strong>'.date('d/m/Y',$data['membre_inscrit']).'</strong>
       et a posté <strong>'.$data['membre_post'].'</strong> messages
       <br /><br />';
       echo'<strong>Localisation : </strong>'.stripslashes(htmlspecialchars($data['membre_localisation'])).'
       </p>';
       $query->CloseCursor();
       break;

        //Si on choisit de modifier son profil
        case "modifier":
         if (empty($_POST['sent'])) // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire
           {
            //On commence par s'assurer que le membre est connecté
            if ($id==0) erreur(ERR_IS_NOT_CO);

            //On prend les infos du membre
            $query=$db->prepare('SELECT membre_pseudo, membre_email,
            membre_siteweb, membre_signature, membre_msn, membre_localisation,
            membre_avatar
            FROM forum_membres WHERE membre_id=:id');
            $query->bindValue(':id',$id,PDO::PARAM_INT);
            $query->execute();
            $data=$query->fetch();
            echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Modification du profil';
            echo '<h1>Modifier son profil</h1>';
            
            echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data">
           
     
            <fieldset><legend>Identifiants</legend>
            Pseudo : <strong>'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</strong><br />       
            <label for="password">Nouveau mot de Passe :</label>
            <input type="password" name="password" id="password" /><br />
            <label for="confirm">Confirmer le mot de passe :</label>
            <input type="password" name="confirm" id="confirm"  />
            </fieldset>
     
            <fieldset><legend>Contacts</legend>
            <label for="email">Votre adresse E_Mail :</label>
            <input type="text" name="email" id="email"
            value="'.stripslashes($data['membre_email']).'" /><br />
     
            <label for="msn">Votre adresse MSN :</label>
            <input type="text" name="msn" id="msn"
            value="'.stripslashes($data['membre_msn']).'" /><br />
     
            <label for="website">Votre site web :</label>
            <input type="text" name="website" id="website"
            value="'.stripslashes($data['membre_siteweb']).'" /><br />
            </fieldset>
     
            <fieldset><legend>Informations supplémentaires</legend>
            <label for="localisation">Localisation :</label>
            <input type="text" name="localisation" id="localisation"
            value="'.stripslashes($data['membre_localisation']).'" /><br />
            </fieldset>
                   
            <fieldset><legend>Profil sur le forum</legend>
            <label for="avatar">Changer votre avatar :</label>
            <input type="file" name="avatar" id="avatar" />
            (Taille max : 10 ko)<br /><br />
            <label><input type="checkbox" name="delete" value="Delete" />
            Supprimer l avatar</label>
            Avatar actuel :
            <img src="./images/avatars/'.$data['membre_avatar'].'"
            alt="pas d avatar" />
         
            <br /><br />
            <label for="signature">Signature :</label>
            <textarea cols="40" rows="4" name="signature" id="signature">
            '.stripslashes($data['membre_signature']).'</textarea>
         
         
            </fieldset>
            <p>
            <input type="submit" value="Modifier son profil" />
            <input type="hidden" id="sent" name="sent" value="1" />
            </p></form>';
            $query->CloseCursor();   
        }   
        else //Sinon on est dans la page de traitement
    {
        //Traitement (voir plus bas)
    }
    break;
 
default; //Si jamais c'est aucun de ceux-là c'est qu'il y a eu un problème :o
echo'<p>Cette action est impossible</p>';
 
} //Fin du switch
else //Cas du traitement
    {
     //On déclare les variables 

    $mdp_erreur = NULL;
    $email_erreur1 = NULL;
    $email_erreur2 = NULL;
    $msn_erreur = NULL;
    $signature_erreur = NULL;
    $avatar_erreur = NULL;
    $avatar_erreur1 = NULL;
    $avatar_erreur2 = NULL;
    $avatar_erreur3 = NULL;

    //Encore et toujours notre belle variable $i [langue]
    $i = 0;
    $temps = time(); 
    $signature = $_POST['signature'];
    $email = $_POST['email'];
    $msn = $_POST['msn'];
    $website = $_POST['website'];
    $localisation = $_POST['localisation'];
    $pass = md5($_POST['password']);
    $confirm = md5($_POST['confirm']);


    //Vérification du mdp
    if ($pass != $confirm || empty($confirm) || empty($pass))
    {
         $mdp_erreur = "Votre mot de passe et votre confirmation diffèrent ou sont vides";
         $i++;
    }

    //Vérification de l'adresse email
    //Il faut que l'adresse email n'ait jamais été utilisée (sauf si elle n'a pas été modifiée)

    //On commence donc par récupérer le mail
    $query=$db->prepare('SELECT membre_email FROM forum_membres WHERE membre_id =:id'); 
    $query->bindValue(':id',$id,PDO::PARAM_INT);
    $query->execute();
    $data=$query->fetch();
    if (strtolower($data['membre_email']) != strtolower($email))
    {
        //Il faut que l'adresse email n'ait jamais été utilisée
        $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email =:mail');
        $query->bindValue(':mail',$email,PDO::PARAM_STR);
        $query->execute();
        $mail_free=($query->fetchColumn()==0)?1:0;
        $query->CloseCursor();
        if(!$mail_free)
        {
            $email_erreur1 = "Votre adresse email est déjà utilisé par un membre";
            $i++;
        }

        //On vérifie la forme maintenant
        if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
        {
            $email_erreur2 = "Votre nouvelle adresse E-Mail n'a pas un format valide";
            $i++;
        }
    }
    //Vérification de l’adresse MSN
    if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn))
    {
        $msn_erreur = "Votre nouvelle adresse MSN n'a pas un format valide";
        $i++;
    }

    //Vérification de la signature
    if (strlen($signature) > 200)
    {
        $signature_erreur = "Votre nouvelle signature est trop longue";
        $i++;
    }
 
 
    //Vérification de l'avatar
 
    if (!empty($_FILES['avatar']['size']))
    {
        //On définit les variables :
        $maxsize = 30072; //Poid de l'image
        $maxwidth = 100; //Largeur de l'image
        $maxheight = 100; //Longueur de l'image
        //Liste des extensions valides
        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );
 
        if ($_FILES['avatar']['error'] > 0)
        {
        $avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
        }
        if ($_FILES['avatar']['size'] > $maxsize)
        {
        $i++;
        $avatar_erreur1 = "Le fichier est trop gros :
        (<strong>".$_FILES['avatar']['size']." Octets</strong>
        contre <strong>".$maxsize." Octets</strong>)";
        }
 
        $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
        $i++;
        $avatar_erreur2 = "Image trop large ou trop longue :
        (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre
        <strong>".$maxwidth."x".$maxheight."</strong>)";
        }
 
        $extension_upload = strtolower(substr(  strrchr($_FILES['avatar']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                $i++;
                $avatar_erreur3 = "Extension de l'avatar incorrecte";
        }
    }
?>
<?php
    echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Modification du profil';
    echo '<h1>Modification d\'un profil</h1>';

 
    if ($i == 0) // Si $i est vide, il n'y a pas d'erreur
    {
        if (!empty($_FILES['avatar']['size']))
        {
                $nomavatar=move_avatar($_FILES['avatar']);
                $query=$db->prepare('UPDATE forum_membres
                SET membre_avatar = :avatar 
                WHERE membre_id = :id');
                $query->bindValue(':avatar',$nomavatar,PDO::PARAM_STR);
                $query->bindValue(':id',$id,PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
        }
 
        //Une nouveauté ici : on peut choisis de supprimer l'avatar
        if (isset($_POST['delete']))
        {
                $query=$db->prepare('UPDATE forum_membres
        SET membre_avatar=0 WHERE membre_id = :id');
                $query->bindValue(':id',$id,PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
        }
 
        echo'<h1>Modification terminée</h1>';
        echo'<p>Votre profil a été modifié avec succès !</p>';
        echo'<p>Cliquez <a href="./index.php">ici</a> 
        pour revenir à la page d accueil</p>';
 
        //On modifie la table
 
        $query=$db->prepare('UPDATE forum_membres
        SET  membre_mdp = :mdp, membre_email=:mail, membre_msn=:msn, membre_siteweb=:website,
        membre_signature=:sign, membre_localisation=:loc
        WHERE membre_id=:id');
        $query->bindValue(':mdp',$pass,PDO::PARAM_INT);
        $query->bindValue(':mail',$email,PDO::PARAM_STR);
        $query->bindValue(':msn',$msn,PDO::PARAM_STR);
        $query->bindValue(':website',$website,PDO::PARAM_STR);
        $query->bindValue(':sign',$signature,PDO::PARAM_STR);
        $query->bindValue(':loc',$localisation,PDO::PARAM_STR);
        $query->bindValue(':id',$id,PDO::PARAM_INT);
        $query->execute();
        $query->CloseCursor();
    }
    else
    {
        echo'<h1>Modification interrompue</h1>';
        echo'<p>Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
        echo'<p>'.$i.' erreur(s)</p>';
        echo'<p>'.$mdp_erreur.'</p>';
        echo'<p>'.$email_erreur1.'</p>';
        echo'<p>'.$email_erreur2.'</p>';
        echo'<p>'.$msn_erreur.'</p>';
        echo'<p>'.$signature_erreur.'</p>';
        echo'<p>'.$avatar_erreur.'</p>';
        echo'<p>'.$avatar_erreur1.'</p>';
        echo'<p>'.$avatar_erreur2.'</p>';
        echo'<p>'.$avatar_erreur3.'</p>';
        echo'<p> Cliquez <a href="./voirprofil.php?action=modifier">ici</a> pour recommencer</p>';
    }
} //Fin du else
    break;
 
default; //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
echo'<p>Cette action est impossible</p>';
 
} //Fin du switch
?>
</div>
</body>
</html>



2) voirtopic.php
<?php
session_start();
$titre="Voir un sujet";
include("../includes/db_connect.php");
include("debut.php");
include("../includes/menu.php");
include("../includes/bbcode.php"); //On verra plus tard ce qu'est ce fichier
 
//On récupère la valeur de t
$topic = (int) $_GET['t'];
 
//A partir d'ici, on va compter le nombre de messages pour n'afficher que les 15 premiers
$query=$db->prepare('SELECT topic_titre, topic_post, forum_topic.forum_id, topic_last_post,
forum_name, auth_view, auth_topic, auth_post 
FROM forum_topic 
LEFT JOIN forum_forum ON forum_topic.forum_id = forum_forum.forum_id 
WHERE topic_id = :topic');
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
$forum=$data['forum_id']; 
$totalDesMessages = $data['topic_post'] + 1;
$nombreDeMessagesParPage = 15;
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);

echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> 
<a href="./voirforum.php?f='.$forum.'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
 --> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>';
echo '<h1>'.stripslashes(htmlspecialchars($data['topic_titre'])).'</h1><br /><br />';

//Nombre de pages
$page = (isset($_GET['page']))?intval($_GET['page']):1;

//On affiche les pages 1-2-3 etc...
echo '<p>Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    if ($i == $page) //On affiche pas la page actuelle en lien
    {
    echo $i;
    }
    else
    {
    echo '<a href="voirtopic.php?t='.$topic.'&page='.$i.'">
    ' . $i . '</a> ';
    }
}
echo'</p>';
 
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

 
//On affiche l'image répondre
echo'<a href="./poster.php?action=repondre&amp;t='.$topic.'">
<img src="./images/repondre.gif" alt="Répondre" title="Répondre à ce topic" /></a>';
 
//On affiche l'image nouveau topic
echo'<a href="./poster.php?action=nouveautopic&amp;f='.$data['forum_id'].'">
<img src="./images/nouveau.gif" alt="Nouveau topic" title="Poster un nouveau topic" /></a>';
$query->CloseCursor(); 
//Enfin on commence la boucle !

$query=$db->prepare('SELECT post_id , post_createur , post_texte , post_time ,
membre_id, membre_pseudo, membre_inscrit, membre_avatar, membre_localisation, membre_post, membre_signature
FROM forum_post
LEFT JOIN forum_membres ON forum_membres.membre_id = forum_post.post_createur
WHERE topic_id =:topic
ORDER BY post_id
LIMIT [langue]remier, :nombre');
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
$query->bindValue(':premier',(int) $premierMessageAafficher,PDO::PARAM_INT);
$query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO::PARAM_INT);
$query->execute();
 
//On vérifie que la requête a bien retourné des messages
if ($query->rowCount()<1)
{
        echo'<p>Il n y a aucun post sur ce topic, vérifiez l url et reessayez</p>';
}
else
{
        //Si tout roule on affiche notre tableau puis on remplit avec une boucle
        ?><table>
        <tr>
        <th class="vt_auteur"><strong>Auteurs</strong></th>             
        <th class="vt_mess"><strong>Messages</strong></th>       
        </tr>
        <?php
        while ($data = $query->fetch())
        {

//On commence à afficher le pseudo du créateur du message :
         //On vérifie les droits du membre
         //(partie du code commentée plus tard)
         echo'<tr><td><strong>
         <a href="./voirprofil.php?m='.$data['membre_id'].'&amp;action=consulter">
         '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a></strong></td>';
           
         /* Si on est l'auteur du message, on affiche des liens pour
         Modérer celui-ci.
         Les modérateurs pourront aussi le faire, il faudra donc revenir sur
         ce code un peu plus tard ! */     
   
         if ($id == $data['post_createur'])
         {
         echo'<td id=p_'.$data['post_id'].'>Posté à '.date('H\hi \l\e d M y',$data['post_time']).'
         <a href="./poster.php?p='.$data['post_id'].'&amp;action=delete">
         <img src="./images/supprimer.gif" alt="Supprimer"
         title="Supprimer ce message" /></a>   
         <a href="./poster.php?p='.$data['post_id'].'&amp;action=edit">
         <img src="./images/editer.gif" alt="Editer"
         title="Editer ce message" /></a></td></tr>';
         }
         else
         {
         echo'<td>
         Posté à '.date('H\hi \l\e d M y',$data['post_time']).'
         </td></tr>';
         }
       
         //Détails sur le membre qui a posté
         echo'<tr><td>
         <img src="./images/avatars/'.$data['membre_avatar'].'" alt="" />
         <br />Membre inscrit le '.date('d/m/Y',$data['membre_inscrit']).'
         <br />Messages : '.$data['membre_post'].'<br />
         Localisation : '.stripslashes(htmlspecialchars($data['membre_localisation'])).'</td>';
               
         //Message
         echo'<td>'.code(nl2br(stripslashes(htmlspecialchars($data['post_texte'])))).'
         <br /><hr />'.code(nl2br(stripslashes(htmlspecialchars($data['membre_signature'])))).'</td></tr>';
         } //Fin de la boucle ! \o/
         $query->CloseCursor();

         ?>
</table>

<?php
        echo '<p>Page : ';
        for ($i = 1 ; $i <= $nombreDePages ; $i++)
        {
                if ($i == $page) //On affiche pas la page actuelle en lien
                {
                echo $i;
                }
                else
                {
                echo '<a href="voirtopic.php?t='.$topic.'&amp;page='.$i.'">
                ' . $i . '</a> ';
                }
        }
        echo'</p>';
       
        //On ajoute 1 au nombre de visites de ce topic
        $query=$db->prepare('UPDATE forum_topic
        SET topic_vu = topic_vu + 1 WHERE topic_id = :topic');
        $query->bindValue(':topic',$topic,PDO::PARAM_INT);
        $query->execute();
        $query->CloseCursor();

} //Fin du if qui vérifiait si le topic contenait au moins un message
?>           
</div>
</body>
</html>




merci d'avance
Modifié par zougui91 (05 Jul 2017 - 21:56)
Bonjour.

A priori, un 'else' ne peut pas suivre un 'switch'. D'ailleurs, je n'ai pas compris pourquoi vous ne mettiez pas tout le code de ce 'else' dans la partie 'default:' du 'switch'.

Pour l'autre question, je n'ai pas regardé.

Smiley smile
Modérateur
Pour l'autre question, tout est dans l'erreur:

a écrit :

2: dans la page voirtopic.php = Fatal error: Cannot redeclare erreur() (previously declared in /home/u609801953/public_html/forum test/includes/functions.php:2) in /home/u609801953/public_html/forum test/includes/functions.php on line 7

L'erreur n'est pas dans voirtopic.php mais dans functions.php, vous y avez deux fois la fonction erreur() déclarée.
kustolovic a écrit :
Pour l'autre question, tout est dans l'erreur:


2: dans la page voirtopic.php = Fatal error: Cannot redeclare erreur() (previously declared in /home/u609801953/public_html/forum test/includes/functions.php:2) in /home/u609801953/public_html/forum test/includes/functions.php on line 7

L'erreur n'est pas dans voirtopic.php mais dans functions.php, vous y avez deux fois la fonction erreur() déclarée.

oui je me suis tromper de page en effet pour ce qui est de functions.php le code c'est sa
<?php
function erreur($err='')
{
   $mess=($err!='')? $err:'Une erreur inconnue s\'est produite';
   exit('<p>'.$mess.'</p>
   <p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p></div></body></html>');
}
function move_avatar($avatar)
{
    $extension_upload = strtolower(substr(  strrchr($avatar['name'], '.')  ,1));
    $name = time();
    $nomavatar = str_replace(' ','',$name).".".$extension_upload;
    $name = "../images/avatars/".str_replace(' ','',$name).".".$extension_upload;
    move_uploaded_file($avatar['tmp_name'],$name);
    return $nomavatar;
}
?>

je ne vois pas trop c'est quoi l'erreur.

en remplacant le else par un default sa me met sa
Parse error: syntax error, unexpected 'default' (T_DEFAULT) in /home/u609801953/public_html/forum test/pages/voirprofil.php on line 136
zougui91 a écrit :

en remplacant le else par un default sa me met sa
Parse error: syntax error, unexpected 'default' (T_DEFAULT) in /home/u609801953/public_html/forum test/pages/voirprofil.php on line 136

Je me trompe peut-être mais j'ai l'impression que vous interprétez, un peu librement, la syntaxe du switch…
Smiley confus
Bonjour,

Zelena a raison, clairement la ligne 136 c'est la ligne du else APRÈS le switch => ça n'existe pas !
Il semblerait tout simplement qu'il te faille copier le code qui est dans ce else => dans le default du switch (comme Zelena le proposait au début)
Modérateur
Quant à l'autre erreur elle est probablement dûe à de multiple inclusions de fonctions.php.

essaie d'utiliser include_once
Modifié par kustolovic (06 Jul 2017 - 15:23)
Et bien dans ce cours dont tu fais référence, il n'y a pas de else après le switch.
Syntaxe du switch <=

Mais le code du traitement ne doit pas être à la suite du code précédent (comme tu l'as pensé), tu as dans le code un commentaire :
//Traitement (voir plus bas)

Et c'est dans ce else là qui faut que tu mettes le code du traitement (à la place du commentaire).
oui mais je comprend pas parce que il y a 2 codes différents mais il dit de les mettres dans la meme page...
Modérateur
Créer son propre moteur de forum et suivre ce genre de tutoriel avec des copier/coller à l'aveuglette sans avoir les bases de PHP et de MySQL n'est pas possible. Il faut commencer par les bases.

D'autant plus que ce tuto mériterait de se nommer: «comment créer une machine à gaz illisible et difficilement maintenable». Ce tuto semble avoir dix ans (quinze?) au compteur et je le déconseillerais pour apprendre.
ok tu me conseillerais quel tuto alors ? et j'ai des bases en php juste que j'ais beaucoup de mal enfête.....

ce tuto date de 2016
Modifié par zougui91 (06 Jul 2017 - 17:25)
Modérateur
zougui91 a écrit :

ce tuto date de 2016

presque, à dix ans près:

Créé : le 13/09/2006 à 19:48:41

Sinon je ne suis pas expert en tutos m'étant formé avant la création de ce tuto. Mais en cherchant rapidement j'ai vu grafikart proposait des tutos videos plus à la page et bien expliqués.

De toute façon il faut vraiment reprendre à la base, ce n'est pas possible de faire un système de forum sans maitriser les boucles php. Sinon peut-être que d'autres par ici ont de bonnes ressources?
Modifié par kustolovic (06 Jul 2017 - 23:08)
ah en effet 2006, il a juste été mis a jour en 2016, esque je pourrais avoir le lien du tuto de grafikart stp.