Foros del Web » Creando para Internet » HTML »

Problema con formulario html+php

Estas en el tema de Problema con formulario html+php en el foro de HTML en Foros del Web. Hola, antes de nada soy algo (bastante) novato en el mundo web. Tengo un problema con un formulario. Lo tengo subido al servidor y cuando ...
  #1 (permalink)  
Antiguo 24/10/2012, 04:57
Avatar de 2_javi_2  
Fecha de Ingreso: septiembre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Problema con formulario html+php

Hola, antes de nada soy algo (bastante) novato en el mundo web. Tengo un problema con un formulario. Lo tengo subido al servidor y cuando acabas de rellenarlo y lo envías me aparece el siguiente error:

"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."


El código HTML es el siguiente:

<form id="contacto" name="contacto" method="post" action="Prueba.php" onsubmit="return validaform(this);">
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>*Nombre:</td>
<td><label for="nombre"></label>
<input type="text" name="nombre" id="nombre" /></td>
<td>*Apellidos:</td>
<td><label for="apellidos"></label>
<input type="text" name="apellidos" id="apellidos" /></td>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td>*E-mail:</td>
<td><label for="email"></label>
<input type="text" name="email" id="email" /></td>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td><p>Calle:</p></td>
<td><label for="calle"></label>
<input type="text" name="calle" id="calle" /></td>
<td>Numero;:</td>
<td><label for="numero"></label>
<input type="text" name="numero" id="numero" /></td>
<td>Codigo Postal:</td>
<td><label for="codigo postal"></label>
<input type="text" name="codigo postal" id="codigo postal" /></td>
</tr>
<tr>
<td>Poblacion:</td>
<td><label for="poblacion"></label>
<input type="text" name="poblacion" id="poblacion" /></td>
<td>*Provincia:</td>
<td><label for="provincia"></label>
<input type="text" name="provincia" id="provincia" /></td>
<td>*Pais:</td>
<td><label for="pais"></label>
<input type="text" name="pais" id="pais" /></td>
</tr>
<tr>
<td colspan="6">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><label for="button"></label>
<input type="submit" name="button" id="button" value="Enviar" /></td>
<td><label for="button2"></label>
<input type="reset" name="button2" id="button2" value="Limpiar" /></td>
<td colspan="3">&nbsp;</td>
</tr>
</table>
</form>

Y el del archivo PHP es este:

<?php
$nombre = $_POST['nombre'];<br />
$apellidos = $_POST['apellidos'];<br/>
$email = $_POST['email'];<br />
$calle = $_POST['calle'];<br/>
$numero = $_POST['numero'];<br/>
$codigo postal = $_POST['codigo postal'];<br/>
$poblacion = $_POST['poblacion'];<br/>
$provincia = $_POST['provincia'];<br/>
$pais = $_POST['pais'];<br/>
</p>
<p>$para = '[email protected]';<br />
$asunto = 'contacto';</p>
<p>mail($para, $asunto, $mensaje, "From: $remitente");</p>
<p>echo 'Mensaje enviado correctamente';<br />
?>

¿Donde esta el fallo? Seguro que es algo absurdo, pero no lo veo. Gracias.
  #2 (permalink)  
Antiguo 24/10/2012, 12:42
 
Fecha de Ingreso: octubre-2012
Mensajes: 13
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema con formulario html+php

Cita:
Iniciado por 2_javi_2 Ver Mensaje
<?php
$nombre = $_POST['nombre'];<br />
$apellidos = $_POST['apellidos'];<br/>
$email = $_POST['email'];<br />
$calle = $_POST['calle'];<br/>
$numero = $_POST['numero'];<br/>
$codigo postal = $_POST['codigo postal'];<br/>
$poblacion = $_POST['poblacion'];<br/>
$provincia = $_POST['provincia'];<br/>
$pais = $_POST['pais'];<br/>
</p>
<p>$para = '[email protected]';<br />
$asunto = 'contacto';</p>
<p>mail($para, $asunto, $mensaje, "From: $remitente");</p>
<p>echo 'Mensaje enviado correctamente';<br />
?>
Es un problema de sintaxis en el codigo php. No puedes usar tags html dentro de php, dado que php es un lenguaje distinto y no sabe de html. Todo el html que quieras que se muestre en tu pagina tienes que mostrarlo mediante llamas a echo, no puedes poner directmanete <br/> por ejemplo, deberias poner
Código:
echo '<br/>'
Del mismo modo no hace falta que "organices" el codigo php con los tags <p>, el php que escribas no se va a ver en ningun momento en la pagina, sólo se va a ver el html, y si quieres imprimir por pantalla desde php para que se vea en la pagina, necesitas usar echo. de esta forma tu código quedaria como algo parecido a esto:

Código PHP:
<?php
$nombre 
$_POST['nombre'];
$apellidos $_POST['apellidos'];
$email $_POST['email'];
$calle $_POST['calle'];
$numero $_POST['numero'];
$codigo postal $_POST['codigo postal'];
$poblacion $_POST['poblacion'];
$provincia $_POST['provincia'];
$pais $_POST['pais'];

$para '[email protected]';
$asunto 'contacto';
mail($para$asunto$mensaje"From: $remitente");
echo 
'Mensaje enviado correctamente';
?>
Desconozco para que quieres usar las variables $nombre, $apellidos, etc, me imagino que no se usarán en esta parte del código. Respecto a la funcion mail, el tercer parametro deberías ponerlo asi:
Código:
"From: ".$remitente
Sino, no reconocerá remitente como una variable y te escribirá directamente el literal "$remitente".

Un saludo
  #3 (permalink)  
Antiguo 24/10/2012, 18:22
Avatar de LuaToto  
Fecha de Ingreso: octubre-2012
Ubicación: Veracruz
Mensajes: 26
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema con formulario html+php

Asi es hosyou, a eso se le llama codigo embebido, tus correcciones estan bien
  #4 (permalink)  
Antiguo 25/10/2012, 06:11
Avatar de 2_javi_2  
Fecha de Ingreso: septiembre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema con formulario html+php

Lo primero, os doy las gracias por la ayuda y el interés.
He borrado toda huella de html en el php, pero me sigue dando el mismo error.
¿Puede ser un problema con el servidor?. He leído que hay servidores que no aceptan o que se debe de pedir permiso para que pueda leer archivos php. En la home del servidor me pone que si los acepta. Asi que me imagino que por ahí no esta el error.
También he visto que los archivos php hay que alojarlos en una carpeta del servidor llamada "cgi-bin" en la cual lo tengo alojado. ¿Debe de tener algún archivo más esa carpeta proporcionado por el servidor?. En mi caso aparece vacía.
Una vez más gracias. Un saludo.
  #5 (permalink)  
Antiguo 25/10/2012, 11:24
 
Fecha de Ingreso: octubre-2012
Mensajes: 13
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema con formulario html+php

No es necesario que metas la los ficheros php en la carpeta cgi-bin, mientras tengas el servidor configurado adecuadamente para que coja los ficheros donde los tienes alojados. La carpeta cgi-bin es este caso, solo es una carpeta que crea apache por defecto por si quieres usar esa funcionalidad.

Puede que sea por un problema en el servidor, lo mejor será que consultes el log de errores de apache.

No se qué sistema operativo estas usando para el servidor, si usas linux deberias consultar el fichero de configuracion del servidor que probablemente estará en:
Código:
/etc/apache2/
El fichero suele llamarse httpd.conf, y la ruta del log de errores está configurada en dicho fichero con la directiva ErrorLog.

Abre el fichero justo despues de que te suelte el Internal Server Error y vete a las ultimas lineas, te dirá qué es lo que está fallando. Si no sabes resolverlo postea las ultimas lineas del error log, así como la configuración de apache.

No obstante puede ser alguna tonteria de sintaxis que se te haya escapado, asi que revisa el codigo, tanto el html como el php, en cualquier caso, aparecerá en el error log

Un saludo
  #6 (permalink)  
Antiguo 26/10/2012, 11:03
Avatar de 2_javi_2  
Fecha de Ingreso: septiembre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema con formulario html+php

Hosyou, acabas de hundirme en la miseria. No entiendo nada de lo que me has puesto, lo siento. He entrado en el servidor y no he visto ninguna carpeta o archivo con nombre con algo parecido a "apache". Tampoco sé qué tipo de S.O. usa el servidor, lo siento. Lo más parecido que he visto son dos carpetas. Una se llama "conf" la cual no me permite el acceso. Y la otra con nombre "error_docs" en la cual no me sale ningún error después de intentar enviar el formulario. Veré si me dicen algo los del servidor.
Gracias Hosyou por intentar ayudarme. Te debo unas birras :D
  #7 (permalink)  
Antiguo 29/10/2012, 14:41
 
Fecha de Ingreso: octubre-2012
Mensajes: 13
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema con formulario html+php

Perdon, fallo mio, he asumido que el servidor es Apache corriendo sobre una maquina Linux.

Para saber dónde está el Error Log, necesitarás abrir el fichero de configuración del servidor (y me refiero al servidor como aplicación).

Entonces, responde a un par de preguntas, cuando dices "entrar en el servidor" ¿a qué te refieres?

Cuando hablas de "los del servidor" ¿a quiénes te refieres? y ¿dónde está el servidor instalado?

Etiquetas: formulario, input, php
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 22:39.