0

在下面的代码中,我正在从 mysql 中搜索数据。在此代码中,不搜索数据,则在执行代码时显示警报框。请告诉我是否可以在警报框中放置表格以及如何放置?

<?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>   
4

1 回答 1

1

在此代码中,不搜索数据警报框在执行代码时显示。

是的,您正在分配$search,但从不检查它是否为空。您需要从块到末尾的if ($search !== '') { ... }所有代码,以便您仅在有要搜索的内容时进行搜索。mysql_connect?>

它工作正常

并不真地。您在查询创建中有 SQL 注入(使用mysqli或 PDO 参数化语句,而不是尝试自己从用户输入创建查询),并且在回显包含未转义变量内容的脚本块时有 JavaScript 注入(跨站点脚本)(考虑创建一个结果数组并对其进行 JSON 编码以将其传递给 JavaScript JSON.parse())。这距离在公共互联网上安全部署还有一段距离。

请告诉我是否可以在警报框中放置一张桌子

你不能。alert()具有最小的显示能力,通常被认为对用户不利,因为作为一个模式对话框,它会挂起浏览器中的所有其他内容,直到被关闭。alert()对调试很有用,但为了向用户显示数据,您应该使用<div>包含您想要的任何内容的页面内。

于 2013-09-15T16:42:40.813 回答