2014-01-23 92 views
0

我有很奇怪的問題,這三個文件:session.upload_progress - 內部服務器錯誤

up1.php構型中增加文件

<?php session_start();?> 
<form action="up2.php" method="POST" enctype="multipart/form-data"> 
<input type="file" name="nazwa" /> 
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="plik" /> 
<input type="submit" name="nazwa" /> 
</form> 

up2.php - 形式

<? session_start(); 
if(move_uploaded_file($_FILES['nazwa']['tmp_name'], 'up.jpg')) echo "wgrano plik"; 
?> 

up3.php給我轉讓:

<?php session_start(); 
$key = ini_get("session.upload_progress.prefix") .'plik'; 
var_dump($_SESSION[$key]); 
?> 

在我的php.ini我改變了一行:

session.upload_progress.cleanup=0; 

當up1.php發送形式up2.php我得到錯誤:

內部服務器錯誤服務器遇到一個內部錯誤或配置錯誤,無法完成您的請求

和日誌錯誤:

[XXX 2014] [錯誤] [客戶端XXX],引用者:XXX/upload1.php

[XXX 2014] [錯誤] [客戶端XXX]腳本頭過早結束:upload2.php,引用者:XXX/upload1.php

+0

你運行PHP作爲FastCGI的?因爲這對我的知識有問題... – Wrikken

回答

0

從問題,製作成一個答案兩者。我不讚賞這一點。

錯誤在於表單字段的排序很重要。上傳進度輸入字段必須位於上傳文件輸入字段之前。

正確的形式:

<form action="upload2.php" method="POST" enctype="multipart/form-data"> 
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="plik" /> 
<input type="file" name="nazwa" /> 
<input type="submit" value="send" /> 
</form> 

不正確形式:

<form action="upload2.php" method="POST" enctype="multipart/form-data"> 
<input type="file" name="nazwa" /> 
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="plik" /> 
<input type="submit" value="send" /> 
</form>