Foros del Web » Programando para Internet » PHP »

mi primer paso en php?

Estas en el tema de mi primer paso en php? en el foro de PHP en Foros del Web. hola soy un aprendiz de php y despues de haber ñeido ciertos tutoriales como primera prueva quiero grabar la informacion de un formulario en un ...
  #1 (permalink)  
Antiguo 18/01/2005, 15:13
 
Fecha de Ingreso: diciembre-2004
Mensajes: 65
Antigüedad: 13 años
Puntos: 1
mi primer paso en php?

hola soy un aprendiz de php y despues de haber ñeido ciertos tutoriales como primera prueva quiero grabar la informacion de un formulario
en un archivo .txt
esto hice pero no me funciono.

index.htm

<html>
<head>
<title>index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="c1.php">
<input type="text" name="casa">
<input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>


c1.php

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<? echo "usted eligio \$casa:$casa<br>\n";?>


guardar.php

<?
require("c1.php");
define('FICHERO', 'datos.txt');
function grabar($casa,$fichero) {
$fp = fopen($fichero,"a+");
fwrite($fp,$casa."@");
fclose($fp);
}
if (!isset($_POST[action])) {
echo "<font size='4'><b>Debes seleccionar una opcion!!</b></font>"; exit;
}
?>

y un cree en la misma carpeta un archivo datos.txt
en que falle?
que pasos devo tener en cuenta para hacer estas operaciones?
  #2 (permalink)  
Antiguo 18/01/2005, 16:17
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
para empezar cierra la etiqueta input con </input>:

<input type="text" name="casa"></input>
<input type="submit" name="Submit" value="Enviar"></input>

luego en c1.php falta esto al principio (supongo que será un error de copiado/pegado):

<html>
<head>
<title>index</title>


Más abajo, en guardar.php defines una función que no se ejecuta nunca porque no la llamas en ninguna parte:

function grabar($casa,$fichero) {
$fp = fopen($fichero,"a+");
fwrite($fp,$casa."@");
fclose($fp);
}

No sé si lo sabes pero el modo de apertura 'a+' abre el fichero sin borrar lo que contiene y añade al final, de manera que el fichero se irá llenando poco a poco con lo que escriban los usuarios...

Luego las variables que envía el formulario son:

$casa que vale lo que escriba el usuario
$Submit que vale 'Enviar'

no envías ninguna variable llamada 'action' tal como dices en:

if (!isset($_POST[action])) {

de manera que $_POST[action] no va ha tener valor nunca, aunque el usuario pulse en el botón y no escriba nada.

Otro detalle: defines una constante llamada FICHERO, pero luego no la usas, en cambio usas una variable llamada $fichero que no está definida!

A la hora de acceder a las constantes no se usa el $ y ten en cuenta que no es lo mismo $FICHERO que $fichero...

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)

Última edición por DjNelson; 18/01/2005 a las 16:27
  #3 (permalink)  
Antiguo 19/01/2005, 07:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
también es recomendable usar comillas para referirse a un indice de un array .. sino podrían ser tomadas como "constantes" lo cual no es el objetivo de ese ejemplo:

$_POST['action']

Un saludo,
  #4 (permalink)  
Antiguo 19/01/2005, 07:36
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Cita:
Iniciado por DjNelson
para empezar cierra la etiqueta input con </input>:

<input type="text" name="casa"></input>
<input type="submit" name="Submit" value="Enviar"></input>
Los tags de input no se cierran de esta forma, que yo sepa

Antes no se cerraban y ahora se cierran acabando el tag con />

<input type="text" name="casa" />

Tal vez no me he enterado bien, ¿podrías decirme de dónde has sacado ese dato?

Saludos
  #5 (permalink)  
Antiguo 19/01/2005, 13:28
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Tunait: no lo he sacado de ninguna parte, simplemente lo hago así y el dreamweaver colorea correctamente la sintaxis... supongo que como lo hace ivans67 funciona igual, y como lo haces tú pues... nunca he probado pero supongo que también.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
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 08:53.