2012-07-07 62 views
0

我可以將文檔上傳到我的主測試目錄。但是我希望將我的變量叫做staffNo並將其放置在特定的staffNo目錄中。但即使我已經爲我的輸入聲明瞭適當的名稱,我也無法解析變量。PHP調用變量開關

例如:

人員頁

$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的

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; 

我staffNo變量無法調出,即使它的形式下已經。我在某處做錯了嗎?我還想爲員工創建一個新文件夾,如果沒有找到它的話。但是現在基本員工變數無法呼叫。好心提醒。

+0

應用差距<?PHP的echo $ staffNo?>到<?PHP的echo $ staffNo?> – swapnesh 2012-07-07 08:48:24

+0

不影響〜:( – JLearner 2012-07-07 08:51:55

+0

@ user976050的var_dump的$ _POST [ '提交'] – swapnesh 2012-07-07 08:52:52

回答

2

我已經修復了您提交的upload.php中的一些錯誤。 您需要的隱藏字段的值賦給一個變量: $staffNo = $_POST['staffNo'];

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; 
} 

你或許應該驗證staffNo以防止通過螢火蟲例如改變其價值,並與上傳搞亂路徑。