login  Naam:   Wachtwoord: 
Registreer je!
 Forum

UBB Code's

Offline Dement - 07/07/2005 19:46 (laatste wijziging 07/07/2005 19:47)
Avatar van DementNieuw lid ik heb een nieuws systeem met ubb gemaakt maar het werkt niet.
dit is m'n script:
  1. <?php
  2.  
  3. $bericht = str_replace("[b]","<b>",$bericht);
  4. $bericht = str_replace("[/b]","</b>",$bericht);
  5. $bericht = str_replace("[i]","<i>",$bericht);
  6. $bericht = str_replace("[/i]","</i>",$bericht);
  7. $bericht = str_replace("[u]","<u>",$bericht);
  8. $bericht = str_replace("[/u]","</u>",$bericht);
  9.  
  10. db_connect();
  11. $query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
  12. $sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
  13. while($record = mysql_fetch_object($sql))
  14. {
  15. echo"<b>$record->titel</b> - By: <i>$record->auteur</i> @ $record->datum<br>
  16. <br>$record->bericht<br>
  17. ------------------------------------------------------<br><br>
  18. ";
  19. }
  20. ?>

in mijn post staan dan gewoon [b ] en [/b ]
ik snap het niet...

8 antwoorden

Gesponsorde links
Offline rambo - 07/07/2005 19:48
Avatar van rambo HTML beginner Probeer dit eens:

  1. <?php
  2. db_connect();
  3. $query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
  4. $sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
  5. while($record = mysql_fetch_object($sql))
  6. {
  7. $bericht = $record->bericht;
  8. $bericht = str_replace("[b]","<b>",$bericht);
  9. $bericht = str_replace("[/b]","</b>",$bericht);
  10. $bericht = str_replace("[i]","<i>",$bericht);
  11. $bericht = str_replace("[/i]","</i>",$bericht);
  12. $bericht = str_replace("[u]","<u>",$bericht);
  13. $bericht = str_replace("[/u]","</u>",$bericht);
  14. echo"<b>" . $record->titel . "</b> - By: <i>" . $record->auteur . "</i> @ " . $record->datum . "<br>
  15. <br>" . $bericht . "<br>
  16. ------------------------------------------------------<br><br>
  17. ";
  18. }
  19. ?>
Offline Rens - 07/07/2005 19:51 (laatste wijziging 07/07/2005 19:53)
Avatar van Rens Gouden medaille

Crew algemeen
En waar hoort $bericht vandaan te komen?
Juist, die begint pas in de while loop .
Ik zou het in een functie zetten, 1 keer de functie maken en je kunt hem altijd aanroepen.

En (natuurlijk) vars BUITEN quotes.

Zo dus:

  1. <?PHP
  2. function ubb($sBericht)
  3. {
  4. $sReturn = str_replace("[b]","<b>",$sBericht);
  5. $sReturn = str_replace("[/b]","</b>",sReturn);
  6. $sReturn = str_replace("[i]","<i>",sReturn);
  7. $sReturn = str_replace("[/i]","</i>",sReturn);
  8. $sReturn = str_replace("[u]","<u>",sReturn);
  9. $sReturn = str_replace("[/u]","</u>",sReturn);
  10. return $sReturn;
  11. }
  12.  
  13. db_connect();
  14. $query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
  15. $sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
  16. while($record = mysql_fetch_assoc($sql))
  17. {
  18. echo "<b>".$record['titel']."</b> - By:<i>".$record['auteur']."</i> @ ".$record['datum']."<br><br>".ubb($record['bericht'])."<br>------------------------------------------------------<br><br>";
  19. }
  20. ?>
Offline BonMarche - 07/07/2005 20:04 (laatste wijziging 07/07/2005 20:04)
Avatar van BonMarche PHP beginner dit is niet zo slim. in een tabel heb je hier niet zoveel last van, maar stel dat er in het bericht alleen een [ b ] tag staat en dus geen [ /b ] tag, dan wordt alle tekst daaronder ook vet.
Je kunt beter een reguliere expressie gebruiken, dan worden (afhankelijk van de regex) alleen netjes gesloten tags omgezet:

  1. <?php
  2. $bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
  3. ?>


door die i (#si) is hij niet hoofdlettergevoelig. als hij dat dus wel moet zijn kun je de i weghalen.
Offline Dement - 07/07/2005 20:38 (laatste wijziging 07/07/2005 20:41)
Avatar van Dement Nieuw lid Het werkt niet =(
ik heb nu dit:
  1. <?php
  2. db_connect();
  3. $query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
  4. $sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
  5. while($record = mysql_fetch_object($sql))
  6. {
  7. $bericht = $record->bericht;
  8. $bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
  9. $bericht = str_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
  10. $bericht = str_replace('#\[u\](.*?)\[/u\]#si', '<b>\1</b>',$bericht);
  11.  
  12. echo"<b>$record->titel</b> - By: <i>$record->auteur</i> @ $record->datum<br>
  13. <br>$record->bericht<br>
  14. ------------------------------------------------------<br><br>
  15. ";
  16. }
  17. ?>


ik heb nog een vraag, hoe kan ik ervoor zorgen dat als ik een regel openlaat dat dat ook daadwerkelijk gebeurt in men post??
maar ik bedoel dus niet

  1. <?php str_replace("[br]","<br>",$Bericht); ?>


Offline AcIdBuRn - 07/07/2005 21:44
Avatar van AcIdBuRn HTML beginner regel openlaten na enter in bericht:
  1. <?php nl2br($bericht) ?>


de fout in je gehele script kan in het volgende zitten:
  1. <?php
  2. $bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
  3. $bericht = str_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
  4. $bericht = str_replace('#\[u\](.*?)\[/u\]#si', '<b>\1</b>',$bericht);
  5. ?>


Dit moet zijn:
  1. <?php
  2. $bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
  3. $bericht = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
  4. $bericht = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>',$bericht);
  5. ?>
Offline Dement - 07/07/2005 22:30
Avatar van Dement Nieuw lid het werkt nog altijd niet 
er staat nog altijd gewoon [ b ] en [/ b ]
en die regel openlaten ook niet 
maar moet die ubb code gewoon komen te staan waar dat bericht word getoont of moet ie ook ergens anders staan??
dit heb ik nu:

  1. <?php
  2.  
  3.  
  4.  
  5. db_connect();
  6. $query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
  7. $sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
  8. while($record = mysql_fetch_object($sql))
  9. {
  10. $bericht = $record->bericht;
  11. nl2br($bericht);
  12. $bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
  13. $bericht = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
  14. $bericht = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>',$bericht);
  15.  
  16. echo"<b>$record->titel</b> - By: <i>$record->auteur</i> @ $record->datum<br>
  17. <br>$record->bericht<br>
  18. ------------------------------------------------------<br><br>
  19. ";
  20. }
  21. ?>


ik snap er nix van
Offline Rens - 07/07/2005 22:47 (laatste wijziging 07/07/2005 22:48)
Avatar van Rens Gouden medaille

Crew algemeen
Je hebt bij het echoën van het bericht nog steeds $record->bericht staan, dat zal niet werken neej^^
En hou die variabelen nou eens buiten quotes:!:

  1. <?PHP
  2. db_connect();
  3. $query = "SELECT * FROM nieuws ORDER BY id"; //Query aamaken
  4. $sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
  5. while($record = mysql_fetch_assoc($sql))
  6. {
  7. $bericht = $record['bericht'];
  8. $bericht = nl2br($bericht);
  9. $bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
  10. $bericht = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
  11. $bericht = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>',$bericht);
  12.  
  13. echo "<b>".$record['titel']."</b> - By: <i>".$record['auteur']."</i> @ ".$record['datum']."<br><br>".$bericht."<br>------------------------------------------------------<br><br>";
  14. }
  15. ?>
Offline Dement - 07/07/2005 23:32
Avatar van Dement Nieuw lid Thanx works!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.283s