Souci avec quele que bbcode.php des regex

Fermé
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 - 18 sept. 2008 à 19:12
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 - 4 oct. 2008 à 17:03
Bonjour,

voilà un livre d'or

http://forum.exemple.free.fr/index.php

donc le souci c'est les puces et les possitions centrer gauche droites justifiers

voilà son code

// Balise Des Listes Des Puces

$texte = preg_replace('`\<liste\>`isU', '<ul>$1</ul>', $texte);
$texte = preg_replace('`\<puce\>`isU', '<li>', $texte);
$texte = preg_replace('`\<br \>`isU', '</li>', $texte);

// Positions
// Balise Des Textes Centrers

$texte = preg_replace('`\<position valeur = centrer\>(.+)\</position\>`isU', '<div class="centrer">$1</div>', $texte); 

// Balise Des Textes Droite

$texte = preg_replace('`\<position valeur = droite\>(.+)\</position\>`isU', '<span class="droite">$1</span>', $texte); 
// Balise Des Textes Gauche

$texte = preg_replace('`\<position valeur = gauche\>(.+)\</position\>`isU', '<span class="gauche">$1</span>', $texte); 
// Balise Des Textes Justifier

$texte = preg_replace('`\<position valeur = justifier\>(.+)\</position\>`isU', '<span class="justifier">$1</span>', $texte); 


donc a partir de puces il les mets hors du cadre

merci de votre aide
A voir également:

34 réponses

will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 10
20 sept. 2008 à 00:50
re

excuse moi j'ai testé juste mis une phrase à droite

http://forum.exemple.free.fr/index.php

la phrase dépase le cadre

car j'ai fais un petit teste

si on met :

<position valeur = droite>mot</position>


il dépasse du cadre

mais par contre si on met

<position valeur = droite>mot</position>

bonjour


si on met un mot aprés on fait sauté une ligne en fessant entré
là il ne dépasse pas le cadre

enfin c'est juste un détail

tu peux tester tu verras

tu me diras si tu veux revoir un petit code pour quoi dés qu'on met un mot à droite il dépasse le cadre

en sachant il ne mettra jamais un mot a droite sur la dernier ligne

mais il faut quand même résoudre ce petit souci

merci

ps tu peux tester pour voir
0
Bonjour,

Oui c'est pas grand chose, Je vais modifier le CSS et te tien informé.
0
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 10
20 sept. 2008 à 12:42
en faite c'est juuste un petit détail mais rien d'importance

je crois que c'est juste le position droit qui fait ça car j'ai fais les autres ça ne fais pas pareil

mais il faut faire un par un pour voir si ça ne dépasse pas du cadre

je vais éssayé de le faire un par un pour voir si tout marche

et je te dirais si tout marche où il y as un code qui beugue
0
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 10
20 sept. 2008 à 14:03
re

j'ai mis tout les bbcodes en fessant a chaque bbcode un message
donc voilà

http://forum.exemple.free.fr/index.php

donc il y as 2 soucis

1/ c'est le position droit ça vas être réglés dés que tu auras le temp

2/ le dernier souci comme il y as 3 pages

si on clique sur 1 ou 2 où 3 il me renvoy sur une page érreur

voilà la page où j'ai mis les chiffres des pages

voilà le code

<?php
      include('includes/connect01.php');
      include('bbcode/bbcode.php');

      //Si personne n'a posté

      $premier = mysql_query("SELECT COUNT(*) AS message_post FROM livre_d_or");
	  $message = mysql_fetch_array($premier);
	  $total = $message['message_post'];
	  if ($total == 0)
	  {
	  echo '<br /><br />Soyez le premier à poster !</p>';
	  }
	  if ($total >= 1)
	  {

      //----------------------------------------------------------------------------------------------//
	  //Si quelqun a déja posté
	  // On met dans une variable le nombre de messages qu'on veut par page

      $nombreDeMessagesParPage = 15;

      // Essayez de changer ce nombre pour voir :o)
	  // On récupère le nombre total de messages

      $retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM livre_d_or");
	  $donnees = mysql_fetch_array($retour);
	  $totalDesMessages = $donnees['nb_messages'];

      // On calcule le nombre de pages à créer

      $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);

      // Puis on fait une boucle pour écrire les liens vers chacune des pages

      echo '<p class="pages" align="center">Page : ';
	  for ($i = 1 ; $i <= $nombreDePages ; $i++)
	  {
	  echo '<a href="livre_d_or.php?page=' . $i . '">' . $i . '</a> ';
	  }

      // --------------- Etape 3 ---------------
	  // Maintenant, on va afficher les messages
	  // ---------------------------------------

      if (isset($_GET['page']))
	  {
	  $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livre_d_or.php?page=4)
	  }
	  else

      // La variable n'existe pas, c'est la première fois qu'on charge la page

      {
	  $page = 1;

      // On se met sur la page 1 (par défaut)

      }

      // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL

      $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
	  $reponse = mysql_query('SELECT * FROM livre_d_or ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

      echo'</p>';

      //On fait une boucle pour afficher tout les messages

      while ($donnees = mysql_fetch_array($reponse))
	  {

      //A partir d'ici tu doit faire appel à ta fonction de parsage comme ceci

      $message_parse = code($donnees['message']);

      ?>

      <div class="pseudo">Posté par :<a> <?php echo $donnees['pseudo']; ?></a> Le <a><?php echo $donnees['date']; ?></a> à <a><?php echo $donnees['heure']; ?> heure(s)</a></div>
<br />
      <div class="message"><?php echo code(stripslashes(nl2br($donnees['message']))); ?></div>
<br />
      <?php

      //On ferme le else

      }

      //On ferme la boucle

      }
	  if ($total == 0)

      //On se deconnecte

      mysql_close();

      if ($total >=1)
	  {

      // --------------- Etape 1 -----------------
	  // Si un message est envoyé, on l'enregistre
	  // -----------------------------------------

      if (isset($_POST['pseudo']) AND isset($_POST['message']))
	  {
	  $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));

      // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité

      $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));

      // De même pour le message

      $message = nl2br($message);

      // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
	  // On peut enfin enregistrer :o)

      mysql_query("INSERT INTO livre_d_or  VALUES('', '".$_POST['pseudo']."', '".$_POST['message']."')");
	  }

      // --------------- Etape 2 -----------------
	  // On écrit les liens vers chacune des pages
	  // -----------------------------------------

      // On met dans une variable le nombre de messages qu'on veut par page

      $nombreDeMessagesParPage = 20;

      // Essayez de changer ce nombre pour voir :o)
	  // On récupère le nombre total de messages

      $retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM livre_d_or");
	  $donnees = mysql_fetch_array($retour);
	  $totalDesMessages = $donnees['nb_messages'];

      // On calcule le nombre de pages à créer

      $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);

      // Puis on fait une boucle pour écrire les liens vers chacune des pages

      echo '<p align="center" class="pages">Page : ';
	  for ($i = 1 ; $i <= $nombreDePages ; $i++)
	  {
	  echo '<a href="livre_d_or.php?page=' . $i . '">' . $i . '</a></p>';
	  }

      //On ferme if

      }
	  if ($total == 0)
	  ?>



merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour will.smith,

Déja, pour le positionnement de droite qui sort du flux, j'ai ajouté "overflow:auto;" dans la classe ".message", et j'ai également ajouté "margin-bottom:10px;" pour espacer les messages.

Voila la classe ".message" complète.

.message
{
overflow:auto;
clear:inherit;
margin-left:80px;
margin-right:80px;
margin-bottom:10px;
padding:5px;
border-left:1px dashed #FFFFFF; /* couleur du cadre */
border-right:1px dashed #FFFFFF;
border-bottom:1px dashed #FFFFFF;
border-top:1px dashed #FFFFFF;
color:#FFFFFF;
}

Pour la sélection des pages, je vais regarder et te tiens informé.
0
Pour le problème des pages. Aux lignes 39 et 147, il faut remplacer :

livre_d_or.php

Par :

index.php

Voila c'est tout.
0
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 10
20 sept. 2008 à 14:33
re

désolé je n'ai pas fait attention à la page

mais il y as encore juste un petit truc en haut de la page

Page : 1 2 3

donc en haut c'est bon

mais celle du bas il y as une érreur il met

Page : 12

donc il as oublié de mettre la page 3

merci

et pour les positions droit c'est bon tout fonctionne
0
Re,

Alors pour le nombre de pages en bas, à la ligne 129, il faut remplacer :

$nombreDeMessagesParPage = 20;

Par :

$nombreDeMessagesParPage = 15;

Voila.
0
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 10
20 sept. 2008 à 16:22
merci ça marche

et là j'ai passé sur le w3

il me dit pas d'érreur

car j'ai mis ça

          <div align="center" class="texte_blanc">
      <?php include('includes/connect01.php');
	  $reponse = mysql_query("SELECT COUNT(*) AS nbr_mess FROM livre_d_or");
	  $donnees = mysql_fetch_array($reponse);
	  $total = $donnees['nbr_mess'];
	  if ($total == 0)
	  {
	  echo 'Aucun message n\'a été posté';
	  }
	  if ($total == 1)
	  {
	  echo '' . $total . ' message a été posté';
	  }
	  if ($total > 1)
	  {
	  echo '' . $total . ' messages ont été postés';
	  }
	  
	  include('livre_d_or/message.php');
	  ?></div>


mais le souci tout est centré

donc je remet


      <p align="center" class="texte_blanc">
      <?php include('includes/connect01.php');
	  $reponse = mysql_query("SELECT COUNT(*) AS nbr_mess FROM livre_d_or");
	  $donnees = mysql_fetch_array($reponse);
	  $total = $donnees['nbr_mess'];
	  if ($total == 0)
	  {
	  echo 'Aucun message n\'a été posté';
	  }
	  if ($total == 1)
	  {
	  echo '' . $total . ' message a été posté';
	  }
	  if ($total > 1)
	  {
	  echo '' . $total . ' messages ont été postés';
	  }
	  
	  include('livre_d_or/message.php');
	  ?></p>


et là c'est tout est normal mais par contre il me dit il y as 32 érreurs

http://validator.w3.org/...

merci de me dire pour quoi entre le div et p il y as des érreurs
0
Re,

Donc :
One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").

C'est que le "<p>" est mal encapsulé, comme par exemple dans un élément "<a>", "<span>", or "<font>".

Pourquoi tu n'utilise pas le "<div>" sans align="center" si le problème est que tout est centré ?
0
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 10
20 sept. 2008 à 18:43
re

en faite c'est un peux bizzare j'ai un peux trafiqué le css

si on met dans w3c

http://forum.exemple.free.fr/index.php

pas d'érreur

si on met

http://forum.exemple.free.fr/index.php?page=1

pas d'érreur

http://forum.exemple.free.fr/index.php?page=2

pas d'érreur

si on met dans w3c la 3 éme pages donc

http://forum.exemple.free.fr/index.php?page=3

il me dit 13 érreurs

http://validator.w3.org/...

on dirais il y as une érreur au niveau des puces dans bbcode.php

donc

// Balise Des Listes Des Puces 

$texte = preg_replace('`\<liste\>`isU', '<ul>$1</ul>', $texte); 
$texte = preg_replace('`\<puce\>`isU', '<li>', $texte); 
$texte = preg_replace('`\<br \>`isU', '</li>', $texte); 



et si on regarde la source à la page des puces voilà ceux qu'il donne

<div class="pseudo">Posté par :<a> liste de puce</a> Le <a>20/09/2008</a> à <a>13:33 heure(s)</a></div> 
<br /> 
<div class="message"><ul></ul><li>bonjour<br /><br /> 
<ul></ul><li>au revoir</div> 
<br /> 


on dirais il as oublier de mettre un /

car il met <il> au lieu </il>

et pour temps on as bien mis </il> mais il n'a pas tout à fais compris

merci
0
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 10
21 sept. 2008 à 19:03
re

il y as aussi une érreur sur w3c au niveau du lien et les puces

// Balises Des Liens 

$texte = preg_replace('`\<lien\>(.+)\</lien\>`isU', '<a href="$1" target="_blank" alt="lien" title="lien">$1</a>', $texte); 


merci de ton aide
0
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 10
21 sept. 2008 à 23:30
re juste pour te dire que je vais crée un autre sujet pour mes érreurs car j'ai mis sur mon site le livre qui as plus de bbcode donc ce sujet est résolue

merci pour ton aide pour ces problémes

a tout de suite pour l'autre sujet lol qui seras érreur w3c pour mon site perso lol
0
will.smith Messages postés 256 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 10
4 oct. 2008 à 17:03
re

es ce que tu est rentré car j'ai encore un souci avec les puces

merci de m'aidé et dés que tu répond je t'expliquerais car greg m'a pas encore répondu pour les regex du livre d'or

merci de ton aide
0

Discussions similaires