2014-06-18 3 views
-3

PHP에서 결과를 .txt 파일에 쓰는 양식을 만들었습니다.클라이언트 서버의 PHP 오류

Warning: Cannot modify header information - headers already sent by (output started at /home1/alertme/public_html/mavala/form.php:43) in /home1/alertme/public_html/mavala/form.php on line 52

내가 사용하고있는 코드는 다음과 같습니다 : 어떻게됩니까

내 서버에 모두 잘 작동하지만, 다른 서버에 다음과 같은 오류가 있다는 것입니다

<?php 
    if(isset($_POST['submit'])) 
    { 
     $name = $_POST['name']; 
     $email = $_POST['email']; 
     $new_content = "\r\nNome: " . $name; 
     $new_content .= "\r\nEmail: " . $email; 
     file_put_contents('emaillist.txt', $new_content, FILE_APPEND); 
     print_r(error_get_last()); 
     header('Location: thank-you.html'); //This is line 52 
    exit(); 
    } 
    ?> 

의 링크 오류가있는 서버는 다음과 같습니다. http://trendalert.me/mavala/form.php

양식을 작성하고 제출하면 PHP는 결과를 .txt 파일에 쓰지만 감사 페이지를 표시하지 않습니다. http://trendalert.me/mavala/thank-you.html

다시 말해서, 내 측면에서는 모두 작동하지만 클라이언트 서버에서는 그렇지 않습니다.

+2

''태그는 생략하십시오. – asprin

+2

... 또한 출력을 생성하는 print_r을 제거하십시오 – urzeit

+0

오류 메시지를 해제하기 때문에 올바르게 작동한다고 가정합니다. – panther

답변

0

헤더를 사용할 때 PHP 호출 태그 앞에 검은 색 공간이 없어야하며 헤더 호출 전에 출력이 없어야합니다. 이 동작은 다른 구성 및 PHP 버전에서 변경 될 수 있습니다.

그래서 모든 공백과 print_r을 제거하면 문제가 해결됩니다!

2
<?php 

입니다. 헤더를 보내는 공백을 보냅니다.

<?php는, 그 경고가 아래 코드이

<?php 
if(isset($_POST['submit'])) 
{ 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $new_content = "\r\nNome: " . $name; 
    $new_content .= "\r\nEmail: " . $email; 
    file_put_contents('emaillist.txt', $new_content, FILE_APPEND); 
    $errors = error_get_last(); 
    if(empty($errors)){ 
    header('Location: thank-you.html'); //This is line 52 
    exit(); 
    } else { 
    print_r($errors); 
    } 
} 
?> 
+1

거기에도 print_r이 있습니다. – rlemon

-1

을 억제해야 프로덕션 서버에서

또한 PHP 파일의 첫 번째 일이 있는지 확인합니다 :

<?php 
if(isset($_POST['submit'])) 
{ 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $new_content = "\r\nNome: " . $name; 
    $new_content .= "\r\nEmail: " . $email; 
    file_put_contents('emaillist.txt', $new_content, FILE_APPEND); 
    print_r(error_get_last()); 
    echo '<meta http-equiv="refresh" content="0; url=thank-you.html">'; //This is line 52 
exit(); 
} 
?> 
관련 문제