Bonjour à tous,

Cela fais longtemps que je n'ai pas retoucher au php et autres et j'ai dû mal avec pas mal de truc.
Je suis en train de faire un système de commentaire.

J'ai déjà regarder les tutoriels sur les commentaires mais les méthodes ne fonctionnent pas avec moi, j'explique.
J'ai créer mon site avec ces tutoriel là :

Tout fonctionne à merveille.
J'ai donc essayer après de faire mes commentaires avec ce tutoriel :

Mais le problème c'est qu'avec la méthode obStart mes url ne fonctionnent pas avec ".php" à la fin du coup je ne sais pas comment faire pour appeler une news.

Voici ma requête :

<?php 
$req2=$PDO->prepare ('SELECT * FROM news');
$req2->execute();
while ($donne=$req2->fetch()) {
 ?>
<div id="title"><span>Les commentaires</span></div>
<img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/>
<h1>? <?php echo $donne->titre; ?></h1>
<img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/>
<table id="ladder" style="margin-top:-10px;margin-bottom:-19px;">
    <tr>
        <th width="130" style="background:url('theme/img/forum/bgTh.png') bottom repeat-x #bcce3c;color:#ffffff;">Auteurs</th>
        <th width="450" style="background:url('theme/img/forum/bgTh.png') bottom repeat-x #bcce3c;color:#ffffff;font-size: 12px;padding:12px;" width="220"><strong>Messages</strong></th>             
    </tr>
</table>
<img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/><br />
<table id="ladder" style="margin-top:-19px;margin-bottom:-19px;color:#ffecec;">
    <tr>
        <td width="130" style="font-size:11px;background:#bd5e5e;">
            <img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>joueur.png" class="devtool"/><b><?php echo $donne->auteur; ?></b>
        </td>
        <td width="480" style="text-align:right;background:#941e1e;">
            <small style="float:left;margin-top:3px;">Rang</small>Posté Le <b><?php echo $donne->date; ?></b> <img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>time.png" class="devtool"/>
        </td>
    </tr>
    <tr>
        <td style="background:#941e1e;"><div style="width:125px;text-align: center;height:122px;margin:0px 0px 5px -7px;">
            <span style="position:absolute;z-index:150;margin:12px 0px 0px 12px;color:#ffffff;font-size:10px;"><b></b></span>
            <div style="margin-left: 9px;margin-top: 8px;"><img class='avatar' src='<?php echo ''.WEBROOT.''.$url_avatar.'' ?>none.png'></div></div>
            <small><b style="color:#ffffff;"><img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>error.png" class="devtool"/> connecté ou non</small><br />
            <small title="email..."><img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>email.png" class="devtool"/><b style="color:#ffffff;"> email
                <br /></small>
            <small title="Nombre de points"><img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>money.png" class="devtool"/> nbr point</small><br />» <small>Rang</small><br />
            <img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>star.png" class="devtool"/>
            <img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>star.png" class="devtool"/>
            <img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>star.png" class="devtool"/>
            <img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>star.png" class="devtool"/>
            <img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>star.png" class="devtool"/>
            <img src="<?php echo ''.WEBROOT.''.$url_devtool.'' ?>star.png" class="devtool"/></b><br />
        </td>
        <td style="font-size:12px;background:#bd5e5e;padding:10px;vertical-align:text-top;">
            <div style="margin:0px 0px 0px 0px;">
                <?php echo $donne->contenu; ?>
            </div>
        </td>
    </tr>
</table>
<?php } ?>
<img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/>
<img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/>
<h1>? Poster un commentaire !</h1>
<img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/>

Attention au code ou autre je suis assez débutant...

Si quelqu'un pourrait m'aider merci d'avance.
Cordialement,

EDIT : Je voudrais savoir comment je pourrais faire pour afficher les news en ayant en URL :
http://mon-site.com/news/le-titre-de-la-news

8 réponses


Tchoupi
Auteur
Réponse acceptée

Bon ...
Le problème était vraiment ... niveau CP

Mon URL pour appeler une page de base est index.php?p="nom_de_la_page"
Donc dans mon exemple pour les news c'était index.php?p=home
Mais le problème c'est que pour afficher les commentaires je fais un GET ?com=...
Donc je faisais index.php?p=home?com=

Alors que j'aurais dû faire index.php?p=home&com=

Donc voilà, 2 jours de recherche pour cette erreur vraiment stupide, mais j'avais complètement oublié la syntaxe.

Merci tout de même pour votre aide.

Pour l'url déjà ou tu mets tes fichiers dans un dossier mais il y a .php ou tu utilises les .htacces (assez compliqué, voir création d'un MVC en 7 jours).

Ensuite, le <img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/> :
Pourquoi mettre '' : c'est un espace vide donc inutile. Ensuite, c'est quoi $url_global ? Tu mets plein d'image et donc le code est lourd, pourrait-on avoir une image pour savoir à quoi ressemble ton site ?

Tu fais 6 fois la même chose :

<?php
for($i = 0; $i < 6; $i++){
    echo 'ceci sera affiché 6 fois à la suite';
}

Et si tu parcours un tableau :

<?php
foreach($tableau as $key => $value){
    echo $value; // Affichera toutes les valeurs du tableau dans l'ordre
}

Je finirais pars : style="" dans une balise html n'est pas génial. On ne voit ça que si c'est le javascript qui s'en charge ou qu'on affiche une variable (pas ex pour la couleur) en php. Le mieux ici est de faire un classe en CSS qui va faire ce style.

J'espère t'avoir aidé.

Tchoupi
Auteur

Bonsoir,

Pour l'url, le .php je les retiré car je trouve ça plus propre et pour le $url_global c'est en faite un raccourci :
Voici la page avec toutes les variables du même genre :

<?php
        // ExtreGlobal
            $title = $title_site;
            $css_site = "/theme/css/common.css";

    //ExtraBoutique
        // $buy_idp = $starpass_idp;
        // $buy_idd = $starpass_idd;

        //ExtraGg_PTS
            // $nbr_points_1 = $nbr_1;
            // $nbr_points_1_VIP = $nbr_1_VIP;
            // $cout_point_1 = 1;
            // $nbr_points_2 = $nbr_2;
            // $nbr_points_2_VIP = $nbr_2_VIP;
            // $cout_point_2 = 2;
            // $points_cadeau_vip = $pts_cadeau_vip;

    // ExtreAccet
            $url_images = "images/";
               $url_devtool = "/theme/img/devtool/";
               $url_emotes = "/theme/img/emots/";
               $url_global = "/theme/img/global/";
               $url_elements = "/theme/img/elements/";
               $url_galerie = "/theme/img/gallery/";
               $url_mods = "/theme/mods/";
               $url_avatar = "theme/img/avatar/";
               $url_avatar_head = "theme/img/avatar/heads/";
               $url_alignement = "theme/img/avatar/heads/align/";
               $url_alignement_cadre = "theme/img/avatar/heads/align/cadre/";
               $url_forum = "theme/img/forum/";
               $url_sexe = "theme/img/sexe/";              

        // ADMIN
               $lien_admin = "".WEBROOT."admin/admin";
               $lien_admin_news = "".WEBROOT."admin/news";
               $lien_admin_admin = "".WEBROOT."admin/admin";
               $lien_admin_staff = "".WEBROOT."admin/staff";
               $lien_admin_equipement = "".WEBROOT."admin/equipement";
               $lien_admin_arme = "".WEBROOT."admin/arme";
               $lien_admin_maj = "".WEBROOT."admin/maj";
               $lien_admin_livredor = "".WEBROOT."admin/livredor";
               $lien_admin_membre = "".WEBROOT."admin/membre";
               $lien_admin_dedicace = "".WEBROOT."admin/dedicace";
               $lien_admin_maintenance = "".WEBROOT."admin_maintenance.php";

        // Partie MEMBRE
               $lien_pageperso = "".WEBROOT."pagePerso";
                $lien_compte = "".WEBROOT."membre/compte";
                $lien_personnage = "".WEBROOT."membre/personnage";
                $lien_membre_compte = "".WEBROOT."membre/compte";
                $lien_connexion = "".WEBROOT."membre/connexion";
                $lien_deconnexion = "".WEBROOT."deconnexion";
                $lien_inscription = "".WEBROOT."membre/inscription";
                $lien_membre_information = "".WEBROOT."membre/information";
                $lien_modifier_information = "".WEBROOT."membre/modifier_info";
        // Partie FORUM 
                $lien_forum = "".WEBROOT."forum/index";
        // ExtraLien
            $lien_dedicace = "".WEBROOT."dedicace";
            $lien_404 = "".WEBROOT."404";
            $lien_maj = "".WEBROOT."maj";
            $lien_livredor = "".WEBROOT."livredor";
            $lien_recrutement = "".WEBROOT."recrutement";
            $lien_changlogs = "".WEBROOT."changlogs";
            $lien_none = "#";
            $lien_home = "".WEBROOT."home";
            $lien_rejoindre = "".WEBROOT."rejoindre";
            $lien_classement = "".WEBROOT."ladder";
            $lien_loterie = "".WEBROOT."use_loterie";
            $lien_points = "".WEBROOT."points";
            $lien_histoire = "".WEBROOT."histoire";
            $lien_compte = "".WEBROOT."membre/compte";
            $lien_tchat = "".WEBROOT."tchat";
            $lien_cgu = "".WEBROOT."cgu";
            $lien_experience = "".WEBROOT."experience";
            $lien_getin = "".WEBROOT."rejoindre";
            $lien_vip = "".WEBROOT."vip";
            $lien_vote = "".WEBROOT."voter";
            $lien_staff = "".WEBROOT."staff";
            $lien_twitter = "https://twitter.com/DauphusFR";

?>

Cette page me sert à modifier plus rapidement un lien ou autre, exemple pour les images.
Si un jour je modifie un lien je n'aurais juste à modifier ici et non sur toutes mes pages de mon site

$url_global représente donc ici le dossier -> /theme/img/global/

Voici à quoi ressemble mon site. c'est un fansite sur le jeu de dofus.

Image plus grande

Tchoupi
Auteur

up

Le design est génial, pour un débutant c'est très bien.

Ensuite, explique un peu mieux de problème stp, je n'ai pas très bien compris ton problème.

(j'espère pouvoir t'aider car ça fait longtemps que je ne code plus en "dur" comme ça :D)
Si tu veux avoir un site très bien fait, je te conseilles d'utiliser un frameWork utilisant le modèle MVC (attention, plusieurs mois d'apprentissage)

Tchoupi
Auteur

J'ai essayé d'apprendre le MVC mais j'accroche pas du tout, j'ai trop dû mal.

Je préfère manier à fond la méthode normal pour le moment.

Donc je vais t'expliquer un peu plus mon problème.
Mon site fonctionne avec les url sous ce type :
localhost/site/home
localhost/site/admin/add-news

Donc aucun .php et j'ai essayer de faire un système de pagination et commentaire mais je dois passer par la méthode GET.
Pour ma pagination en tant normal c'est comme ceci :
localhost/site/home.php?p=1

Mais avec la méthode obStart et le rewrite les .php sont refusés et me redirige donc sur la page home.
J'ai donc essayé home?p=1 mais pareil, il me dit qu'il ne connait pas la page.
Donc je pense que c'est par rapport au rewrite mais je sèche d'où ça peux venir.

Bonsoir, si c'est pour afficher tes commentaires fait comme sa:

if(isset($_GET('p')){
//t'es requètes sql du genre
$sql = 'SELECT * FROM commentaire WHERE post_id = :id';
$prepare = $connection->prepare($sql);               
$prepare->execute(array(':id' => $_GET'p']));
//Ensuite tu affiche tout les commentaires avec une boucle
 while($comments = $prepare->fetch()){
//vérifie si tu as un résultat
 if(!comments){
  echo 'Aucun commentaire';
 }else{
  echo '<div id="machin">;
  echo '<div id="machin title">;
  echo $comments'name'];
  echo '</div>';
  echo '<div id="machin content">;
  echo $comments'content'];
  echo '</div></div>';
  }
 }
}

En gros dans ta database tu as une colone post_id (l'id du news ou de la page associé).

Je sais que la programmation avec le PHP objet et la méthode MVC est très dur, il faut énormément de temps d'apprentissage.
Mais la méthode "normal" n'est pas bonne ; si tu veux faire un très bon site, il te faudra passer par de l'MVC, bien que ça demande minimum 3 mois d'apprentissage.

Par exemple avec cakephp en environ 3 lignes on a déjà un système de pagination, avec 10 lignes on a le système de pagination adapté à notre design. On récupère et affiche notre contenu en environ 20 lignes, et on créait un système de commentaire en 30.

C'est sur que c'est compliqué, mais les 3 mois se rentabilise, si on s'y accroche ;)