我已经编辑了一些我在'ye old internet(http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/)上找到的代码。我还没有让我的代码变体正常工作。我编辑的版本请求index.php中另一个名为“pages”的输入。 Pages与$ url和$ short一起放入数据库。页面进入数据库中具有varchar值的页面字段。稍后在serve.php中调用页面以用于javascript目的。在下面的代码中,我已经注意到我认为问题出现在哪里。如果您对我的错误代码感兴趣,请继续关注;我还没有编辑其他文件。
我开始认为错误可能在MYSQL中发生,因为我几乎总是收到第一个$ html错误“错误:无效网址”
<?php
require("./db_config.php");
$url = $_REQUEST['url'];
$pages = $_REQUEST['pages'];
//this seems to be where the errors are occuring
if(!preg_match("/^[a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i", $url)) {
$html = "Error: invalid URL";
} else {
$db = mysql_connect($host, $username, $password);
$short = substr(md5(time().$url), 0, 5);
if(mysql_query("INSERT INTO `".$database."`.`url_redirects` (`short`, `url`, `pages`) VALUES ('".$short."', '".$url."', '".$pages."');", $db)) {
$html = "Your short URL is<br />www.srprsr.com/".$short;
} else {
$html = "Error: cannot find database";
}
mysql_close($db);
}
?>
答案 0 :(得分:0)
考虑filter_var($url, FILTER_VALIDATE_URL)
而不是正则表达式。
http://php.net/filter.examples.validation
http://php.net/filter.filters.validate