Foros del Web » Programando para Internet » PHP »

Duda PHP, no muestra toda la pág

Estas en el tema de Duda PHP, no muestra toda la pág en el foro de PHP en Foros del Web. Tengo una página en código PHP, pero al cargar la página, no se me visualiza nada de lo que va después del código. Alguien sabe ...
  #1 (permalink)  
Antiguo 16/07/2004, 15:43
 
Fecha de Ingreso: junio-2003
Mensajes: 66
Antigüedad: 14 años, 5 meses
Puntos: 0
Duda PHP, no muestra toda la pág

Tengo una página en código PHP, pero al cargar la página, no se me visualiza nada de lo que va después del código.

Alguien sabe el error??

Gracias.

fragmento del codigo

mail($recipient, $subject, $formcontent, $mailheader) or die("La inscripción no se ha enviado.");
echo "Gracias! Su inscripción ha sido enviada correctamente.";?>
</td>
</tr>
</table> </td>
  #2 (permalink)  
Antiguo 16/07/2004, 16:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
¿Pero de que código hablas? (si hay problemas .. debes poner el código completo que uses y donde se origina el problema (indicarlo))

¿o que parte es a partir de ahí no se vé éjecuta el resto?

Te sucede siempre o sólo cuando ves "La inscripción no se ha enviado"?, por qué el "die()" hace dos cosas: para la ejecución del script en ese punto (con lo cual no se cerraría esa tabla HTML que ahí compones ...) y muestra el mensaje que ahí indicas.

Te vendría mejor usar mail() pero bajo un condicional if() simple:

Código PHP:
if (mail(......)){
echo 
"gracias ...";
} else {
echo 
"hay un problema";

Y mejor todavía si sacas esos mensajes de error/gracias a otra página .. por qué fijate que cuando se envie el e-mail correctamente si recargas la página vas a ejecutar denuevo tu script que envia el e-mail con los datos anteriores . .es más .. dependiendo del metodo de envio usado en tu formulario veras que se te solicitan enviar los datos denuevo al servidor. Lo cual ocasionará que se envien tantos e-mails como hasta que se arte el usuario "malicioso" de hacer una recarga de página ...

Solución:
quita todo ese HTML que tienes en el script que haces mail() .. no sirve de nada pues vamos a usar a PHP y ese script para el proceso integro PHP .. nada de mensajes ni más HTML por médio no es necesario.

Código PHP:
if (mail(......)){
header ("Location: gracias.html");
exit;
} else {
header ("Location: error.html");
exit;

Ahí se redirecciona a la página que corresponda según sea que terminó el proceso bien o hay algún error.

Un saludo,
  #3 (permalink)  
Antiguo 17/07/2004, 04:36
 
Fecha de Ingreso: junio-2003
Mensajes: 66
Antigüedad: 14 años, 5 meses
Puntos: 0
Bueno muchas gracias, es que soy demasiado nuevo en esto, voy a probar y ya te diré.

Gracias de nuevo.
  #4 (permalink)  
Antiguo 17/07/2004, 04:55
 
Fecha de Ingreso: junio-2003
Mensajes: 66
Antigüedad: 14 años, 5 meses
Puntos: 0
He probado lo de redireccionar a una página de gracias y a otra de error, cuando se envia correctamente me sale la página de gracias, pero cuando no se envía no me sale la de error, me sale:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
  #5 (permalink)  
Antiguo 17/07/2004, 16:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te abras equivocado en el nombre/ruta de la otra página .. revisalo bien. Ese "mega error" es simplemente que no se encontró la página .. pero como el redireccionamiento es vía cabeceras HTTP directas .. así suelta de "criptico" ese error.

Un saludo,
  #6 (permalink)  
Antiguo 22/07/2004, 05:56
 
Fecha de Ingreso: junio-2003
Mensajes: 66
Antigüedad: 14 años, 5 meses
Puntos: 0
Bueno no se lo que he hecho mal.

- En Lycos, el formulario funciona solo cuando se envía correctamente, me aparece la página de enviado!, cuando no se en´via, no me aparece la página de No enviado!, me aparece:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

- En iespana, cuando le doy a enviar formulario, simplemente la página se queda en blanco.

- En el servidor local Apache, me sale el error:

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in c:\archivos de programa\apache group\apache\htdocs\sendmail.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at c:\archivos de programa\apache group\apache\htdocs\sendmail.php:20) in c:\archivos de programa\apache group\apache\htdocs\sendmail.php on line 24

Asi que aquí están las líneas de error:

20 if (mail($recipient, $subject, $formcontent, $mailheader)){
21 header ("Location: enviado.htm");
22 exit;
23 } else {
24 header ("Location: error.htm");
25 exit;

Si alguien me puede ayudar, Gracias.
  #7 (permalink)  
Antiguo 22/07/2004, 09:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Header() envia cabeceras HTTP al cliente (navegador) pero .. resulta que tus servicios de hosting gratuitos que estás usando ya envian sus própias cabeceras HTTP por qué te insertan publicidad (al principio de tu código que puedas enviar tu a continuación) .. Esto te va a dar más de un quebradero de cabeza.

Cuando hablas del "servidor apache" no sé a que te refieres (una vez más . .por favor especifica mejor las cosas!!). Si a eso te refires que estás probando tu código en tu casa en tu PC con tu servidor HTTP (Apache) instalado y PHP .. el problema que tienes ahí es otro: NO estás indicando las cabeceras FROM: de mail() y php.ini send_mail_from lo tienes desactivado sin indicar ninguna dirección de e-mail del "remitente" (tu) por defecto. Además es probable que no tengas instalado un servidor SMTP en tu PC para tus pruebas o no indicastes el de tu ISP (proveedor) (en SMTP = ....) y que este a su vez no requiera autentificación para usarlo (cosa dificil hoy por hoy . .lo recomendable es que te instales un servidor SMTP para tus pruebas).

Lee la documentación de mail() y observa las cabeceras HTTP (4º parámetro si mal no recuerdo). Tienes ejemplos.
www.php.net/mail

Un saludo,
  #8 (permalink)  
Antiguo 22/07/2004, 10:48
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 15 años, 1 mes
Puntos: 4
a mi me paso q en php 5 (el ultimo beta antes del release) se comia el html y me mandaba la mitad, pero me pasaba por usar php.exe en vez de php-cgi.exe, y luego lo solucione cambiando el script-map de mi servidor.
  #9 (permalink)  
Antiguo 22/07/2004, 11:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Arraukano .. y que explicación lógica tiene eso? (donde leistes al respecto o el "por qué").. o fué cosa de que "probastes" a ver que pasa?.

Te lo comento por qué por lo menos PHP 5 (versión final) para Windows y en modo Módulo de apache no sucede eso.

Ahora .. si estás instalando PHP como CGI .. pues ese tendrás que usar .. PHP.exe no sé si será la versión "CLI" (Comand Line Interface) de PHP.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:16.