Por que no me funcionan los formularios?

betoloco
25 de Julio del 2003
Hola, voy empezando con PHP y entiendo (o creo entender como funcionan los formularios). Pero al probar cualquier ejemplo de los que ponen por aqui no me funciona. No se que está pasando pero, de hecho el interprete de PHP no me está procesando correctamente ningun formulario, es decir, no envía ningun tipo de información. ¿Qué podría estar ocurriendo?.

Por ejemplo...este simple formulario no se procesa adecuadamente (simplemente lo toma como si nunca hubiera introducido y enviado dato alguno y vuelve a mostrarme lo mismo cuando le doy enviar. Ayuda!!!¿QUE DEBO HACER?

<html>
<head>
<title>Cómo introducir información en un formulario</title>
</head>
<body>
<?
if ($Enviar)
{
echo "<br>Nombre: <b>".$first_name."</b><br>";
echo "<br>Apellidos: <b>".$last_name."</b>";
echo "<br>Dirección: <b>".$address."</b>";
echo "<br>Ciudad: <b>".$city."</b>";
echo "<br>Estado: <b>".$state."</b>";
echo "<br>Código Postal: <b>".$zip."</b>";
echo "<br>Teléfono: <b>".$home_phone."</b>";

// aki podeis procesar la informacion y poner el kodigo para todo lo ke kieras ke se haga sin ke se vea el formulario despues de ke hacen un Submit

}
else
{
?>
<form action="<? $PHP_SELF ?>" method="POST">
<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">
<br><br><input type="submit" name="Enviar">
<input type="reset" name="Restablecer"></p>
</form>
<?
} // fin del if
?>
</body>
</html>

Cristian
25 de Julio del 2003
Prueba con este código:

<html>
<head>
<title>Cómo introducir información en un formulario</title>
</head>
<body>
<?
if ($Enviar)
{
$first_name=$_POST["$first_name"];
$last_name=$_POST["$last_name"];
$address=$_POST["$address"];
$city=$_POST["$city"];
$state=$_POST["$state"];
$zip=$_POST["$zip"];
$home_phone=$_POST["$home_phone"];

echo "<br>Nombre: <b>".$first_name."</b><br>";
echo "<br>Apellidos: <b>".$last_name."</b>";
echo "<br>Dirección: <b>".$address."</b>";
echo "<br>Ciudad: <b>".$city."</b>";
echo "<br>Estado: <b>".$state."</b>";
echo "<br>Código Postal: <b>".$zip."</b>";
echo "<br>Teléfono: <b>".$home_phone."</b>";
}
else
{
?>
<form action="<? $PHP_SELF ?>" method="POST">
<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">
<br><br><input type="submit" name="Enviar">
<input type="reset" name="Restablecer"></p>
</form>
<?
}
?>
</body>
</html>

que tengas suerte

Shao !!


Cristian
25 de Julio del 2003
Se me olvidaba ....

antes de esta línea " if ($Enviar) ", coloca esto :

$enviar=$_POST["$enviar"];

ahora sí ...

Shao !!



betoloco
25 de Julio del 2003
Gracias!!

sin embargo sigue sin funcionar...
alguna otra sugerencia?

Shrek
25 de Julio del 2003
Yo creo que tu problema esta en la configuración del servidor PHP. Revisa tu archivo de configuración php.ini y asegurate de que la opción register_globals esté en "on" asi
register_globals = On

De todas formas, los valores que envias desde un formulario usando el metodo POST quedan registradas en la variable global $HTTP_POST_VARS y los enviados usando el metodo GET quedan en la variable $HTTP_GET_VARS

Un pequeño ejemplo para que lo revices

echo "Valores enviados con el método POST:<br>";
reset ($HTTP_POST_VARS);
while (list ($clave, $val) = each ($HTTP_POST_VARS)) {
echo "$clave => $val<br>";
}

edwinmolina
25 de Julio del 2003
Verifica en el archivo de configuración de PHP (php.ini) que se encuentra en el directorio de WINDOWS, ahi esta una variable llamada "register_globals", esta variable en las más recientes versiones de PHP biene setiada en OFF, con lo que no te permite pasar valores a través del protoco HTTP que es el que utilizas cuando envias formularios.
Solución:
Modificar la variable asi:

register_globals = On

Y listo....

Hasta luego...


betoloco
25 de Julio del 2003
Gracias!...ya funcionó...
efectivamente era el valor de register_globals y ya le puse "on".

thanks!