PHP代码在浏览器上显示黑屏,而不是内容

时间:2019-06-10 13:58:46

标签: php html

当我使用网络浏览器打开它时,下面带有html的php代码显示空白屏幕。我已经设置了一个php服务器来运行它。我在做什么错了?

        <!DOCTYPE html>
        <html>
        <head>
                <title>maro</title>
                <link rel="stylesheet" href="bootstrap.min.css">
                <link rel="stylesheet" href="custom.css">
          </head>
          <body>
                <div class="container-fluid">
                   <form action="imagesear.php" method="get">
                         <div class="row" id="bg">
                         <div class="col-sm-1" id="resdoodle">
                             <a href="index.html"><font color="#FF0000">m</font><font color="#FFA500">a</font><font color="#008000">r</font><font color="#0000FF">o</font></a>
                         </div>
                         <div class="col-sm-6" id="searchbx2">
                             <div class="input-group">
                                 <input type="text" class="form-control" name="search" id="boxstyle2" required>
                                 <span class="input-group-btn">
                                      <input type="submit" class="btn btn-secondary" name="search_btn" value="GO" id="btnstyle2">
                                 </span>
                             </div>
                         </div>
                     </div>
                </form>
            </div>
            <div class="result">    
                <?php
                $search=$_GET["id"];
                $_con=mysqli_connect("localhost","augustus","password");
                mysqli_select_db($_con,"websited");
                $_sql2="select * from webd where stitle like '%$search%'";
                $rs=mysqli_query($_con,$_sql2);
                if(mysqli_num_rows($rs)<1)
                                 {
                                  echo "<center><h4><b>Oops! No result found for your query</b></h4></center>";
                                  exit();
                                 }
                while($resul2=mysqli_fetch_assoc($rs))
                {
                    echo "<a href='".$resul2['slink']."'><img src='".$resul2['simg']."' height='200px' id="imgp"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                }  
                ?>
            </div>
            <script src="jquery.min.js"></script>
            <script src="tether.min.js"></script>
            <script src="bootstrap.min.js"></script>
      </body>
</html>

我尝试对我的php服务器进行故障排除,但这很好,因为其他php代码运行良好。请帮助修复此代码

2 个答案:

答案 0 :(得分:0)

对我来说,它返回此错误:

解析错误:语法错误,意外的'imgp'(T_STRING),期望为','或';'在第38行的/var/www/html/tmp/test.php中

在这一行:

echo "<a href='".$resul2['slink']."'><img src='".$resul2['simg']."' height='200px' id="imgp"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

id =“ imgp”在双引号内,在其他带双引号的字符串内。这就是问题所在。您需要将单引号放在其他带双引号的字符串中才能正常工作:

echo "<a href='".$resul2['slink']."'><img src='".$resul2['simg']."' height='200px' id='imgp'></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

也许您没有看到错误,因为它们已被禁用。您可以在php文档的开头尝试此操作:

error_reporting(E_ALL);

PS:该错误也会向用户显示,因此请谨慎使用。

答案 1 :(得分:0)

我会为您提供一些建议,这些建议将帮助您并改善您的代码。

第一:要显示的错误是您首先要做的,首先要在加载的第一个文件中首先启用这些错误,以达到以下目的:测试。您可以在其中执行一些逻辑,以使其不出现在生产中。您必须使用以下代码行:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

第二:尽量不要将HTML与PHP混合使用。我建议您检查Smarty PHP Template。另外,请尝试查找如何通过Layer Partner实施PHP应用程序,或通过MVC实施PHP应用程序。

第三如前所述,您不应该将HTML与PHP混合使用,而且,最好使用设计模式,这会使数据库连接和逻辑脱离屏幕代码。您应该拥有

  

HTML <= Page.php <=> Database.php

像这样,Page.php将控制将在HTML上显示的内容,并将使用Database.php上的功能来处理数据库数据。 HTML页面仅输出值,它只是一个模板。

空白页:空白页表示您有一些PHP错误,并且已停止。通常在屏幕上显示错误会有所帮助。例如,这可能是代码上的简单类型。