【问题标题】:PHP script store image to folder and path to MySQL databasePHP脚本将图像存储到文件夹和MySQL数据库的路径
【发布时间】:2012-06-26 13:47:43
【问题描述】:

我有一个 html 表单,它运行一个 php 脚本,它将文本字段插入 MySQL 数据库。我使用这个数据库来创建用户配置文件,但在配置文件中我还需要声音、视频和图片。是否有任何脚本可以在硬盘上创建一个名为我从表单中插入的文件夹并将选定的文件存储在该文件夹中并将文件路径插入到 MySQL 数据库中?

我还需要将它们显示到搜索结果页面中,如果我选择一个用户,我需要从结果页面将我重定向到一个页面,该页面显示所选记录,它有自己的照片、声音、视频和文本作为配置文件页面或类似的东西。

这是表格:

<form action="process.php" method="post" >
    <label>Όνομα:</label> <input type="text" name="Fname" /><br/><br/>
    <label>Επώνυμο:</label> <input type="text" name="Sname" /><br/><br/>
    <label>Είδος:</label> <input type="text" name="Genre" /><br/><br/>
    <label>Είδικότητα:</label> <input type="text" name="Specialty" /><br/><br/>
    <label>Βιογραφικό:</label> <input type="text" name="Bio" /><br/><br/>
    <input type="submit" value="Καταχώρηση"/>
</form>

这是脚本:

<?php
$con = mysql_connect("localhost","root","root");
if (!$con)
{
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("fasma", $con);

$sql="INSERT INTO artists2 (Fname, Sname, Genre, Specialty, Bio)
VALUES
('$_POST[Fname]','$_POST[Sname]','$_POST[Genre]','$_POST[Specialty]','$_POST[Bio]')";

if (!mysql_query($sql,$con))
{
  die('Error: ' . mysql_error());
}
echo "Registration Successful";

mysql_close($con);
?>

【问题讨论】:

  • 如果我发送带有 POST 数据的请求会发生什么:Fname='); DROP TABLE 艺术家2; ?
  • 它会将您发送的名称插入到数据库中的新条目中。
  • 哟,老兄!我们听说您喜欢 SQL 注入,因此我们在您的网站上安装了 Bobby Tables,这样您就可以在删除表的同时删除表。

标签: php mysql storing-data


【解决方案1】:

在查找 PHP 函数时,您应该始终查看 PHP 手册:http://php.net/manual/en/index.php

它有关于 PHP 函数的大量文档,包括如何在您的服务器上创建文件夹/目录。

至于上传和存储文件,它比您想象的要容易: 首先,在您的表单中,您需要“文件”类型的输入字段。例如:

<label>Photo:</label> <input type="file" name="uploadImage" id="file" /><br/><br/>

一旦表单被提交到 process.php,这会将文件上传到您服务器上的临时位置。在 process.php 中,可以像这样访问文件和临时位置:

$_FILES["file"]["tmp_name"];

然后,您可以将文件复制到服务器上您喜欢的任何位置。由于您是决定将文件复制到何处的人,因此您可以根据需要将文件路径插入到数据库中。

欲了解更多信息,请查看:http://www.w3schools.com/php/php_file_upload.asp

【讨论】:

  • 谢谢我的朋友! :) 另一个问题,当我点击表单中的按钮时如何运行 php 脚本,而不会将我重定向到 php 页面并向我显示“注册成功”。 ?
  • 除非您通过 AJAX 发出请求,否则它会将您重定向到该页面。您可以做的是让 php 脚本在登录成功后将用户重定向到您喜欢的另一个页面。在我发布的 PHP 手册链接中查找 header() 函数。
  • 旁注:您应该在将表单输入作为数据库查询的一部分之前对其进行清理。现在您不这样做,它可能会导致攻击者使用一种称为 SQL 的技术弄乱您的数据库注射。更多信息在这里:php.net/manual/en/security.database.sql-injection.php
  • 我不太关心 SQL 注入,因为这不会上传到网络上。我只会在我的电脑上运行它。 :) 但感谢您提供的信息!我会为另一个项目考虑它。
  • 我也阅读了 w3schools 的文章,但我不明白如何将 w3schools 提供的脚本包含到我之前给你的脚本中。你能帮我写代码吗?我已经三天没睡了,脑子里一片混乱。我只是想在脚本上写,在根文件夹上创建一个目录,它将用 Fname 和 Sname 命名它,在这个文件夹中我想要放入所有图像、视频、mp3。最后存储路径在我用我给你的表格创建的新记录中将文件放入 MySQL 数据库,这样我就可以访问它们了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多