当我使用网络浏览器打开它时,下面带有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> ";
}
?>
</div>
<script src="jquery.min.js"></script>
<script src="tether.min.js"></script>
<script src="bootstrap.min.js"></script>
</body>
</html>
我尝试对我的php服务器进行故障排除,但这很好,因为其他php代码运行良好。请帮助修复此代码
答案 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> ";
id =“ imgp”在双引号内,在其他带双引号的字符串内。这就是问题所在。您需要将单引号放在其他带双引号的字符串中才能正常工作:
echo "<a href='".$resul2['slink']."'><img src='".$resul2['simg']."' height='200px' id='imgp'></a> ";
也许您没有看到错误,因为它们已被禁用。您可以在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错误,并且已停止。通常在屏幕上显示错误会有所帮助。例如,这可能是代码上的简单类型。