Formulario PHP

¡Hola!
Estoy emezando con php y ya estoy atascado :(. ¿Por qué no me funcionan los siguientes scripts para mostrá la información del formulario?
form_entry.html
<html>
<head>
<title>Cómo introducir información en un formulario</title>
</head>
<form action="form_results.php" method="GET">
<p>Nombre: <input type="text" name="first_name">
<br>Apellidos: <input type="text" name="last_name">
<br>Dirección: <input type="tex" name="address">
<br>Ciudad: <input type="text" name="city">
<br>Estado: <input type="text" name"state">
<br>Código Postal: <input type="text" name="zip">
<br>Teléfono: <input type="text" name="home_phone">
<p><input type="submit" name="Enviar>
<p>input type="reset" name="Restablecer">
</form>
</body>
</html>
form_results.php3
<html>
<head>
<title>Resultados del Formulario</title>
</head>
<body>
<h2>Abajo están los resultados del envío del formulario</h2>
<?php
print("<p>Nombre: <b>$first_name</b>\n") ;
print("<p>Apellidos: <b>$last_name</b>\n");
print("<p>Dirección: <b>$address</b>\n");
print("<p>Ciudad: <b>$city</b>\n");
print("<p>Estado: <b>$state</b>\n");
print("<p>Código Postal: <b>$zip</b>\n");
print("<p>Teléfono: <b>$home_phone</b>\n");
?>
</body>
</html>

1 respuesta

Respuesta
1
Si una variable de un formulario (que además tú ves que está bien enviada, porque el formulario usa GET y puedes ver el valor en la URL del navegador) no te muestra luego el valor en la siguiente página, casi siempre se debe a lo mismo.
A partir de la versión 4.2.0 de PHP la directiva register_globals está por defecto desactivada, mientras que antes siempre estaba activada.
Cuando está desactivada las variables globales (entre las que se incluyen las enviadas por formularios) no se registran automáticamente, para evitar problemas de seguridad.
En este caso tienes que acceder a la variable del formulario usando:
$_GET['first_name']
De esta forma todas las variables globales quedan identificadas por su procedencia, y no hay confusión con otras variables globales que podrías tener, como:
$_POST['first_name'] (un formulario por POST)
$_COOKIE['first_name'] (una cookie en el cliente)
$_SESSION['first_name'] (una variable de sesión).
Esta es la práctica que se recomienda para programar en PHP. La otra opción es irte a tu fichero de configuración php.ini y poner:
register_globals = On
Espero que esto te solucione el problema. Suerte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas