2015-07-12 136 views
2

我有一個表格更新數據庫內的信息,一切工作完美,因爲它應該.......除了由於某種原因,標題不適合我。我在同一站點內的許多其他腳本中使用標題重定向;它只是這一個腳本,頭重定向不起作用。我知道頭部在裏面的if語句被調用,因爲頭部下方的回顯顯示在頁面上,它只是忽略頭部行。如果你有任何建議,這將是非常有益的。PHP頭重定向不工作在表單提交

下面的代碼已經被最小化所以它不是長期給大家看了,但如果它仍是一個問題患病把它清理乾淨更

形式

<form class="editUser" action="uploadEmployee.php" method="post" enctype="multipart/form-data" /> 
    <input name="editUserFirstName" id="editUserFirstName" type="text" placeholder="Enter The User's First Name" /> 
    <label>Employee's Coverage</label> 
    <input type="file" name="file_array[]" placeholder="Add The Employees Coverage" /> 
    <input name="addUserSubmit" type="submit" value="Submit" /> 
</form> 

上載腳本

<?php 

include("includes/connect.inc.php"); 

if(isset($_FILES['file_array'])){ 

    $day = date('d'); 
    $month = date('m'); 
    $dateObj = DateTime::createFromFormat('!m', $month); 
    $monthName = $dateObj->format('F'); // March 
    $year = date('Y'); 
    $date = $monthName . ", " . $day . ", " . $year; 
    $name_array = $_FILES['file_array']['name']; 
    $tmp_name_array = $_FILES['file_array']['tmp_name']; 
    $type_array = $_FILES['file_array']['type']; 
    $size_array = $_FILES['file_array']['size']; 
    $error_array = $_FILES['file_array']['error']; 
    $payCheque = $name_array[0]; 
    $T4   = $name_array[1]; 
    $coverage = $name_array[2]; 
    $selectedId = $_POST['editId']; 
    $name  = $_POST['editUserFirstName']; 

    if($_POST['editUserPermission']){ 
     $permission = "1"; 
    }else{ 
     $permission = "0"; 
    } 


    for($i = 0; $i < count($tmp_name_array); $i++){ 

     if(move_uploaded_file($tmp_name_array[$i], "uploads/".$name_array[$i])){ 

      $title = "This Is A Test Title"; 
      $icon = "0"; 
      if($i == 0){ 
      $icon = "1"; 
      $title = "You Have Received A New Pay Cheque"; 
      $comment = "Hello " . $name . ", click view document to view and download your pay cheque for " . $date . ". Your pay cheque will be a PDF file. Thank you."; 
       } 

      $sql = "INSERT INTO securedFiles (title, date, PDF, comment, idOfUser, icon) 
       VALUES ('$title', '$date', '$name_array[$i]', '$comment', '$documentId', '$icon')"; 

       if ($connect->query($sql) === TRUE) { 
       //header("Location: hub.php"); 
       } else { 
        echo "Error: " . $sql . "<br>" . $connect->error; 
       } 

       echo $payCheque ." upload is complete<br>"; 

     } else { 
      echo "move_uploaded_file function failed for ".$name_array[$i]."<br>"; 
     } 
    } 

    $sql = "UPDATE dealerEmployees SET firstName = '$_POST[editUserFirstName]', lastName = '$_POST[editUserLastName]', password = '$_POST[editUserPW]', permission = '$permission', address = '$_POST[editUserAddress]', email = '$_POST[editUserEmail]', phone = '$_POST[editUserPhone]' WHERE id = $selectedId"; 

    if ($connect->query($sql) === TRUE) { 
    header('Location: hub.php'); 
    echo "Success"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $connect->error; 
    }  

} 


//$connect->close(); 


?> 
+0

不要通用戶直接輸入到SQL查詢。 SQL注入是可能的,使用準備好的語句。 – chris85

+0

好的謝謝你的建議,我會定期研究修復 – Brady

回答

2

必須在發送任何實際輸出之前調用header(),或者使用普通的HTML標籤,文件中的空行或PHP。

而在你的情況,您使用的回聲報頭()之前

所以,你可以使用重定向方法(我在我所有的項目中使用,沒有問題曾經)

 

<?php 


if ($connect->query($sql) === TRUE) { 
    echo "<script> parent.self.location = \"hub.php\";</script>"; 
    echo "Success"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $connect->error; 
    }  

?> 

+1

這完美的作品,非常感謝! – Brady