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'); 
} 
?> 

편집 : 문제는 확실히 내 로컬 호스트에 관한 것입니다. 이 모든 일이 내 Webspace에서 잘 작동하지만 내 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를 변경 한 후 아파치 서비스를 다시 시작 했습니까? –

관련 문제