作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个脚本来将图像链接保存在数据库中,例如 example.com/image.jpg
一切正常,我只是希望如果有人输入错误的网址,例如没有扩展名 .jpg 、 .png 或 .gif
,它会给用户错误,以便他们输入正确的网址
这是我的 PHP 代码
if(isset($_POST['img']));
$img = $_POST['img'];
$ti = $_POST['titl'];
$query = mysqli_query($con,"SELECT * FROM image WHERE url='$img'")
or die(mysqli_error($con));
if(mysqli_num_rows($query) > 0 ) { //check if there is already an entry for that word
echo "Image already exists! ";
}
else {
mysqli_query($con,"INSERT INTO image (Title, url,) VALUES ('$ti','$img')");
echo "Image Successfully Added";
}
这是 html
<form action="" method="POST" >
<span>Title:</span>
<input type="text" name="titl" maxlength="100" /><br>
<span>Image URL:</span>
<input type="text" name="img" maxlength="300" />
<input type="submit" value="Add Image!" id="subm" class="button" />
</form>
最佳答案
$accept = ['.jpg', '.gif', '.png']; // the file extensions you will accept
if (in_array(substr($img, -4), $accept)) // check last 4 chars in $accept
{
echo "This works";
// update mysql table
} // if
else
{
echo "This fails";
} // else
这只是一种检查文件名的方法,而不是检查文件内容的方法。正如 @Fred-ii 所提到的:图像仍然必须针对恶意代码进行清理。一项初步措施是将文件重命名为随机名称,并将随机 ID 存储在数据库中。您还可以使用 GD 或 ImageMagick 1:1 复制文件,这将压缩文件并删除任何恶意代码。您还可以从其他域(如果有)提供图像,以保护您的主站点及其数据。
关于php - 插入MySQL上传查询php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22823079/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!