我已经看到了一个非常喜欢的,与我在这个网站上的相同,以及网络上的其他人。但是,在多个论坛和youtube上花了三天后,我的脚本似乎无法正常工作。
我已经构建了一个简单的页面,可以让我跟踪我的车辆里程,我希望能够按位置搜索表格。除搜索功能外,一切正常。该表显示在页面上,填充了sql表中的所有行。但是,当我在搜索字段中键入并单击“提交”时,不会显示搜索结果。什么都没发生。
为了帮助你,我会发布我的代码以及我的服务器,php版本和mysql版本。
phpMyAdmin:4.0.10.7
数据库服务器:
服务器:通过UNIX套接字的Localhost
服务器类型:MySQL
服务器版本:5.5.46-cll - MySQL社区服务器(GPL)
协议版本:10
服务器字符集:UTF-8 Unicode(utf8)
Web服务器:
cpsrvd 11.52.1.3
数据库客户端版本:libmysql - 5.1.73
PHP扩展:mysqli
<?php
session_start();
if(empty($_SESSION['user']))
{
echo " <script>window.top.location='https://mysitehere.com/milelog/login/login2.php'</script>";
exit;
}
?>
<?php
include_once 'carselect/function.php';
connect()
?>
<?php
//The File for the Database Connection
include('editentry/con.php');
//The SQL Query
$table = "SELECT * FROM milelog ";
If($_POST){
$input = mysql_real_escape_string($_POST['location']);
$table .= "WHERE Location = '$input'";
}
$show = mysql_query($table) or die(mysql_error());
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/milestyle.css">
</head>
<body class="body">
<div style="border: 1px solid; background-color: silver;"><div class="menuwrap"><ul class="sonarmenu" style="padding: 0 !important;">
<li><a href="addentry.php">Log</a></li>
<li><a href="addcar.php">Add Car</a></li>
<li><a href="list.php">Edit Entry</a></li>
<li><a href="login/logout.php">Log Out</a></li>
</ul>
</div></div>
<form name="search" action="search.php" method="post">
<input name="location" value="" type="text" />
<input type="submit" value="search" name"search" />
</form>
<table class="table">
<tr>
<td>ID</td>
<td>Car</td>
<td>Date</td>
<td>Location</td>
<td>Miles</td>
<td></td>
<td></td>
</tr>
<?php while ($row = mysql_fetch_array($show)) {
echo "<tr><td>".$row['id']."</td>";
echo "<td>".$row['Car']."</td>";
echo "<td>".$row['Date']."</td>";
echo "<td>".$row['Location']."</td>";
echo "<td>".$row['Miles']."</td>";
echo "<td><a href='editentry/delete2.php?id=".$row['id']."'>Delete</a></td> <tr>";
}
?>
</table>
</body>
</html>
经过3天的研究而没有到达任何地方,我不知道还能做什么。
答案 0 :(得分:0)
您正在使用$(function() {
$languages = $("#languages");
$("#languages option").remove();
$languages.change(function() {
var languageName = $(this).val();
_language = languageName;
localStorage["language"] = languageName;
});
for (var l in _languages) {
$languages.append("<option>"+l+"</option>");
}
});
deprecated in PHP 5.5.0 and removed in 7.0.0。以下更改将有效,但它不是真正的解决方案:
更改
mysql_real_escape_string
到
$input = mysql_real_escape_string($_POST['location']);
这仍然使您(甚至更多)容易受到SQL注入的攻击,因此您应该使用预处理语句。有关完整示例,请参阅the manual。
请注意,如@self所示,测试$input = $_POST['location'];
不是检查帖子是否发生的正确方法。一个正确的方法是这个(详见this answer):
if($_POST)