在下面的代码中我正在从mysql中搜索数据。在此代码中没有搜索数据警告框正在显示代码执行时。请告诉我是否可以在警告框中放置表格以及如何? / p>
<?php
$search = (isset($_POST['search']) ? $_POST['search'] : null);
mysql_connect("localhost", "root", "") OR die (mysql_error());
mysql_select_db ("slseatapp") or die(mysql_error());
$query = "SELECT * FROM `coursemaster` WHERE `course_code` LIKE '%$search%' or `course_name` like '%$search%'";
$result = mysql_query($query) or die (mysql_error());
$msg ;
if($result)
{
while($row=mysql_fetch_row($result))
{
$msg=$msg ."ID=".$row[0].",COURSE CODE=".$row[1].",COURSE NAME=".$row[2];
}
echo"<script>alert('$msg');</script>";
}
else
{
echo "No result";
}
?>
<form action="look.php" method="post">
<center> SEARCH:<input type="text" name="search" placeholder="SEARCH"><br></center>
<center> <input type="submit" name="hhhh" class="btn-success btn"></center>
</form>
答案 0 :(得分:1)
执行代码时,在没有搜索数据警告框的代码中显示。
是的,您正在分配$search
,但从不检查它是否为空。对于if ($search !== '') { ... }
到mysql_connect
块末尾的所有代码,您需要?>
,这样您才能在有搜索内容时进行搜索。
工作正常
不是真的。您在查询创建中使用SQL注入(使用mysqli
或PDO参数化语句而不是尝试自己创建用户输入的查询),并且在回显包含脚本块的脚本块时使用JavaScript注入(跨站点脚本)未转义的变量内容(考虑创建结果数组并对其进行JSON编码以将其传递给JavaScript JSON.parse()
)。这在公共互联网上部署是安全的。
请告诉我是否可以在警报框中放置一张桌子
你做不到。 alert()
具有最小的显示功能,通常被认为对用户不利,因为作为模式对话框,它会挂起浏览器中的所有其他内容,直到被解雇。 alert()
对于调试很有用,但是为了向用户展示数据,您应该使用包含所需内容的页内<div>
。