php - 在用户使用 PHP 登录之前,如何限制内容(图像等)?

标签 php

菜鸟问题:我有敏感内容(图像),我想将其放入目录中,并仅在用户登录后才向用户显示。在不依赖于简单随机生成的文件名和 . htaccess 文件不指定目录列表?我正在使用 PHP 工作。

谢谢!

最佳答案

您可以将这些图像放在 public_html 之外的不同文件夹中(这样没有人可以访问它们)。然后通过脚本,如果用户登录,您将获取图像文件内容,然后更改标题。如果用户未登录,您可以显示随机图像或显示默认图像。

例如,公共(public)html文件夹是:/var/www 您的图像文件夹可以是:/registered_user/images/

然后在您的 PHP 脚本中您可以编写:

<?php
if(!userLogged() || !isset($_GET['image'])) {
  header('Location: /');
  die();
}
$path = '/registered_user/images/';
$file = clean($_GET['image']); // you can create a clean function that only get valid character for files

$filename = $path . $file;
if(!file_exists($filename)) {
  $filename = '/var/www/images/bogus.jpg';
}
$imageInfo = getimagesize($filename);

header ('Content-length: ' . filesize($filename));
header ('Content-type: ' . $imageInfo['mime']);
readfile ($filename);

然后当你调用图像时你可以使用:<img src="/script.php?image=filename">

关于php - 在用户使用 PHP 登录之前,如何限制内容(图像等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7155581/

相关文章:

php - 从 friend 和所有者的帖子中选择 INNER JOIN

php - 人类可读的文件大小

php - 一个实体的多个 OneToMany 关系

php - mysql 锁定表导致某些插入随机失败

php - 从 shell_exec 将数据嵌入到 HTML 页面中

php - Laravel 5.3 - 是否可以通过单击链接/按钮来运行 php artisan 命令

javascript - 服务器发送事件 : Not working

php - css排序,外部样式表结合php

php - PHP中的is_rgb函数

php - AllowEmpty 与 NotEmpty