2017-11-19 2 views
3

現在、私のホームページ用の小さなスクリプトで作業していますが、問題が発生しました。PHP投稿データが受信されていません

イメージをアップロードしようとしましたが、フォームのPOSTデータが受信されていないようです。私は何を間違えたのですか?

私はすでにpost_max_sizeとすべてをphp.iniに変更しました。

これらは私が取得エラーです: "お知らせ:未定義のインデックス:画像に...." &

<form method="POST" action="/eye/sites/handling/post.php" enctype="multipart/form-data"> 
    <div class="fileUpload"> 
     <span><i class="fa fa-folder-o" aria-hidden="true"></i> Bild wählen</span> 
    <input type="file" class="upload" name="image"/> 
    </div> 
    <input type="submit" value="Upload It!" name="submit"/> 
</form> 

<?php session_start(); 
error_reporting(E_ALL); 
if (isset($_SESSION["login_stat"])) { 
date_default_timezone_set('Europe/Berlin'); 
$config = "$_SERVER[DOCUMENT_ROOT]/eye/more/config.xml"; 
$xml = simplexml_load_file($config); 
$picWidth = $xml->pic->width; 
$picHeight = $xml->pic->height; 
$fulldate = date('dmYHis'); 
if(isset($_POST["submit"])) { 
    if (file_exists($_FILES['image']['tmp_name']) || is_uploaded_file($_FILES['image']['tmp_name'])) { 
    $typeCheck = $_FILES['image']['type']; 
    if ($typeCheck != "image/jpeg") { 
     $error = "Not a .jpg"; 
     header('location: /eye/sites/post.php?stat=bad&error='.$error); 
     exit; 
    } 
    $file = $_SERVER['DOCUMENT_ROOT']."/uploads/".$fulldate.".jpg"; 
    $type = "image/jpeg"; 
    move_uploaded_file($_FILES['image']['tmp_name'], $file); 
    $file_thmb = $_SERVER['DOCUMENT_ROOT']."/uploads/!1A_thmb/".$fulldate.".jpg"; 
    include "resize-class.php"; 
    $resizeObj = new resize($file); 
    $resizeObj->resizeImage($picWidth, $picHeight, 'crop'); 
    $resizeObj->saveImage($file_thmb, 100); 
    // header('location: /eye/sites/post.php?stat=good'); 
    } else{ 
    // header('location: /eye/sites/post.php?stat=bad&error=No File'); 
    } 
} else{ 
    // header('location: /eye/sites/post.php?stat=bad&error=No Data'); 

    echo $_SERVER['CONTENT_TYPE']; 
    echo "<br>"; 
    echo $_FILES['image']['tmp_name']; 
    echo "<br>"; 
    echo $_POST['submit']; 
    echo "<br>"; 

} 
} else { 
header('location: /eye/index.php?stat=in'); 
} 
?> 
"お知らせ:未定義のインデックスに....提出"

編集: 問題は私のLocalhostに関するものです。 このすべてのことは私のウェブスペースでうまくいきますが、私のlocalhostではうまくいきません。 しかし、もうエラーは出ません。送信ボタンをクリックすると、画像を保存するはずのPHPファイルに行きますが、何も起こっていません。私はちょうど白いページを見る。 しかし、私が言ったように、私のウェブスペースでは完璧に動作します。

+0

あなたは何を得るのか 'var_dump($ _ POST);'を試しましたか? – Zeke

+0

@ Zeke今すぐ試してみると、空の配列が表示されます。 –

+0

それから、すべてが意味を成しています。エラーはそれを示しています。それは本当の問題です:投稿データは送信されていませんが、あなたのコードは完璧に見えません。どこかで何らかの設定が間違っていて、私たちはそれを見逃しています... – Zeke

答えて

1

これはローカルマシンで実行されている場合、「php.ini」ファイルがファイルアップロードを許可するように設定されていることを確認します。

php.iniのは

file_uploads = On 

コードは、罰金に見えます。フォームアクションが正しいパスに投稿されているかどうか、さらに複雑なものにする前にファイルアップロード機能をテストする簡単な方法を提案してもよいかどうかを確認してください。テストを開始するには、以下を使用します。

if (isset($_POST["submit"])) { 
    if (file_exists($_FILES['image']['tmp_name']) || is_uploaded_file($_FILES['image']['tmp_name'])) { 
     echo "Upload is working!"; 
    } 
} 

あなたの所見を更新してください。

+0

私はphp.iniに追加しましたが、まだ動作していません。 私は、まだ動作していない、小さなテストコードを使用しました。 ローカルサーバーが機能していないようになったため、ファイルのアップロードやPOSTデータの送信に問題はありませんでした。 私はそれとすべてを再起動しようとしましたが、何も動作しません。私は混乱しています 編集:私のローカルサーバーではないようですが、私がそこにある他のサイトはうまく動作しています。今私はさらに混乱しています –

+0

私はfile_uploadsがすでにどこかのphp.iniにあると思います。この行を追加しないでください。 php.iniを変更した後、Apacheサービスを再起動しましたか? –

関連する問題