簡體   English   中英

PHP的即時搜索崩潰

[英]php instant search crashing

我已經使用php和jquery為MYSQL數據庫創建了即時搜索。 搜索工作正常,直到我刪除了一些關鍵字搜索詞並再次開始搜索。 用戶刪除搜索詞后,搜索結果將不再按預期返回。 一旦發生這種情況,如果刷新頁面,我會從瀏覽器收到“未收到數據”消息,並且該站點一分鍾左右都不會再次聯機。 為了了解我的意思,您可以訪問www.partsearch.club ..可以使用的一些關鍵字是“ decora connector wet bx tek tk”。 如果繼續添加和刪除搜索詞,您將明白我的意思。 這是我的代碼

index.php

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Instant Search Tutorial</title>
</head>

<body>
<script type="text/javascript" src="js/jquery.js"></script>
<br />
<br />
<br />
<br />
<br />
<br />
<center><input type="text" id="search" placeholder="Search..." size="50"><br />
</br>
<form><input type=button value="Refresh" onClick="history.go()"></form>    </center><br />
<div id="searchresults"></div>
<script type="text/javascript" src="js/search.js"></script>
</body>
</html>

search.php

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Instant Search Tutorial</title>
</head>

<body>
<?php

$username = "xxxx";
$password = "xxxxx";
$hostname = "localhost"; 


mysql_connect($hostname, $username, $password); 
mysql_select_db("wesco");

$searchArray = explode(" ", $_POST['searchterm']);
$query = "";
foreach($searchArray as $val) {
$search = mysql_real_escape_string(trim($val));
if (!empty($query)) {
    $query = $query . " AND "; // or AND, depends on what you want
}

$query = $query . "`keywords` LIKE '%$search%'";
}

if (!empty($query)) {
$find_parts = mysql_query("SELECT * FROM `parts` WHERE $query");
}

while($row = mysql_fetch_assoc($find_parts))
{
$name = $row['name'];

echo "<center>$name</center><br />";
}

?>
</body>
</html>

search.js

$('#search').keyup(function()
{
var searchterm = $('#search').val();

if(searchterm!='')
{
    $.post('search.php',{searchterm:searchterm},
    function(data)
    {
        $('#searchresults').html(data);
    });
}
else
{
    $('#searchresults').html('');   
}
});

您正在使用任何防火牆,還是在Apache前面使用清漆或反向代理? 您是否在apache設置的任何位置設置了請求數量的速率限制? 我試圖通過執行幾個自動完成請求來使服務器超載,並最終被阻止,但是在同一確切的時刻,我嘗試了另一個IP上的另一個框,並得到了正確的答案:

curl -X GET -I http://www.partsearch.club/
HTTP/1.1 200 OK
Date: Sat, 06 Feb 2016 01:42:05 GMT
Server: Apache/2.4.16
X-Powered-By: PHP/5.4.45
Transfer-Encoding: chunked
Content-Type: text/html

因此,這表明服務器並沒有對所有人都關閉,而是讓我被封鎖了幾秒鍾,可能是因為Apache或服務器中可能具有的任何Ddos保護。 我建議嘗試將nginx或litespeed用作網絡服務器,以檢查問題是否出在Apache或其他地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM