ilch Forum » Allgemein » HTML, PHP, SQL,... » Keine Smilies nach ajax-Request

Geschlossen
  1. #1
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Hallo zusammen,

    ich habe für eine Seite die Kommentar-Funktion in den News so umgebaut, dass diese per Ajax-Request geladen werden.
    Jetzt ist es aber leider so, dass beim Posten eines Kommentares, welcher einen Smily enthält, dieser nicht als Smily angezeigt wird, sondern als Text, also zb ":D"
    Diese genannte Seite ist UTF-8 kodiert.
    Ich habe den selben Umbau bereits auf meiner Seite getätigt, dort klappt das einwandfrei. Meine Seite ist ISO-8859-1 kodiert.
    Könnte es generell mit der Kodierung zu tun haben?
    Oder hat jemand eine Idee, was das Problem sein könnte? Eventuell findet sich auch jemand, der mir per Teamviewer mal über die Schultern schaut?
    Hier mal der Code meiner Request-Datei:
    <?php
    
    #   Copyright by: Outi
    #   Support: www.ilch.de
    
    
    defined('main') or die('no direct access');
    
    switch($menu->get(2)) {
        case 'add':
            $success = false;
            if (empty($_POST['txt'])) {
                $errorMsg = 'Kein Text vorhanden';
            } else {
                $errorMsg = 'Unbekannter Fehler';
            }
            if ((loggedin() OR chk_antispam('newskom')) AND $allgAr['Nukoms'] == 1 AND !empty($_POST['name']) AND !empty($_POST['txt'])) {
                $nid = escape($_POST['nid'], 'integer');
                $txt = escape(utf8_decode($_POST['txt']), 'string');
                $name = escape(utf8_decode($_POST['name']), 'string');
                
                if (checkName($name) or loggedin()) {
                    if (loggedin()) {
                        $name = $_SESSION['authname'];
                    }
                    
                    db_query("INSERT INTO `prefix_koms` (`uid`,`cat`,`name`,`text`,`date`) VALUES (" . $nid . ",'NEWS','" . $name . "','" . $txt . "', '" . time() . "')");
                    
                    $success = true;
                    
                    ob_start();
                    $tpl = new tpl('news');
                    renderComments($nid, $tpl);
                    $comments = ob_get_clean();
                } else {
                    $errorMsg = 'Dieser Name ist bereits an einen User vergeben, benutze bitte einen anderen.';
                }
            }
            $response = array(
                'comments' => utf8_encode($comments),
                'success' => $success,
                'errorMsg' => $errorMsg
            );
            echo json_encode($response);
            exit;
            break;
    }
    
    /**
     * Stellt Newskommentare dar
     * @global type $lang
     * @param type $nid
     * @param tpl $tpl
     */
    function renderComments($nid, tpl $tpl)
    {
        global $lang;
        $erg1 = db_query("SELECT k.text, k.date, k.name, k.id, k.editname, k.editdate, u.avatar, u.id as uid
                FROM `prefix_koms` AS k
                LEFT JOIN `prefix_user` AS u ON k.name = u.name
                WHERE uid = " . $nid . " AND cat = 'NEWS' ORDER BY id DESC");
        
        $ergAnz1 = db_num_rows($erg1);
        if ($ergAnz1 == 0) {
            echo '<b>' . $lang['nocomments'] . '</b>';
        } else {
            $zahl = $ergAnz1;
            $side = 'right';
            while ($row1 = db_fetch_assoc($erg1)) {
                $row1['text'] = bbcode(trim($row1['text']));
                if (has_right(- 7, 'news') OR $row1['name'] == $_SESSION['authname']) {
                    $del = '<a data-nid="' . $nid . '" data-cid="' . $row1['id'] . '" data-username="' . $row1['name'] . '" href="#" class="del-comment"><img src="include/images/icons/del.gif" alt="l&ouml;schen" border="0" title="l&ouml;schen" /></a>';
                } else {
                    $del ='';
                }
                
                $side   = ($side == 'right' ? 'left' : 'right');
                $side2  = ($side == 'left' ? 'right' : 'left');
                
                if ($_SESSION['authname'] == $row1['name'] OR has_right(-7, 'news')) {
                    $edit = '<a data-nid="' . $nid . '" data-cid="' . $row1['id'] . '" href="#" class="edit-comment"><img src="include/images/icons/edit.gif" alt="bearbeiten" border="0" title="bearbeiten" /></a>';
                } else {
                    $edit = '';
                }
                
                if ($row1['uid']) {
                    $ulink  = '<a href="index.php?user-details-'.$row1['uid'].'">';
                    $ulink2 = '</a>';
                } else {
                    $ulink = '';
                    $ulink2= '';
                }
                
                if ( file_exists($row1['avatar'])) {
                    $avatar = $row1['avatar'];
                } else {
                    $avatar = 'include/images/avatars/gast.png';
                }
                
    //            if (!empty($row1['editname']) AND !empty($row1['editdate'])) {
    //                $lastedit = '<br><br>Zuletzt modifiziert von '.$row1['editname'].' am '.date('d.m.Y | H:i',$row1['editdate']);
    //            } else {
    //                $lastedit = '';
    //            }
                
                $tpl->set_ar_out(array(
                    'NAME'      => $row1['name'],
                    'TEXT'      => $row1['text'],
                    'CID'       => $row1['id'],
                    'ZAHL'      => $zahl,
                    'ULINK'     => $ulink,
                    'ULINK2'    => $ulink2,
                    'CDATE'     => date('d.m.Y | H:i \U\h\r',$row1['date']),
                    'SIDE'      => $side,
                    'SIDE2'     => $side2,
                    'DEL'       => $del,
                    'EDIT'      => $edit,
    //                'lastedit'  => $lastedit,
                    'AVATAR'    => $avatar
                        ), 4);
                $zahl--;
            }
        }
    }


    Kleiner Nachtrag: BBCode funktioniert.

    Danke schon mal...

    Grüße Outi


    verwendete ilch Version: 1.1 P

    Kann geschlossen werden, Mairu hat geholfen!!! Danke dafür!!!


    Zuletzt modifiziert von Outi77 am 14.05.2015 - 10:33:17
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten