2010-03-14 6 views
6

To może być śmieszne pytanie, ale od jakiegoś czasu mnie to niepokoi. mam spedytor elektronicznej rurami do skryptu PHP, odbiera doskonale, jednak mam następujący błąd odsyłany do mnie natychmiast:W jaki sposób mogę zatrzymać PHP od zwracania nagłówków po wykonaniu z linii poleceń?

A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: 

    pipe to |/home/[webroot]/public_html/external/mobile/email.php 
    generated by [email protected][mydomain] 

The following text was generated during the delivery attempt: 

X-Powered-By: PHP/5.2.13 
Content-type: text/html 

Jak widać, Exim myśli odpowiedzi nagłówek błąd ze skryptu Mam. Skrypt może otrzymać wiadomość e-mail idealnie od php: // stdin, ale Exim odpowiada szybko z błędem.

Plus,

  • To działa z konsolą, nie tak Apache .htaccess lub konfiguracji Apache najprawdopodobniej zrobi nic.
  • Nie mogę znaleźć żadnego rozwiązania ani nikogo z tym samym problemem.

Moje pytanie brzmi: jak pozbyć się tych dwóch nagłówków?

Dzięki, ~ Jonny

Edycja, Źródło:

#!/usr/bin/php 
<?php 
    $fd = fopen("php://stdin", "r"); 
     $email = ""; 
     while (!feof($fd)) { 
     $email .= fread($fd, 1024); 
     } 
     fclose($fd); 

     $dat = fopen(dirname(__FILE__).'/test.txt', 'w'); 
     fwrite($dat, $email); 
     fclose($dat); 

Odpowiedz

14

wygląda używasz php-cgi natomiast trzeba php-cli (właśnie "php"). Uruchom php -v, aby się upewnić. Jeśli tak jest w przypadku cgi, spróbuj opcji "-q".

+0

O ile próbowałem z php -v spamował z powrotem "Content-type: text/html", poszedłem dalej i próbowałem go uruchomić z opcją -q i nadal zwracał nagłówki. Exim nadal jest dość drażliwy. – JonnyLitt

+1

spróbuj dodać nagłówek ("Content-type: '); do początku skryptu. Również kasy http://www.php.net/manual/en/function.header-remove.php –

+0

eep, Czy to, problem jest: Nie mam PHP <= 5.3.0 (Needed for Header_remove), raczej wersja 5.2.4. Nie mogę aktualizować, ponieważ jestem na współdzielonym hoście i argumentowali przeciwko temu, że jest paranoikiem na temat błędów w nowszych wersjach PHP. – JonnyLitt

0

Miał ten sam problem. Moi gospodarze powiedzieli mi, że mogę użyć php-5.4-cli (zwykle używałem php-5.4).

Dodanie -cli zadziałało u mnie.

Powiązane problemy