【问题标题】:PHP link not working - cannot find the mistakePHP链接不起作用 - 找不到错误
【发布时间】:2014-06-07 07:46:35
【问题描述】:

我使用 CKEditor 和 KCFinder 构建了一个 CMS 系统,它们通过 textarea/php 将信息存储在数据库中。到目前为止一切顺利!

当我想存储和显示链接到自身的图像时,问题就出现了。我存储图像的方式完全相同:有一个文本区域,我通过 KCFinder/CKEditor 在其中插入图像。图像上传到服务器,路径存储在数据库中。后来我尝试从数据库中获取该路径以显示图像(该部分也可以),并且因为我希望图像链接到自身,所以我尝试使用相同的方法在链接上插入 url。问题?链接丢失。

谁能指出错误并提出任何解决方案?我会很感激的!

代码:

<?php
    $sql = "SELECT * FROM php_maskiner ORDER BY timestamp DESC";

    $result = mysql_query($sql) or print ('<div class="alert alert-standard fade in">
        <a class="close" data-dismiss="alert" href="#">&times;</a>
        <strong>Can't read the database!</strong>
        </div>' . $sql . "<br />" . mysql_error());

            while($row = mysql_fetch_array($result)) {
                $title = stripslashes($row['title']);
                $entry = stripslashes($row['entry']);
                $images = html_entity_decode($row['images']);
                $img_url = $row['images'];
                $img_pack = '<div class="mask3 span3">
            <a rel="prettyPhoto" href="' . $img_url . '">' . $images . '</a>
            </div>';

?>

                <article class="span12 post"> 
                    <?php echo $img_pack; ?>
                    <div class="inside">
                      <div class="span8 entry-content">
                        <div class="span12">
                            <h2><?php echo $title; ?></h2>
                            <p><?php echo $entry; ?></p>
                        </div>
                      </div>
                    </div>
                </article>
    <?php
}
?>

更新:

我认为这可能是 CKEditor 引起的问题。在数据库中,图像路径存储为:.据我了解,这是输出的内容。 如何只输出“/nysida/admin/kcfinder/upload/images/1307594_10243178.jpg”?

【问题讨论】:

  • 图片的路径是如何存储的?

标签: php html database content-management-system


【解决方案1】:

您的第一个错误仍然是使用mysql_ 扩展来访问您的数据库。您必须使用 PDO(如果可用):

示例(对于 mysql):

try {
    $DBH = new PDO('mysql:host=localhost;dbname=yourdb;charset=utf8', 'user', 'password');
    $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $STH = $DBH->prepare('SELECT * FROM php_maskiner ORDER BY timestamp DESC');
    $STH->execute();

    $STH->setFetchMode(PDO::FETCH_OBJ);

    while($row = $STH->fetch()) {
        $title = $row->title;
        $entry = $row->entry;
        $images = $row->images;
        $img_url = $row->images;
        $img_pack = 
            '<div class="mask3 span3">
                <a rel="prettyPhoto" href="'.$img_url.'"><img src="'.$images.'"></a>
             </div>';
    }

    $DBH = null;
} catch (PDOException $e) {
    echo '<div class="alert alert-standard fade in">
        <a class="close" data-dismiss="alert" href="#">&times;</a>
        <strong>Can\'t read the database!</strong>
        </div><br />'.$e;
}

稍后在您的代码中:

<?php echo 
    '<article class="span12 post"> 
        '.$img_pack.'
        <div class="inside">
            <div class="span8 entry-content">
                <div class="span12">
                    <h2>'.$title.'</h2>
                    <p>'.$entry.'</p>
                </div>
            </div>
        </div>
    </article>';
?>

关于最初的问题:确保$img_url 不是null

【讨论】:

  • 首先,感谢您提供非常完整的答案。我确实认识到我需要更新我的 PHP 知识。我已经尝试过您的代码,但它并没有比我的更好。链接也不起作用,图像现在不显示。这是输出的代码:&lt;a src="/nysida/admin/kcfinder/upload/images/332805_3333.jpg" "="" href="&lt;img alt=" rel="prettyPhoto"&gt; "&gt; &lt;img "="" src="&lt;img alt="&gt;&lt;/img&gt; "&gt; &lt;/a&gt;。现在,关于您对原始问题的回答,我不明白。如果$img_url = $row['images'];怎么会是null呢?
  • 这是我点击图片时收到的错误消息:“图片无法加载。请确保路径正确且图片存在。”
猜你喜欢
  • 2012-10-07
  • 1970-01-01
  • 2017-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
相关资源
最近更新 更多