我有这个PHP代码:
$kid = $_GET['document'];
$url = $_GET["url"];
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("repository", $con);
$url = mysql_real_escape_string($url);
$url = htmlspecialchars($url);
$exists = mysql_query("SELECT url FROM url WHERE url = '$url' LIMIT 1");
if (mysql_num_rows($exists) == 1) {
mysql_query("DELETE FROM url WHERE url = '$url'" );
mysql_query("DELETE FROM paragraphs WHERE url = '$url'" );
}
require("/htmlpurifier-4.3.0-standalone/HTMLPurifier.standalone.php");
require("/htmlpurifier-4.3.0-standalone/HTMLPurifier.autoload.php");
include("simple_html_dom.php");
$html = file_get_html($url);
$purifier = new HTMLPurifier();
$body = $html->find('body', 0);
echo $html->find('title', 0);
$cleanbody= $purifier->purify($body);
echo $cleanbody;
echo '<script src="jquery.js" type="text/javascript"></script>';
echo '<script src="extract.js" type="text/javascript"></script>';
$html->clear();
unset($html);
这里发生的是加载一个html文件,找到,纯化正文,并由“extract.js”(它调用另一个php脚本将其加载到数据库中)提取。我现在想要发生的是获取插入的url的url_id(自动递增字段),然后在所有这一切完成之后执行重定向(执行mysql_query然后标题位置重定向,似乎在加载任何内容之前执行此操作进入数据库)。也许为url_id运行mysql_query,它匹配给定的url,在某些条件满足数据完成加载后?
答案 0 :(得分:0)
您似乎不了解服务器/客户端原则。您需要记住PHP只生成一些HTML并将其发送到客户端。您无法知道客户端何时会请求执行其他PHP脚本。
此外,您需要了解更多SQL。使用SELECT只检测行是否存在是没有意义的,如果确实存在则删除它,而根本不使用结果。不管怎样,你也可以运行DELETE语句。如果您想知道它是否删除任何内容,请使用mysql_affected_rows()
。另外,请考虑使用预准备语句,因为它可以更容易防止SQL注入。
如果extract.js只是从HTML中提取某些标签(没有用户输入),那么您可以在服务器端执行此操作,而根本不需要将其发送到客户端。