Partage
  • Partager sur Facebook
  • Partager sur Twitter

BBcode

et javascript

    1 octobre 2006 à 13:16:22

    Bonjour, j'ai un petit problème, je comprend pas comment afficher le bbcode sur ma page de news :euh: , d'après se que j'ai compris sur le tuto d'under-wars, j'ai fait sa:


    <?php
    mysql_connect("sql.free.fr", "************", "**********") or die (mysql_error(erreur));
    mysql_select_db("alexis_vuillaume");

    // On récupère les 5 dernières news
    $retour = mysql_query("SELECT * FROM systemenew ORDER BY id DESC LIMIT 0, 5") or die (mysql_error());
    while ($donnees = mysql_fetch_array($retour))
    {
    ?>
    <script language="Javascript">
    function parse($donnees['contenu'])
    {
      //remplacer les [b] [/b], par des <strong> </strong>
      $message = preg_replace('!\[b\](.+)\[/b\]!isU','<strong>$1</strong>',$donnees['contenu']);
      //devinez ^^
      $message = preg_replace('!\[u\](.+)\[/u\]!isU','<span style="text-decoration:underline;">$1</span>',$donnees['contenu']);
      //devinez encore ^^
      $message = preg_replace('!\[i\](.+)\[/i\]!isU','<em>$1</em>',$donnees['contenu']);
      $message = preg_replace('!\[s\](.+)\[/s\]!isU','<span style="text-decoration:line-through;">$1</span>',$donnees['contenu']);
      //on peut en faire encore plein!
      $message = preg_replace('!\[img\](.+)\[/img\]!isU','<img resizemod="on" onload="rmw_img_loaded(this)" src="$1" border="0" />',$donnees['contenu']);
      $message = preg_replace('!\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]!is','<a href="$1" target="_blank">$2</a>',$donnees['contenu']);
      $message = preg_replace('!\[titre\](.+)\[/titre\]!isU','<h1>$1</h1>',$donnees['contenu']);
      $message = preg_replace('!\[sous-titre\](.+)\[/sous-titre\]!isU','<h3>$1</h3>',$donnees['contenu']);
      $message = preg_replace('!\[tmb\](.+)\[/tmb\]!isU','<a href="$1" target="_blank"><img src="$1" alt="Cliquez pour agrandir" title="Cliquez pour agrandir" border="0" width="150"></a>',$message);
      $message = preg_replace('!\[center\](.+)\[/center\]!isU','<center>$1</center>',$donnees['contenu']);

      return $donnees['contenu'];
    }
    </script>
            <h4 class="new">
                    <?php echo $donnees['titre']; ?> <br />
                   
                    <em>Ecrit par <?php echo $donnees['pseudo'] ?> le <?php echo date('d/m/Y \à H\hi', $donnees['timestamp']); ?></em>
            </h3>
           
            <p class="contenuedenew">
            <?php
            //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
            $contenu = nl2br(stripslashes($donnees['contenu']));
            echo $contenu;
            ?>
            </p>

    <?php
    }  // Fin de la boucle des news
    ?>


    C'est mon code qui ne marche pas?

    PS: c'est juste des bou de code mis a coté, je vais refaire ensuite le systeme de new quand j'aurais compris comment faire marché tout sa ensemble, pour que le code sois indenté et aéré. Comment fair marcher tout sa en symbiose?

    Merci pour votre aide!
    • Partager sur Facebook
    • Partager sur Twitter
      1 octobre 2006 à 21:43:09

      Il y a un gros souci dans ton code. Tu mélange le javascript qui s'execute cote client une fois que la page est générée, et le php qui est un langage cote serveur qui s'execute avant la génération de la page. Tes variables ne peuvent etre lues par le javascript.

      Le javascript doit etre executé sur les données de ton formulaire pour faire uniquement la prévisualisation et placer des balises du style [gras] [/gras] dans ton formulaire. Les données sont en fait envoyées telles que saisies (avec les balises du bbcode placées grace au javascript). Tu dois te protéger de l'insertion de balises html avant de les afficher par htmlentities par exemple, et tu places ton code de parsage avant l'affichage des donnees de maniere à remplacer les balises de ton bbcode ([gras] [/gras] par exemple) par leur équivalent en html.

      En gros, on peut résumer tout ça par :
      saisie des donnees -> bbcode en javascript pour inserer des balises de ton cru ([gras] [/gras] par exemple) -> enregistrement dans la base de donnees -> protection par php (htmlentities par exemple) -> parsage en php -> affichage.

      Voilou. :p
      • Partager sur Facebook
      • Partager sur Twitter
        1 octobre 2006 à 23:00:22

        Loufoca j'ai édité ton message. Balancer ses identifiants c'est de l'inconscience ^^

        EDIT de delphiki: on a édité en même temps roto :p
        • Partager sur Facebook
        • Partager sur Twitter
          1 octobre 2006 à 23:14:13

          Bonjour j ai aussi un probleme de java script et BBcode... comment envoyé une chaine de caractere ou un ASCII dans un champ de text d'une page X a partire d'une page Y!
          ou d'une Iframe...
          Car je n'arrive que a le fair si tout se trouve sur la meme page :'(
          HELP HELP HELP
          mon msn jo@nokio.org
          • Partager sur Facebook
          • Partager sur Twitter
            2 octobre 2006 à 7:18:45

            bon j'ai modifier mon code, et sa donne sa:



            <?php
            mysql_connect("sql.free.fr", "*******", "******") or die (mysql_error(erreur));
            mysql_select_db("alexis_vuillaume");

            // On récupère les 5 dernières news
            $retour = mysql_query("SELECT * FROM systemenew ORDER BY id DESC LIMIT 0, 5") or die (mysql_error());
            while ($donnees = mysql_fetch_array($retour))
            {
            ?>

                    <h4 class="new">
                            <?php echo $donnees['titre']; ?> <br />
                           
                            <em>Ecrit par <?php echo $donnees['pseudo'] ?> le <?php echo date('d/m/Y \à H\hi', $donnees['timestamp']); ?></em>
                    </h3>
                   
                           <p class="contenuedenew">
                    <?php
                    //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
                    $contenu = nl2br(stripslashes($donnees['contenu']));
                            ?>
                            <?php
                            function parse($contenu)
            {
              $contenu = preg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>',$donnees['contenu');
              //devinez ^^
              $contenu = preg_replace('!\[u\](.+)\[/u\]!isU','<span style="text-decoration:underline;">$1</span>',$contenu);
              //devinez encore ^^
              $contenu = preg_replace('!\[i\](.+)\[/i\]!isU','<em>$1</em>',$contenu);
              $contenu = preg_replace('!\[s\](.+)\[/s\]!isU','<span style="text-decoration:line-through;">$1</span>',$contenu);
              //on peut en faire encore plein!
              $contenu = preg_replace('!\[img\](.+)\[/img\]!isU','<img resizemod="on" onload="rmw_img_loaded(this)" src="$1" border="0" />',$contenu);
              $contenu = preg_replace('!\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]!is','<a href="$1" target="_blank">$2</a>',$contenu);
              $contenu = preg_replace('!\[titre\](.+)\[/titre\]!isU','<h1>$1</h1>',$contenu);
              $contenu = preg_replace('!\[sous-titre\](.+)\[/sous-titre\]!isU','<h3>$1</h3>',$contenu);
              $contenu = preg_replace('!\[tmb\](.+)\[/tmb\]!isU','<a href="$1" target="_blank"><img src="$1" alt="Cliquez pour agrandir" title="Cliquez pour agrandir" border="0" width="150"></a>',$message);
              $contenu = preg_replace('!\[center\](.+)\[/center\]!isU','<center>$1</center>',$contenu);

              return $contenu;
            }
            ?>
            <?php
                    echo $contenu;
                    ?>
                    </p>

            <?php
            }  // Fin de la boucle des news

            Puis quand je teste j'ai se message d'erreur:

            Fatal error: Cannot redeclare parse() (previously declared in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/MSJtest.php:143) in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/MSJtest.php on line 143


            la ligne 143 c'est la ligne ou ya marqué function parse '$contenu)

            EDIT: j'a un doute, esque sa serait pas un problème de mauvaise variable?
            • Partager sur Facebook
            • Partager sur Twitter
              3 octobre 2006 à 12:41:03

              Il me semble que tu aurais plus de chance d'obtenir réponse en postant sur le forum php...

              A première vue, je dirais que tu déclares ta fonction parse, mais que tu ne l'appelles pas. Maintenant ton message d'erreur semble indiquer que tu l'aurais déjà déclarée ?

              Tu peux tester ces 2 options:

              - tu supprimes ta fonction et exécute directement le code:
                    <?php
                      //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
                      $contenu = nl2br(stripslashes($donnees['contenu']));
                $contenu = preg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>',$donnees['contenu');
                //devinez ^^
                $contenu = preg_replace('!\[u\](.+)\[/u\]!isU','<span style="text-decoration:underline;">$1</span>',$contenu);
                //devinez encore ^^
                $contenu = preg_replace('!\[i\](.+)\[/i\]!isU','<em>$1</em>',$contenu);
                $contenu = preg_replace('!\[s\](.+)\[/s\]!isU','<span style="text-decoration:line-through;">$1</span>',$contenu);
                //on peut en faire encore plein!
                $contenu = preg_replace('!\[img\](.+)\[/img\]!isU','<img resizemod="on" onload="rmw_img_loaded(this)" src="$1" border="0" />',$contenu);
                $contenu = preg_replace('!\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]!is','<a href="$1" target="_blank">$2</a>',$contenu);
                $contenu = preg_replace('!\[titre\](.+)\[/titre\]!isU','<h1>$1</h1>',$contenu);
                $contenu = preg_replace('!\[sous-titre\](.+)\[/sous-titre\]!isU','<h3>$1</h3>',$contenu);
                $contenu = preg_replace('!\[tmb\](.+)\[/tmb\]!isU','<a href="$1" target="_blank"><img src="$1" alt="Cliquez pour agrandir" title="Cliquez pour agrandir" border="0" width="150"></a>',$message);
                $contenu = preg_replace('!\[center\](.+)\[/center\]!isU','<center>$1</center>',$contenu);

                      echo $contenu;
                      ?>


              ou alors, en gardant la fonction (mais si elle est vraiment déjà définie je pense que tu auras aussi le msg d'erreur):

                      <?php
                      //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
                      $content = nl2br(stripslashes($donnees['contenu']));

                              function parse($contenu)
              {
                $contenu = preg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>',$donnees['contenu');
                //devinez ^^
                $contenu = preg_replace('!\[u\](.+)\[/u\]!isU','<span style="text-decoration:underline;">$1</span>',$contenu);
                //devinez encore ^^
                $contenu = preg_replace('!\[i\](.+)\[/i\]!isU','<em>$1</em>',$contenu);
                $contenu = preg_replace('!\[s\](.+)\[/s\]!isU','<span style="text-decoration:line-through;">$1</span>',$contenu);
                //on peut en faire encore plein!
                $contenu = preg_replace('!\[img\](.+)\[/img\]!isU','<img resizemod="on" onload="rmw_img_loaded(this)" src="$1" border="0" />',$contenu);
                $contenu = preg_replace('!\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]!is','<a href="$1" target="_blank">$2</a>',$contenu);
                $contenu = preg_replace('!\[titre\](.+)\[/titre\]!isU','<h1>$1</h1>',$contenu);
                $contenu = preg_replace('!\[sous-titre\](.+)\[/sous-titre\]!isU','<h3>$1</h3>',$contenu);
                $contenu = preg_replace('!\[tmb\](.+)\[/tmb\]!isU','<a href="$1" target="_blank"><img src="$1" alt="Cliquez pour agrandir" title="Cliquez pour agrandir" border="0" width="150"></a>',$message);
                $contenu = preg_replace('!\[center\](.+)\[/center\]!isU','<center>$1</center>',$contenu);

                return $contenu;
              }

                      echo parse($content);
                      ?>
                   


              Remarques:

              -dans l'exemple 2 j'ai remplacé ta 1ère variable $contenu pas $content parce que j'ai un doute si on pouvait utiliser le même nom dans la fonction; je pense que oui, mais dans le doute j'ai préféré jouer la sûreté.

              -je balbutie en php donc aucune garantie sur ce que je propose ;) mais comme tu n'avais pas de réponse j'ai tenté ma chance ;)
              • Partager sur Facebook
              • Partager sur Twitter
                3 octobre 2006 à 19:49:49

                Merci bbeaucoup, je vais essayer

                EDIT: sa ne marche pas;

                la première méthode sa me met sa:

                Citation : mon site


                Parse error: syntax error, unexpected ';' in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/MJStest2.php on line 142




                la seconde n'affiche rien de rien o_O même pas le menu, rien la pge et blanche
                • Partager sur Facebook
                • Partager sur Twitter
                  3 octobre 2006 à 21:19:26

                  k

                  bon, pour le premier visiblement y a une parenthèse pas fermée ou qqch du genre mais sans avoir tout le code j'ai de la peine à le dire (je ne sais pas quelle ligne est la 142 et ce qui vient avant ;) )

                  Pour la 2ème, j'aurais du te proposer d'office de remplacer le nom de la fonction pour éviter tout conflit avec une existance ou si jamais parse était un mot réservé (j'ai vérifié avant mais je peux avoir rater la coche...), par exemple:

                  function bbcode2html($contenu){
                  ...
                  }

                  echo bbcode2html($content);
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 octobre 2006 à 6:39:59

                    ben j'ai changer le nom de la fonction, et sa marche presque, car maintenant c'est plus la ligne 143 qui était
                    fonction parse(contenu)

                    maintenant c'est la ligne 145 quii et sa:
                    $contenu = preg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>',$donnees['contenu');
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 octobre 2006 à 9:47:23

                      Citation : loufoca


                      $contenu = npreg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>',$donnees['contenu');


                      ah ben voui évidement essaie avec ça:

                      $contenu = npreg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>',$contenu);
                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 octobre 2006 à 12:05:16

                        bon, j'ai essayer sa, et sa a marcher, donc maintenant je n'est plus se message d'erreur, mais un autr :(...

                        Citation : erreur

                        Parse error: syntax error, unexpected T_VARIABLE in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/MJStest2.php on line 148



                        et j'ai modifier un peut le code, le voici:

                                <?php
                                //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
                                $content = nl2br(stripslashes($donnees['contenu']));

                                       
                                        function bbcode2html($contenu)
                        {
                          $contenu = npreg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>'
                          //devinez ^^
                          $contenu = preg_replace('!\[u\](.+)\[/u\]!isU','<span style="text-decoration:underline;">$1</span>'
                          //devinez encore ^^
                          $contenu = preg_replace('!\[i\](.+)\[/i\]!isU','<em>$1</em>'
                          $contenu = preg_replace('!\[s\](.+)\[/s\]!isU','<span style="text-decoration:line-through;">$1</span>'
                          //on peut en faire encore plein!
                          $contenu = preg_replace('!\[img\](.+)\[/img\]!isU','<img resizemod="on" onload="rmw_img_loaded(this)" src="$1" border="0" />'
                          $contenu = preg_replace('!\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]!is','<a href="$1" target="_blank">$2</a>'
                          $contenu = preg_replace('!\[titre\](.+)\[/titre\]!isU','<h1>$1</h1>'
                          $contenu = preg_replace('!\[sous-titre\](.+)\[/sous-titre\]!isU','<h3>$1</h3>'
                          $contenu = preg_replace('!\[tmb\](.+)\[/tmb\]!isU','<a href="$1" target="_blank"><img src="$1" alt="Cliquez pour agrandir" title="Cliquez pour agrandir" border="0" width="150"></a>'
                          $contenu = preg_replace('!\[center\](.+)\[/center\]!isU','<center>$1</center>'

                          return $contenu;
                        }

                                echo bbcode2html($contenu);
                                ?>
                             

                        <?php
                        }  // Fin de la boucle des news
                        ?>


                        et la ligne 148 et en et cellez si:
                        $contenu = preg_replace('!\[u\](.+)\[/u\]!isU','<span style="text-decoration:underline;">$1</span>'
                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 octobre 2006 à 13:10:36

                          mais euh c'est quoi ce code ?!

                          Là, soit y a un bug d'affichage, soit il faudrait quand même que tu apprennes un minimum des bases de programmation...

                          Pourquoi as-tu viré la fin de chaque ligne ?

                          - la fonction npreg_replace ne sait plus dans quelle chaîne de caractères elle doit remplacer puisque tu as viré le dernier argument; elle attend une variable qu'elle essaie de trouver d'où ton message d'erreur...
                          - la parenthèse n'est pas fermée
                          - Il n'y a pas de point-virgule à la fin de la ligne

                          Si il y a encore un truc qui devait faire foirer c'est probablement celui-ci:

                            $contenu = preg_replace('!\[tmb\](.+)\[/tmb\]!isU','<a href="$1" target="_blank"><img src="$1" alt="Cliquez pour agrandir" title="Cliquez pour agrandir" border="0" width="150"></a>',$message);


                          où il faut remplacer le $message par $contenu

                          Après il est clair que la fonction aurait pu être écrite de manière plus efficace mais ce n'est pas en supprimant des trucs au petit bonheur la chance que ça va fonctionner et je n'ai perso pas du temps à passer pour le faire ;) de plus vu mon niveau mon code ne serait probablement pas optimal...
                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 octobre 2006 à 14:40:06

                            Je pense que candygirl a raison. Tu devrais prendre le temps de lire les cours de mateo et faire attention à ce que tu écris (en php comme en français d'ailleurs :p ). Je sais c'est barbant mais en programmation, ça ne pardonne pas car si tu oublies un point virgule ou une parenthèse, tu auras à chaque fois un message d'erreur.

                            Ensuite, même si tu as un tel message prends le temps de le lire. Si ton niveau en anglais n'est pas très bon, c'est tout de même compréhensible. Regarde ce que tu as écrit à la ligne indiquée par le message et si tu penses ne pas avoir fait de faute, regarde les lignes qui précèdent car l'erreur peut venir de là.

                            Si tu prends le temps de suivre ces quelques recommandations, tu devrais avancer beaucoup plus facilement et réussir à te débrouiller un peu plus par toi même...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              5 octobre 2006 à 18:21:28

                              je crois que j'ai réglé le problème en fesant se que vous m'avez dit, voici le code:

                              <p>Voici les dernières news :</p>

                              <?php
                              mysql_connect("sql.free.fr", "*****", "*******") or die (mysql_error(erreur));
                              mysql_select_db("alexis_vuillaume");

                              // On récupère les 5 dernières news
                              $retour = mysql_query("SELECT * FROM systemenew ORDER BY id DESC LIMIT 0, 5") or die (mysql_error());
                              while ($donnees = mysql_fetch_array($retour))
                              {
                              ?>

                                      <h4 class="new">
                                              <?php echo $donnees['titre']; ?> <br />
                                             
                                              <em>Ecrit par <?php echo $donnees['pseudo'] ?> le <?php echo date('d/m/Y \à H\hi', $donnees['timestamp']); ?></em>
                                      </h3>
                                     
                                             <p class="contenuedenew">
                                     
                                      <?php
                                      //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
                                      $content = nl2br(stripslashes($donnees['contenu']));

                                             
                                              function bbcode2html($contenu)
                              {
                                $contenu = npreg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>',);
                                //devinez ^^
                                $contenu = preg_replace('!\[u\](.+)\[/u\]!isU','<span style="text-decoration:underline;">$1</span>',$contenu);
                                //devinez encore ^^
                                $contenu = preg_replace('!\[i\](.+)\[/i\]!isU','<em>$1</em>',$contenu);
                                $contenu = preg_replace('!\[s\](.+)\[/s\]!isU','<span style="text-decoration:line-through;">$1</span>',$contenu);
                                //on peut en faire encore plein!
                                $contenu = preg_replace('!\[img\](.+)\[/img\]!isU','<img resizemod="on" onload="rmw_img_loaded(this)" src="$1" border="0" />',$contenu);
                                $contenu = preg_replace('!\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]!is','<a href="$1" target="_blank">$2</a>',$contenu);
                                $contenu = preg_replace('!\[titre\](.+)\[/titre\]!isU','<h1>$1</h1>',$contenu);
                                $contenu = preg_replace('!\[sous-titre\](.+)\[/sous-titre\]!isU','<h3>$1</h3>',$contenu);
                                $contenu = preg_replace('!\[tmb\](.+)\[/tmb\]!isU','<a href="$1" target="_blank"><img src="$1" alt="Cliquez pour agrandir" title="Cliquez pour agrandir" border="0" width="150"></a>',$contenu);
                                $contenu = preg_replace('!\[center\](.+)\[/center\]!isU','<center>$1</center>',$contenu);

                                return $contenu;
                              }

                                      echo $contenu;
                                      ?>
                                   

                              <?php
                              }  // Fin de la boucle des news
                              ?>


                              Mais maintenant je ne comprend pas, rien ne s'affiche même pas le menu
                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 octobre 2006 à 18:28:49

                                Citation : loufoca



                                        echo $contenu;


                                Tout à la fin, de nouveau tu as oublié de faire appel à ta fonction en lui donnant comme paramétre ton texte que tu es allé cherché dans ta bdd.

                                remplace par:

                                echo bbcode2html($content);


                                et au début de ta fonction tu as:

                                  $contenu = npreg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>',);


                                de nouveau il manque le dernier argument qui dit dans quel texte exécuter le remplacement
                                à remplacer par


                                $contenu = npreg_replace('!\[gras\](.+)\[/gras\]!isU','<strong>$1</strong>',$contenu);
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 octobre 2006 à 20:39:22

                                  j'ai fait sa, et le menu revien avec le cadre des new, par contre, dans le cadre ou devrai se trouver mes new ya marqué:

                                  Citation : erreur


                                  Fatal error: Call to undefined function: npreg_replace() in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/MJStest2.php on line 146

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    5 octobre 2006 à 20:42:12

                                    le nom de la fonction c'est preg_replace, y a pas de n devant sorry, j'avais pas remarqué avant
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      5 octobre 2006 à 20:49:42

                                      j'ai enlever le n et maintenant la page et redevenu blanche

                                      EDIT:

                                      en faite la page et revenur avec mes menu, et ya 1 new qui et apparue, mais les balise [italic][/italic] son la et sa aussi X D ...

                                      et sinon, en bas de la première new, ya un autr cadre de new avec marqué dedans:

                                      Citation : erreur


                                      Fatal error: Cannot redeclare bbcode2html() (previously declared in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/MJStest2.php:144) in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/MJStest2.php on line 144

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        5 octobre 2006 à 21:05:45

                                        Il faut que le nom de la variable a laquelle tu applique le bbcode soit le meme que dans ta fonction dans se cas la contenu et non content ( "bbcode2html($contenu)" )
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          5 octobre 2006 à 21:08:17

                                          Je l'ai fait, et....

                                          le contenu de la première new a disparue

                                          par contre le message dérreur et rester
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            5 octobre 2006 à 21:12:08

                                            Citation : loufoca


                                            Citation : erreur


                                            Fatal error: Cannot redeclare bbcode2html() (previously declared in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/MJStest2.php:144) in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/MJStest2.php on line 144



                                            Il faut sortir la fonction de la boucle; tu déplaces toute la fonction (depuis function jusqu'au } de fermeture) avant ton while. Par contre tu gardes l'appel dans la boucle. Après, tu rebalances ton code ici si ça ne fonctionne toujours pas pour voir où ça coince.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              5 octobre 2006 à 21:15:53

                                              GRILLED :p
                                              <p>Voici les dernières news :</p>

                                              <?php
                                              mysql_connect("sql.free.fr", "*****", "*******") or die (mysql_error(erreur));
                                              mysql_select_db("alexis_vuillaume");
                                                  function bbcode($text) {
                                                      $text = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'<img src=\\1' . str_replace(' ', '%20', '\\3') . '>'", $text);
                                                  $text = preg_replace("#\[url\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/url\]#sie", "'<a href=\"\\1' . str_replace(' ', '%20', '\\3') . '\" target=blank>\\1\\3</a>'", $text);
                                                      $text = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/", "<a href=$1 target=blank>$2</a>", $text);
                                                   
                                                      $text = preg_replace("/\[b\](.+?)\[\/b\]/", "<b>$1</b>", $text);
                                                      $text = preg_replace("/\[i\](.+?)\[\/i\]/", "<i>$1</i>", $text);
                                                      $text = preg_replace("/\[u\](.+?)\[\/u\]/", "<u>$1</u>", $text);
                                                      $text = preg_replace("/\[code\](.+?)\[\/code\]/", "<table width=100%><tr><th align=left>Code :</th></tr><tr><td align=left><code >$1 < /code></td></tr></table>", $text);
                                                    $text = preg_replace("/\[quote\](.+?)\[\/quote\]/", "<table width=100%><tr><th align=left>citation :</th></tr><tr><td align=left>$1</td></tr></table>", $text);
                                                     $text = preg_replace("/\[quote=(.+?)\](.+?)\[\/quote\]/", "<table width=100%><tr><th align=left>$1 :</th></tr><tr><td align=left>$2</td></tr></table>", $text);
                                                     $text = preg_replace("/\[color=(.+?)\](.+?)\[\/color\]/", "<font color=$1>$2</font>", $text);
                                                 
                                                     return $text;
                                                 }

                                              // On récupère les 5 dernières news
                                              $retour = mysql_query("SELECT * FROM systemenew ORDER BY id DESC LIMIT 0, 5") or die (mysql_error());
                                              while ($donnees = mysql_fetch_array($retour))
                                              {
                                              ?>

                                                      <h4 class="new">
                                                              <?php echo $donnees['titre']; ?> <br />
                                                             
                                                              <em>Ecrit par <?php echo $donnees['pseudo'] ?> le <?php echo date('d/m/Y \à H\hi', $donnees['timestamp']); ?></em>
                                                      </h3>
                                                     
                                                             <p class="contenuedenew">
                                                     
                                                      <?php
                                                      //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
                                                      $text = nl2br(stripslashes($donnees['contenu']));

                                                           
                                                      echo bbcode($text);
                                                      ?>
                                                   

                                              <?php
                                              }  // Fin de la boucle des news
                                              ?>



                                              Ta fonction etait dans une boucle .... -_-'

                                              EDIT: Voila le code devrait marcher comme sa
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                5 octobre 2006 à 21:18:41

                                                LE GRAS MARCHE!! JE VAIS CHERCHER POUR FAIRE MARCHER LES AUTRE

                                                Vous ête génial, bravo et merci candy et speed et jerry

                                                MERCI!!

                                                EDIT: j'ai trouver le probleme, en faite, j'ai m'y comme balise [italic] et il remplacais que [i] j'ai modifier et sa marche!!
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  5 octobre 2006 à 21:25:31

                                                  essais mon code voir si il marche ;)
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    5 octobre 2006 à 21:32:25

                                                    Citation : speedking

                                                    Il faut que le nom de la variable a laquelle tu applique le bbcode soit le meme que dans ta fonction dans se cas la contenu et non content ( "bbcode2html($contenu)" )



                                                    Non, pas nécessairement. Et dans ce cas c'était juste de mettre $content puisque c'était le nom de la variable qui contenait son texte, cf:
                                                    $content = nl2br(stripslashes($donnees['contenu']));


                                                    A part ça c'est cool que tu aies tout remis en forme et j'espère que ça va fonctionner, parce que perso, vu mon niveau en php, j'étais sûre de laisser des erreurs et pas trop envie de m'amuser à tester :)
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      5 octobre 2006 à 21:33:17

                                                      nan marche pas: voici l'erreur qu'il me marque:


                                                      Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /mnt/109/sdc/7/1/alexis.vuillaume/site sand/boo1.php on line 122


                                                      EDIT:

                                                      Personne ne connais le code pour mettre les smylet :p ?

                                                      bon bonne nuit, et encort merci
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        5 octobre 2006 à 22:07:22

                                                        c'est la quelle la ligne que je rectifi le code ^^ (erreur de tape surement ^^)
                                                        Pour les smiley rajoute sa a la fin de la fonction avant le "return"
                                                        $smileys = array(":p","^^","xD",":mdr:",":o",":)");   
                                                        $paths = array("/images/smiley/langue.gif","/images/smiley/HS.gif","/images/smiley/xd.gif",
                                                        "/images/smiley/mort_de_rire.gif","/images/smiley/siffle.gif","/images/smiley/100t.gif");
                                                        for($i=0;$i<count($smileys);$i++) {
                                                           $message = str_replace($smileys[$i],'<img  src='.$paths[$i].'>',$message); }


                                                        Pas tres dur a comprtendre dans le premier tableau tu as les racourcis clavier et dans le second les chemins vers les smiley (dans lordre d'ajout du premier tableau)
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          6 octobre 2006 à 6:30:36

                                                          En fait c'est moi qui et fait planter le code, j'avais fait une faute dans mon pseudo pour me conecter a MYSQL, et j'ai réparé, et sa marche niquelle

                                                          par contre j'ai un petit problême pour les smylie j'ai refait le code pour que les variable s'aplique, et quand je teste le code, : D a disparue, mais par contre, l'image ne se mait pas...

                                                          $smileys = array(":p","^^",":D",":mdr:",":o",":)");   
                                                          $paths = array("/images/smiley/langue.gif","/images/smiley/HS.gif","http://www.siteduzero.com/Templates/images/smilies/heureux.png",
                                                          "/images/smiley/mort_de_rire.gif","/images/smiley/siffle.gif","/images/smiley/100t.gif");
                                                          for($i=0;$i<count($smileys);$i++) {
                                                             $contenu = str_replace($smileys[$i],'<img  src='.$paths[$i].'>',$contenu); }



                                                          EDIT:

                                                          JE vien de modifier le code, car le code remplacer la bale [img], et je les m'y en [image], et maintenant les smyli marche, ton code de smyli marche, ben merci beaucoup!!

                                                          EDIT2:

                                                          comment on met que le probleme et réglé?

                                                          EDIT3:

                                                          j'ai commencez le code pour mettre de la couleur, mais j'ai un problème, j'ai essayer de faire que sa remplace [color="couleur"] par la couleur qui faut, mais je n'y arive pas... je suis trop nul
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          BBcode

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown