【问题标题】:Script Not Reading String脚本不读取字符串
【发布时间】:2018-07-30 09:14:15
【问题描述】:

我有一个 php 脚本,可以将个人资料图片上传到服务器,然后在数据库中编辑一个字段。

在脚本的顶部,我添加了一行代码,它将在目录中创建一个新文件夹,该文件夹由用户 ID 标记。 ID 与 $id 相呼应。这适用于文件夹,但是当我将上传路径设置为 ../img/users/$id 之类的内容时,它会改为上传到 ..img/users。

代码:

<?php 
require '../login_check.php';
include_once 'db_connect.php'; 
$dir = "../img/users/$id";
if( is_dir($dir) === false )
{
mkdir($dir);
}
fclose($file);


$dir = "./users/$result[id]";
if( is_dir($dir) === false );

$path_to_image_directory = "../img/users/$id";
if(isset($_FILES['imgupload'])) 
{
$id = $_SESSION['id'];     
if ($_FILES["imgupload"]["size"] > 500000) 
{
header('Location: ../profile');
}
if(preg_match('/[.](jpg)|(JPG)|(gif)|(GIF)|(PNG)|(png)$/', 
$_FILES['imgupload']['name'])) 
{
    $source = $_FILES['imgupload']['tmp_name']; 
    
    $randString = md5(time());
    $filename = $_FILES['imgupload']['name'];
    $splitName = explode(".", $filename);
    $fileExt = end($splitName);
    $newfilename  = strtolower($randString.'.'.$fileExt);
    $target = $path_to_image_directory . $newfilename;
     
    move_uploaded_file($source, $target);

    $updatestmt = $conn->prepare("UPDATE members SET profilepic= ? WHERE id = ?");
    $updatestmt->bind_param("si", $newfilename, $id);
    $updatestmt->execute();
    header('Location: ../profile');
}
else
{
   header('Location: ../profile'); 
}
}
?>

谁能告诉我我做错了什么以及如何解决这个问题?

【问题讨论】:

  • $dir = "../img/users/$id";中使用$id变量之前移动$id = $_SESSION['id'];这一行
  • @SudhirBastakoti 我按照你的建议做了,但这并没有什么不同。我想这就是你告诉我要改变的?
  • $id = $_SESSION['id']; $path_to_image_directory = "../img/users/$id"; if(isset($_FILES['imgupload'])) {
  • 是否设置了$id的值??
  • 让我猜猜:保存的文件名以用户ID为前缀,对吗?您应该添加/ 以包含目录路径,否则您可以连接目录路径,如/path/to/dirnew_filename.txt 导致/path/to/dirnew_filename.txt

标签: php database string upload


【解决方案1】:

在为它分配 $_SESSION['id'] 值之前,您正在使用 $id 变量。 首先,您必须将值分配给 $id

$id = $_SESSION['id'];

然后使用这个 $id 来设置目录路径变量。

$path_to_image_directory = "../img/users/$id";

确保您的 $_SESSION['id'] 不为空/null

【讨论】:

    【解决方案2】:

    $id = $_SESSION['id'];移动到include_once 'db_connect.php';下方

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    相关资源
    最近更新 更多