简体   繁体   English

从PHP Switch调用变量

[英]Calling variable from PHP Switch

I can upload my document onto my main testing directory. 我可以将我的文档上传到我的主测试目录。 But I wish to call out my variable which is staffNo and place it in the specific staffNo directory. 但我希望调出我的变量,即staffNo并将其放在特定的staffNo目录中。 But I'm not able to parse out the variable even though I have declared my appropriate name for my input. 但即使我已经为我的输入声明了适当的名称,我也无法解析变量。

For example: 例如:

Staff Page 员工

$staffNo = 1;
<form id="Staff" name="Staff" method="post" action="upload.php" enctype="multipart/form-data">

//My staffno variable
<input type="hidden" id="staffNo" name="staffNo" value="<?php echo $staffNo ?>"/>

//Upload document
<input name="upload" id="upload" type="file"/>
<input type="hidden" name="upload" value="upload"/>

//Submit button
<input type="submit" name="submit" value="Submit">
</form>

upload.php upload.php的

switch($_POST['submit']) 
{
case 'Submit':
    if ($_FILES["upload"]["error"] > 0)
    {
    echo "Error: " . $_FILES["upload"]["error"] . "<br />";
    }
    else
    {
    echo "Upload: " . $_FILES["upload"]["name"] . "<br />";
    echo "Type: " . $_FILES["upload"]["type"] . "<br />";
    echo "Stored in: " . $_FILES["upload"]["tmp_name"];

    move_uploaded_file($_FILES["upload"]["tmp_name"],
  "documents/"."staffNo"."/".$_FILES["upload"]["name"]);

            echo "Stored in: " ."./documents/"."staffNo"."/".  $_FILES["upload"]["name"];
}

break;

case 'others':
break;

default;

My staffNo variable was not able to call out even though it is under the form already. 我的staffOo变量无法调用,即使它已经在表单下。 Did I did wrong somewhere? 我在某处做错了吗? And I also wanted to create a new folder for the staffNo if it's not found inside. 我还想为staffNo创建一个新文件夹,如果它没有在里面找到的话。 But now the basic staffNo variable was unable to call out. 但是现在基本的staffNo变量无法调用。 Kindly advise. 好心提醒。

I have fixed several errors in upload.php you have submitted. 我修复了你提交的upload.php中的几个错误。 You need to assign value of the hidden field to a variable: $staffNo = $_POST['staffNo']; 您需要将隐藏字段的值分配给变量: $staffNo = $_POST['staffNo'];

upload.php upload.php的

switch($_POST['submit']) 
{
    case 'Submit':
        if ($_FILES["upload"]["error"] > 0)
        {
            echo "Error: " . $_FILES["upload"]["error"] . "<br />";
        }
        else
        {
            $staffNo = $_POST['staffNo']; // preform validation here
            echo "Upload: " . $_FILES["upload"]["name"] . "<br />";
            echo "Type: " . $_FILES["upload"]["type"] . "<br />";
            echo "Stored in: " . $_FILES["upload"]["tmp_name"];
            // check if directory exists
            if(!is_dir("documents/".$staffNo)){
                // if it doesn't - create it
                mkdir("documents/".$staffNo);
            }
            move_uploaded_file($_FILES["upload"]["tmp_name"],
            "documents/".$staffNo."/".$_FILES["upload"]["name"]);
            echo "Stored in: " ."./documents/".$staffNo."/".  $_FILES["upload"]["name"];
        }

    break;

    case 'others':
    break;

    default;
}

You should probably validate staffNo to prevent changing its value through firebug for example, and messing with the upload path. 您可能应该验证staffNo以防止通过firebug更改其值,以及弄乱上载路径。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM