验证电子邮件地址的代码始终失败

时间:2012-03-16 01:23:27

标签: php mysql url url-shortener

我已经编辑了一些我在'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);  
  }  
?>

1 个答案:

答案 0 :(得分:0)

考虑filter_var($url, FILTER_VALIDATE_URL)而不是正则表达式。

http://php.net/filter.examples.validation
http://php.net/filter.filters.validate