php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.01.2005, 22:04  
Gast
 
Beiträge: n/a
Standard [Erledigt] bb code innerhalb von bb code geht nicht

hi,

ich bin dabei ein kleines Forum zu programmieren, auch mit bb code. Der funktioniert auch, nur wenn ich bb-code innerhab von bb code machen will, geht das nicht. Dann wird der BB Code zwar umgewandelt, aber der html-code wird dann angezeigt. Da werden glaub ich magic_quotes eingetragen... Hier die wichtigsten funktionen:
PHP-Code:
<?php
// HTML verhindern
function noHTML($html)
    {
        
//$html = stripslashes($html);
        
$html strip_tags($html);
        return 
$html;
    } 

        
// bb tags definieren
    
function bb_code($text)
    {
        
$pattern = array(    '|\[b\](.*)\[/b\]|smUi',
                    
'|\[i\](.*)\[/i\]|smUi',
                    
'|\[u\](.*)\[/u\]|smUi',
                    
'|\[list\](.*)\[/list\]|smUi',
                    
'|\[list=1\](.*)\[/list\]|smUi',
                    
'|\[list=2\](.*)\[/list\]|smUi',
                                
'|\[li\](.*)\[/li\]|smUi',
                                
'|\[url=(.*)\](.*)\[/url\]|smUi',
                                
'|\[url\](.*)\[/url\]|smUi',
                    
'|\[size=(.*)\](.*)\[/size\]|smUi',
                    
'|\[color=(.*)\](.*)\[/color\]|smUi',
                    
'|\[email=(.*)\](.*)\[/email\]|smUi',
                    
'|\[email\](.*)\[email\]|smUi',
                    
'|\[quote\](.*)\[/quote\]|smUi',
                    
'|\[quote=(.*)\](.*)\[/quote\]|smUi',
                );

        
$replace = array(    '[b]\\1[/b]',
                    
'[i]\\1[/i]',
                    
'<u>\\1</u>',
                    
'<ul>\\1[/list]',
                    
'[list=1]\\1[/list]',
                    
'[list=a]\\1[/list]',
                    
'[*]\\1',
                    
'<a href=\"http://\\1\" target=\"_blank\">\\2</a>',
                                
'<a href=\"http://\\1\" target=\"_blank\">\\1</a>',
                    
'<span style=\"font-size: \\1px ß">\\2</span>',
                    
'<span style=\"color: \\1;\">\\2</span>',
                    
'<a href=\"mailto:\\1\">\\2</a>',
                    
'<a href=\"mailto:\\1\">\\1</a>',
                    
'<div><p class="quote_title">Zitat:</p><p class="quote">\\1</p></div>',
                    
'<div><p class="quote_title">\\1 schrieb:</p><p class="quote">\\2</p></div>',
                );

        
$text preg_replace($pattern,$replace,$text);
        
$text str_replace('http://http://','http://',$text);
        
$text $this->smileys($text);
        
        return 
$text;
    }
?>
In der post.php lass ich den inhalt ($_POST['content']) durch die bb funktionen laufen:
PHP-Code:
<?php
if(isset($_POST['submit']))
{
    
//header('refresh:5;forum.php');
    
ob_end_flush();

    
// test wether or not user is registered and logged in
    
if(isset($_SESSION['ID']))
    {
        
$author "".$_SESSION['ID']."";
    } else
    {
        
$author "Unbekannter User";
    }


    
// IP Sperre
    //$forum->ip_hold();

    // destroy magic quotes
    
$main->array_stripslashes($_GET); 
    
$main->array_stripslashes($_POST); 
    
$main->array_stripslashes($_COOKIE); 



    
$text $forum->noHTML($_POST['message']);
    
$text $forum->bb_code($text);

    if(
$_POST['mode'] == "edit")
    {
        
$message $forum->edit($cfg['db_answers'], $_POST['title'], $text$_POST['post_id']);
    }
    elseif(
$_POST['mode'] == "reply")
    {
        
$thread_id $_POST['thread_id'];
        
$message $forum->insert($author$_POST['title'], $text$thread_id);
    }
    elseif(
$_POST['mode'] == "quote")
    {
        
$thread_id $_POST['thread_id'];
        
$message $forum->insert($author$_POST['title'], $text$thread_id);
    }
    elseif(
$_POST['mode'] == "new_thread")
    {
        
$thread_id "";
        
$message $forum->insert($author$_POST['title'], $text$thread_id);
    }
    
    echo 
$message;
} else
// posting formular
}
?>
die funktion "array_strip_slashes" macht das:
PHP-Code:
<?php
function array_stripslashes($str)
    {
        if(
is_string($str))
        {
            
$str stripslashes($str);
        } else
        {
            if(
is_array($str))
            {                 
                foreach(
$str AS $key => $value)
                {
                }
            }  
        }
    }
?>
Hier noch ein Beispiel für einen Fehlerhaften Datenbankeintrag:
Zitat:
&lt;div&gt;&lt;p class=&quot;quote_title&quot;&gt;koelle schrieb:&lt;/p&gt;&lt;p class=&quot;quote&quot;&gt;&lt;b&gt;fett&lt;/b&gt;

&lt;a href=\&quot;http://www.google.de\&quot; target=\&quot;_blank\&quot;&gt;google&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.01.2005, 17:27  
Erfahrener Benutzer
 
Registriert seit: 17.08.2004
Beiträge: 213
carrib befindet sich auf einem aufstrebenden Ast
Standard

Verwendest Du in den edit() und insert() Methoden die Funktion htmlentities()?
carrib ist offline  
Alt 12.01.2005, 17:29  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard Re: bb code innerhalb von bb code geht nicht

Zitat:
Zitat von koelle
Hier noch ein Beispiel für einen Fehlerhaften Datenbankeintrag:
Zitat:
&lt;div&gt;&lt;p class=&quot;quote_title&quot;&gt;koelle schrieb:&lt;/p&gt;&lt;p class=&quot;quote&quot;&gt;&lt;b&gt;fett&lt;/b&gt;

&lt;a href=\&quot;http://www.google.de\&quot; target=\&quot;_blank\&quot;&gt;google&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
ähm du schreibst html in die datenbank? öhm blub

also wenn dann sollte es von der logik her so sein -> BBCode in der DB-abspeichern (damit man noch editieren kann) und bei der ausgabe dann erst einmal htmlentities drüber und dann den bbcode ersetzen.

mfg
robo47
robo47 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme mit PHP Code HappyDieMuschel PHP Tipps 2008 7 28.05.2008 06:34
[Erledigt] PHP Code aus Datenbank ayti PHP Tipps 2008 8 26.05.2008 19:40
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Nur bestimmten Html Code zulassen? litterauspirna PHP Tipps 2008 5 29.04.2008 12:30
bb code in htm code wandeln janni PHP Tipps 2007 2 04.11.2005 22:36
JS Code in PHP Code?? HTML, Usability und Barrierefreiheit 12 08.08.2005 15:45
Seite 1/2/3..Code was haltet ihr davon? Matthiasnet PHP Tipps 2005-2 4 29.07.2005 20:29
[Erledigt] Lesbarkeit von Code Off-Topic Diskussionen 6 14.07.2005 14:48
code aus db mit eval replacen chief-thomson PHP Tipps 2005-2 4 08.07.2005 15:33
Fehler im Code, kann ihn nicht finden PHP Tipps 2005 9 16.05.2005 16:17
Bestätigungmail code? PHP Tipps 2005 7 16.05.2005 13:18
[Erledigt] BB Code entfernen PHP Tipps 2005 2 25.04.2005 15:20
code gesucht Beitragsarchiv 6 10.03.2005 03:14
Referenzen (lies Pointer) innerhalb mehrdimensionaler Arrays PHP-Fortgeschrittene 2 17.09.2004 14:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bb codes programmieren, bbcode wie geht das, php bbcode entfernen, bbcode damit html geht, javascript bb_code, bbcode list funktioniert nicht?, bb code programmieren, bb codes gehen nicht auf der seite, code bbcode entfernen, url bbcode php, php bbcode list, bbcode wie geht das?, code wird innerhalb, function bb_code(id, bb){, php eigene bbcodes, bbcode gehen nicht mehr, bbcodes php liste, bb code aus db in html, wie geht bb code, [list=][/list] bbcode geht nicht

Alle Zeitangaben in WEZ +1. Es ist jetzt 19:00 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.