我非常困惑,因爲要正確驗證我的URL。我嘗試了幾個選項,但我無法正確理解。有人可以看看我的代碼,並告訴我我做錯了什麼嗎?Url驗證我的腳本
$url=filter_input(INPUT_GET, 'url', FILTER_VALIDATE_URL);
if (!$url) {
echo The url address is not valid
}
if(strpos($url,'http://')===false)
$url='http://'.$url;
$query="INSERT INTO `aa_aa`.`article` VALUES ('', '".$url."', '".$_POST['description']."', '".$_POST['type']."',NOW());";
$result=mysql_query($query);
if(!$result)
// echo 'Error While Inserting Article!';
echo $query;
else
header('Location: http://aa.aa');
編輯 對不起埃裏克這裏。 @Brad我的朋友幫助了我所有的腳本,所以我不太瞭解我在使用這個腳本的風險。
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database:
--
-- --------------------------------------------------------
-- Table structure for table `article`
--
CREATE TABLE IF NOT EXISTS `article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(100) NOT NULL,
`description` text NOT NULL,
`type` varchar(40) NOT NULL,
`title` varchar(80) NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=137 ;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
你是**開放**到SQL注入。如果你還沒有,你**將被黑客攻擊**。學習使用PDO或類似的準備好的查詢來完全避免這個問題。 – Brad
你可以提供你的表格佈局/創建腳本嗎? – Erik
究竟是什麼事? –