Код для проверки адреса электронной почты всегда терпит неудачу - PullRequest
0 голосов
/ 16 марта 2012

Я отредактировал какой-то код, который нашел в старом интернете (http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/).. Я не получил правильную работу своего варианта кода. Мои отредактированные версии запрашивают еще один ввод, называемый "pages", из index.php. Pages помещается в базу данных вместе с $ url и $ short. Pages помещается в поле страниц в базе данных, имеющее значение varchar. Позже Pages вызывается в serve.php для целей JavaScript. В приведенном ниже коде я отметил, где Я думаю, что проблема возникает. Если вас интересует мой неисправный код, следите за обновлениями; мне еще предстоит редактировать другие файлы.

Я начинаю думать, что ошибка может происходить в MYSQL, потому что почти всегда я получаю первую ошибку $ html «Ошибка: неверный URL»

<?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 голосов
/ 16 марта 2012

Рассмотрим filter_var($url, FILTER_VALIDATE_URL) вместо регулярного выражения.

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

...