2014-05-07 3 views
0

Я создал систему, в которой пользователь входит в систему и сохраняет аватар через CKEditor/KCFinder через текстовое поле. Он работает так, как я хочу, чтобы он работал. Изображения сохраняются в папке и пути к ним в базе данных. Проблема возникает, когда я пытаюсь отображать изображения в таблице. Я продолжаю получать двойные теги html, и я не могу найти способ избежать их, чтобы получить только то, что мне нужно для отображения изображений.Не удается найти изображения с путями, хранящимися в базе данных

Вот сценарий:LinkLabel это имя строки, где путь аватара сохраненным

<?php 
    require_once "../scripts/conector.php"; 

    if (!$_GET['pid']) { 
    $pageid = '1'; 
    } else { 
     $pageid = preg_replace('/[^0-9]/', "", $_GET['pid']); // filter everything but numbers for security 
    } 

    $sqlCommand = "SELECT id, linklabel FROM pages WHERE showing='1' ORDER BY id ASC"; 
    $query = mysqli_query($myConnection, $sqlCommand) or die('Error: ' . mysqli_error($myConnection)); 

    $listadeavatars = ''; 
    while ($row = mysqli_fetch_array($query)) { 
     $pid = $row["id"]; 
     $avatar = "<img src='" . $row["linklabel"] . "' height='160' width='160'/>"; 

     $listadeavatars .= '<tr> 
           <td>' . $avatar . '</td> 
           <td>' . $pid . '</td> 
          </tr>'; 
    } 
    mysqli_free_result($query); 
?> 

А вот выход HTML, когда я проверить HTML:

<img width="160" height="160" src="<img alt="" src="/nysida/admin/kcfinder/upload/images/avatar/avatar.jpg" style="height:160px; width:160px" />"> 

Как я могу избавиться от двойного HTML, чтобы отображать изображения?

UPDATE:

Если я использую просто $avatar = $row["linklabel"];, то результат будет показано ниже: enter image description here

+0

Что случилось с вашей второй пример то, просто используя '$ avatar = $ row ["linklabel"];' напрямую? Похоже на действительный тег ... –

+0

Что не так, что я не хочу отображать HTML, я хочу отобразить изображение. Если я перейду на '$ avatar = $ row ["linklabel"]; то я получаю вывод HTML, который сохраняется в базе данных. Пожалуйста, дайте мне знать, если я не объясню себя хорошо. – viriato

+0

Извините, я не понимаю. Вы говорите, что не хотите HTML, но Это HTML, необходимый для отображения изображения ... Как еще вы могли бы отобразить изображение? –

ответ

1

Похоже $row["linklabel"] уже содержит весь <img> тег, просто изменить

$avatar = "<img src='" . $row["linklabel"] . "' height='160' width='160'/>"; 

$avatar = $row["linklabel"]; 

UPDATE

Если вы видите, фактический тег на веб-странице, вам необходимо также декодировать тег изображения, используя html_entity_decode(), например, так:

$avatar = html_entity_decode($row["linklabel"]); 
+0

Я обновил свой вопрос, см. Его выше. Благодаря! – viriato

+0

Хек, да! Миллион спасибо! :) – viriato