【问题标题】:How to concatenate sql, html and php with this code如何使用此代码连接 sql、html 和 php
【发布时间】:2018-09-18 19:25:18
【问题描述】:

基本上,它是一个显示数据库路径中的图像的元素。但我就是做不到。

<img class="img-circle profile_img" id="blah" src=" <?php $query2=mysqli_query($conexao,"select * FROM esc_usuarios_fotos WHERE img_usu_codigo = '" . $_SESSION['codigo'] . "'");
    while($row2=mysqli_fetch_array($query2)){
        if ((!empty($row2['img_local'])) && (file_exists($row2['img_local']))) {
            echo '<img class="image--cover" id="blah" src="'.$row2['img_local'].'" alt="Avatar" title="DEFINIDA" onerror="this.onerror=null;this.src=1.png;">';
        } else {
            echo 'Show a default image.'; // <img src="path_to_default_image" alt="Default_image"/>
        }
    } ?>" alt="Avatar" title="DEFINIDA" >

【问题讨论】:

  • 您正在回显整个 img 标签。仅回显图像的源 (src/url)。并将“显示默认图像”替换为默认占位符文件的位置。
  • 在将任何内容放到网上之前,您需要考虑两件事:1 准备好的语句,2 对将在 HTML 代码中使用的变量进行转义 HTML。
  • 警告:当使用mysqli 时,您应该使用parameterized queriesbind_param 将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug切勿$_POST$_GET任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。
  • 注意:mysqli 的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query 接口混淆。在您对程序风格投入过多之前,值得转换一下。示例:$db = new mysqli(…)$db-&gt;prepare("…") 程序接口是 PHP 4 时代引入的 mysqli API 的产物,不应在新代码中使用。
  • @Juan Prepared Statements,我还在研究那个,但是转义变量呢?对不起,英语有点新

标签: php html mysql concatenation


【解决方案1】:

我已经成功了,最终代码:

<?php
            $query2=mysqli_query($conexao,"select * FROM esc_usuarios_fotos WHERE img_usu_codigo = '" . $_SESSION['codigo'] . "'");
            while($row2=mysqli_fetch_array($query2)){
                if ((!empty($row2['img_local'])) && (file_exists($row2['img_local']))) {
                    echo '<img class="image--profile" src="'.$row2['img_local'].'" title="Clique para abrir seu perfil">';
                } else {
                    echo '<img class="image--profile" src="images/user.png">';
                }
              }
            ?>

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2018-08-21
    相关资源
    最近更新 更多