MyBB.de Forum

Normale Version: HTML in Profilfeldern?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6
Muss das ganze dann so aussehen:
PHP-Code:
        if(is_array($useropts) && ($type == "multiselect" || $type == "checkbox"))
        {
            foreach(
$useropts as $val)
            {
                if(
$val != '')
                {
                require_once 
MYBB_ROOT."inc/class_parser.php";
                
$parser = new postParser;
                
$parser_options = array(
                    
"allow_html" => 1,
                    
"allow_mycode" => 1,
                    
"allow_smilies" => 1,
                    
"allow_imgcode" => 1
                
);
                
$customfieldval .= $parser->parse_message("<li style=\"margin-left: 0;\">{$val}</li>"$parser_options);
                }
            }
            if(
$customfieldval != '')
            {
                
$customfieldval "<ul style=\"margin: 0; padding-left: 15px;\">{$customfieldval}</ul>";
            }
        } 
PHP-Code:
require_once MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;
$parser_options = array(
    
"allow_html" => 1,
    
"allow_mycode" => 1,
    
"allow_smilies" => 1,
    
"allow_imgcode" => 1
);

if(
$val != '')
{
    
$val $parser->parse_message($val$parser_options);
    
$customfieldval .= "<li style=\"margin-left: 0;\">{$val}</li>";

(04.10.2008, 16:36)StefanT schrieb: [ -> ]Probiere:
PHP-Code:
if($customfield['type'] == "textarea")
            {
                require_once 
MYBB_ROOT."inc/class_parser.php";
                
$parser = new postParser;
                
$parser_options = array(
                    
"allow_html" => 1,
                    
"allow_mycode" => 1,
                    
"allow_smilies" => 1,
                    
"allow_imgcode" => 1
                
);
                
$customfieldval $parser->parse_message($userfields[$field], $parser_options);
            } 
Habe ich gerade eingesetzt. Jetzt sieht man im Profil zwar die kleinen Grafiken, statt des Codes, dafür ist aber in allen Beiträgen, unter dem Userfoto, wo sonst diese Grafiken auch erschienen, nur noch ellenlanger Code zu sehen. Wie bekomme ich das wieder hin?
Du musst auch in der Datei inc/functions_post.php den Profilfeldinhalt durch den Parser schicken. Versuchs mal unter dieser Zeile:
PHP-Code:
$post[$post_field] = htmlspecialchars_uni($field_value); 
So müsste es dann aussehen:
PHP-Code:
$post[$post_field] = htmlspecialchars_uni($field_value);
require_once 
MYBB_ROOT."inc/class_parser.php";
$customparser = new postParser;
$customparser_options = array(
    
"allow_html" => 0,
    
"allow_mycode" => 1,
    
"allow_smilies" => 1,
    
"allow_imgcode" => 1
);
$post[$post_field] = $customparser->parse_message($post[$post_field], $customparser_options); 
Das bringt leider noch keine Änderung.
Bei allow html habe ich vorher eine 1 gesetzt, hat aber nichts gebracht.
Wie sieht die Ausgabe denn genau aus? Handelt es sich bereits um HTML-Code oder ist der MyCode noch zu sehen?
Nein, das muss ich besser erklären.
In der "postbit_author_user" habe ich das hier stehen
PHP-Code:
{$post[fid7]}<br />{$post[fid8]}<br />{$post[fid9]}<br /> 
Das wurde bisher immer automatisch in die entsprechende Grafik/Icons umgewandelt.
Jetzt nach dem Update sieht es so aus
[attachment=4379]
Und als ich deinen Code einsetzte, hat sich daran nichts geändert.
Ok, dann haben wir aneinander vorbeigeredet.

HTML in Profilfeldern zu erlauben ist grundsätzlich ein Sicherheitsrisiko, da ein Benutzer z.B. auch einen Code für eine Weiterleitung unterbringen kann. Deshalb wurde das mit MyBB 1.4.5 geändert, damit man die Variablen $post['fidX'] gefahrlos direkt im Template postbit_author_user unterbringen kann.

Folgender Codeblock in der Datei inc/functions_post.php ist dafür verantwortlich:
PHP-Code:
    // Sanatize our custom profile fields for use in templates, if people choose to use them
    
foreach($post as $post_field => $field_value)
    {
        if(
substr($post_field03) != 'fid')
        {
            continue;
        }
        
$post[$post_field] = htmlspecialchars_uni($field_value);
    } 
Wenn du diesen Teil entfernst, verhält sich das Forum wie in vorherigen Versionen. Allerdings ist es dann wieder möglich, dass HTML-Code ungefiltert neben Beiträgen ausgegeben wird.
Oh, wie schade! Gilt das auch für das HTMLerlauben im Profil?
Ja. HTML zu erlauben bergt immer ein gewisses Risko. Genau aus diesem Grund gibt es ja nur sowas wie BBCode.
Seiten: 1 2 3 4 5 6