2010-03-11 26 views
7

que tienen un pequeño script, que Im usar para probar PHP mail(), de la siguiente manera:PHP no se muestra errores

<?php 
error_reporting(E_ALL); 
ini_set("display_errors",1); 

mail('[email protected]','test','test') or die('could not send') ; 

echo "Mail Sent"; 

?> 

Cuando ejecuto este guión me sale ninguna salida en absoluto. No me da un error, no hago eco de nada, veo la fuente, nada.

He intentado tantas variaciones diferentes, si saco la función de correo en el código anterior funcionará bien.

Este es un Windows servidor alojado por lo que no tiene acceso a php.ini o cualquier

Podría ser alguna configuración que está causando ninguna salida cuando su encuentro con un error?

+0

PD Sé que la función mail() probablemente fallará si sendmail_from no está configurado o no en el encabezado. Im tratando de entender por qué los errores no darán como resultado – Tim

+0

Bueno, su llamada 'mail' contiene un error de sintaxis (' ' prueba, 'debe tener un apóstrofo adicional). Esa podría ser la razón por la que el programa se está muriendo ... PHP debería decírselo, que probablemente sea el objetivo de esta pregunta. – cmptrgeekken

Respuesta

17

según el libro de PHP Runtime Configuration:

Nota: Aunquedisplay_errors puede haber conjunto en tiempo de ejecución (con ini_set()), no tendrá ningún efecto si el script tiene errores fatales. Esto se debe a que la acción de tiempo de ejecución deseada no se ejecuta .

Su código parece tener un error de sintaxis ('test, falta un apóstrofo de cierre). Por lo tanto, su programa se encuentra con un error fatal. La forma solo de obtener un error fatal para mostrar (EDIT: fuera del registro de errores) es establecer display_errors = 1 en su archivo php.ini.

1

El problema está en la configuración del servidor de sendmail. Si está probando este script en su entorno de desarrollo personal, no se preocupe. Puede ser un pita para configurar/configurar un servidor de sendmail. Si tiene este problema en su servidor de producción, la solución más simple es usar una biblioteca de correo que tenga una opción smtp (permitiendo que su correo electrónico sea enviado a un servidor smtp externo para su procesamiento/entrega).

aquí hay una guía sobre el uso de una tercera secuencia de comandos de correo SMTP fiesta ... http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

Cuestiones relacionadas