在整个页面中获取并使用用户以前的表单数据变量

时间:2016-03-17 14:31:04

标签: php html forms copy

目的是允许用户上传文件(通常的上传过程)并按确认按钮确认上传。编程方面:2个文件夹 - 1个用于未经证实的文件,其中文件被定期删除; 2个用于按下确认文件夹 - 如果用户按下确认按钮,则从未经证实的文件夹复制文件。

基本上,我有一个表单,用户上传文件夹中存储的文件及其路径 - 在数据库中。在同一页面上,我有另一个按钮,所以当用户按下它时,我想将他/她上传的文件从一个目录移动到另一个目录(不重新上传 - 在服务器上处理)。问题是我应该知道什么要处理的文件!

我的问题是:一切似乎都没问题,但是我无法获得变量$ name - 它告诉我文件的名称,用户已上传。因为当我尝试使用它来继续第二个提交按钮时 - 它表示变量未定义。我需要获取告诉我用户提交的文件名称的变量,这样我就可以将该文件复制到另一个目录,但是只能在处理表单submittinf并且只允许在内部使用时分配(并且不经常使用)。处理,而我想在外面使用它。

我曾尝试使用会话 - 但这段代码不起作用,同样的问题 - 它说 - 'undefined index - regex',与COOKIES相同。

所有html:

<form action="videator.php"method="post" enctype="multipart/form-data">
       <input class="form" type="file" name="fileToUpload" id="fileToUpload"    accept="video/*" >
       <input class="form" type="submit"  value="Upload Image" name="submit">
</form>
<form action="love.php" method="post">
<input class="post" type="submit" value="POST" name="post" id="post"/>
</form>

videator.php:

if(isset($_POST["submit"])) {
$file = $_FILES['fileToUpload'];
$name = $file['name'];
$_COOKIE['name'] = $name;
$_SESSION['regex'] = $name;
...
}

love.php

if(isset($_POST["post"])) {
session_start();
$name = $_GET['regex'];
$from = "temp_videos/".$name;
$to = "videos/";

if (!copy($from, $to)) {
echo("<script>alert('fail')</script>");
}else {
echo("<script>alert('Success!')</script>");
}

它还说'复制()函数的第一个参数不能是目录。我想,这是因为我的变量$ name未定义,所以只有文件夹在这里作为路径。

请帮忙。我花了一整天的时间。

(如果我只使用copy()函数指示实际路径而不是变量 - 一切正常) 提前完成。

1 个答案:

答案 0 :(得分:0)

我有一些可能有用的提示。

(1)在每个PHP文件的顶部,作为第一条指令,输入:

<?php
    if (!session_id()) session_start();
    //any other PHP instructions follow.
?>

(2)尝试使用Ravi Kusuma的优秀jQuery File Upload plugin。虽然我通常会尝试自己编写所有内容而不使用插件,但这个版本做得非常好,以至于它是我上传文件的主要内容。

(3)在你开始工作之前,不需要将session_start()放在if语句中。 session_start()必须是引用$ _SESSION变量的每个PHP页面顶部的第一条指令。

(4)查看AJAX而不是使用<form>(用于管理文件上载过程)。 Kusuma的插件也适用于AJAX。如果您之前没有使用过AJAX,那可能听起来很吓人 - 但它非常简单。复制示例at the bottom of this post并使它们适用于您的系统。这可能是您在2016年花费的最重要的15分钟。请注意,链接问题的要点是必须有一个单独的PHP文件接收AJAX帖子。

(5)不要忘记AJAX是一个两步过程:(a)当前页面上的javascript与指定的PHP页面通信; (b)PHP页面通过POST varibles接收数据(或文件上载数据)。因此,请务必查看&#34;服务器端&#34;在Kusuma的Hayageek页面顶部的标签。在SERVER SIDE页面的顶部是四个示例PHP文件的链接。研究upload.php示例。

快乐的编码。