Foros del Web » Programando para Internet » PHP »

duda basica con formulario

Estas en el tema de duda basica con formulario en el foro de PHP en Foros del Web. Hola... Al poner lo siquiente Código: <?php FORM ACTION="registro.php" METHOD="post"> Usuario: <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGHT=20> <BR> Contraseña: <INPUT TYPE="password" NAME="contraseña" SIZE=20 MAXLENGHT=20> <BR> E-mail: ...
  #1 (permalink)  
Antiguo 06/08/2011, 23:44
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
duda basica con formulario

Hola...

Al poner lo siquiente

Código:
<?php
FORM ACTION="registro.php" METHOD="post">
Usuario: <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGHT=20> <BR>
Contraseña: <INPUT TYPE="password" NAME="contraseña" SIZE=20 MAXLENGHT=20> <BR>
E-mail: <INPUT TYPE="text" NAME="email" SIZE=28 MAXLENGHT=100> <BR>
Nombre: <INPUT TYPE="text" NAME"nombre" SIZE=20 MAXLENGHT=20> <BR>
<INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
</FORM>
?>
Tengo un error en la primera línea, de T-STRING... Si o si tengo que hacerlo de la siguiente manera para que este bien? ¿Por qué?

Código:
<?php
echo'<FORM ACTION="registro.php" METHOD="post">
Usuario: <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGHT=20> <BR>
Contraseña: <INPUT TYPE="password" NAME="contraseña" SIZE=20 MAXLENGHT=20> <BR>
E-mail: <INPUT TYPE="text" NAME="email" SIZE=28 MAXLENGHT=100> <BR>
Nombre: <INPUT TYPE="text" NAME"nombre" SIZE=20 MAXLENGHT=20> <BR>
<INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
</FORM>'
?>
Gracias
  #2 (permalink)  
Antiguo 06/08/2011, 23:52
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 14 años, 3 meses
Puntos: 9
Respuesta: duda basica con formulario

estas colocando codigo html directamente donde debe ir codigo php
  #3 (permalink)  
Antiguo 06/08/2011, 23:55
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: duda basica con formulario

La primera forma no funciona porque no es la sintaxis de PHP

puedes ponerlo sin las etiquetas <?php ?> o ponerlo como lo tienes en el segundo bloque de código


Código HTML:
Ver original
  1. <?php
  2.  
  3. //Codigo php
  4.  
  5. ?>
  6.  
  7. <FORM ACTION="registro.php" METHOD="post">
  8. Usuario: <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGHT=20> <BR>
  9. Contraseña: <INPUT TYPE="password" NAME="contraseña" SIZE=20 MAXLENGHT=20> <BR>
  10. E-mail: <INPUT TYPE="text" NAME="email" SIZE=28 MAXLENGHT=100> <BR>
  11. Nombre: <INPUT TYPE="text" NAME"nombre" SIZE=20 MAXLENGHT=20> <BR>
  12. <INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
  13. </FORM>
  14.  
  15. <?php
  16.  
  17. //Codigo php
  18.  
  19. ?>

Esto también es totalmente válido y hay más formas de hacerlo.

Código PHP:
Ver original
  1. <?php
  2.  
  3. echo <<<FORM
  4. <FORM ACTION="registro.php" METHOD="post">
  5. Usuario: <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGHT=20> <BR>
  6. Contraseña: <INPUT TYPE="password" NAME="contraseña" SIZE=20 MAXLENGHT=20> <BR>
  7. E-mail: <INPUT TYPE="text" NAME="email" SIZE=28 MAXLENGHT=100> <BR>
  8. Nombre: <INPUT TYPE="text" NAME"nombre" SIZE=20 MAXLENGHT=20> <BR>
  9. <INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
  10. </FORM>
  11. FORM;
  12.  
  13. ?>
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 07/08/2011 a las 00:02
  #4 (permalink)  
Antiguo 07/08/2011, 09:39
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: duda basica con formulario

Muchas gracias, ya entendí que mezclaba html con php!

Ahora tengo otra duda que ruego me expliquen. Estoy en el archivo registrar, que recién lo comencé y hasta ahora tengo esto (cualquier correción bienvenida)

1)

Código:
<?php

include 'conectar.php';

if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "")
{

$result = mysql_query("SELECT id FROM usuarios WHERE nick LIKE '$nick'");
if ($row = mysql_fetch_array($result))
{ 
echo "NICK OCUPADO."; 
}
else
{
mysql_query("INSERT INTO usuarios (nick, contraseña, nombre, email) values
('$nick','$contraseña', '$nombre', '$email') ");
echo "Registro exitoso!";
}

?>
Para comenzar, esto me tira un
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\PRACTICA\probando\registro.php on line 20
Y no puedo encontrar ninguna coma olvidada o algo por el estilo...


2)

Y por otra parte, yo use esta forma para insertar los datos en la BD:

Código:
mysql_query("INSERT INTO usuarios (nick, contraseña, nombre, email) values
('$nick','$contraseña', '$nombre', '$email') ");
Pero en otro sitio ví esta:

Código:
$sql = "INSERT INTO usuarios (nick,contraseña,nombre,email) 
$sql .= "VALUES ('$nick','$password','$nombre','$email')";
mysql_query($sql);
¿Me podrían explicar esta segunda forma como funciona?
Gracias
  #5 (permalink)  
Antiguo 07/08/2011, 09:50
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: duda basica con formulario

$HTTP_POST_VARS es obsoleto, ahora se usa $_POST

http://www.php.net/manual/es/reserved.variables.post.php

Sobre tu segunda duda te falta cerrar la última llave del primer condicional.

Y la tercera duda se está concatenando y también es válido hacerlo así, lee esto también:

http://www.php.net/manual/es/language.operators.string.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 07/08/2011, 10:23
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: duda basica con formulario

¡Muchas gracias! ya lo he leído todo.

Casi termino mi primera practica :( pero...
Al enviar el formulario me salen NOTICE, que si bien leí que no impiden que se ejecute el código, no se registran los datos en la DB.

Código:
Notice: Undefined variable: nick in C:\xampp\htdocs\registro.php on line 7

Notice: Undefined variable: nick in C:\xampp\htdocs\registro.php on line 13

Notice: Undefined variable: contraseña in C:\xampp\htdocs\registro.php on line 13

Notice: Undefined variable: nombre in C:\xampp\htdocs\registro.php on line 13

Notice: Undefined variable: email in C:\xampp\htdocs\registro.php on line 13
Registro exitoso!
  #7 (permalink)  
Antiguo 07/08/2011, 10:32
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: duda basica con formulario

Estás usando unas variables que no existen por ningún lado.

Código PHP:
Ver original
  1. ('$nick','$contraseña', '$nombre', '$email')

tienes que recoger una por una con $_POST ejemplo:

Código PHP:
Ver original
  1. $nick = $_POST['nick'];

Entre $_POST va el atributo name de tu formulario.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 07/08/2011, 10:50
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: duda basica con formulario

Me parecía raro que pudiera usar una variable sin antes declararla, pero así lo ví en tantos ejemplos que simplemente lo copie. Gracias. Ya las declaré, y ahora solo me sale un Undefined Index que no logro ver qué tiene mal esa sentencia... está todo definido (y es idéntica a las demás, que no salen con ese Notice)

Código:
Notice: Undefined index: nombre in C:\xampp\htdocs\registro.php on line 7
Código:
<?php

include 'conectar.php';

$nick = $_POST['nick'];
$contraseña = $_POST['contraseña'];
$nombre = $_POST['nombre'];
$email = $_POST['email'];

if (trim($_POST["nick"]) != "" && trim($_POST["email"]) != "")
{
$result = mysql_query("SELECT id FROM usuarios WHERE nick LIKE '$nick'");
if ($row = mysql_fetch_array($result))
{ 
echo "NICK OCUPADO."; 
}else{
mysql_query("INSERT INTO usuarios (nick, contraseña, nombre, email) values
('$nick','$contraseña', '$nombre', '$email') ");
echo "Registro exitoso!";
}}else{
Header("Location: formulario2.html");
}

?>
  #9 (permalink)  
Antiguo 07/08/2011, 10:53
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: duda basica con formulario

Si sigues usando el mismo formulario del inicio, te falta el igual en el atributo name:

Código HTML:
Ver original
  1. Nombre: <INPUT TYPE="text" NAME="nombre" SIZE=20 MAXLENGHT=20>
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #10 (permalink)  
Antiguo 07/08/2011, 12:45
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: duda basica con formulario

Gracias andres, todo en orden ahora :)

Menos lo más importante :(

Haciendo consultas a la BD me di cuenta que al final no se registrán los datos en la BD. Sí puedo insertar datos manualmente (mediante phpmyadmin), pero mediante los códigos que precedentemente les mostré no, se ejecuta todo bien pero nada pasa. Y los datos de conectar.php están bien (probé cambiarlos y salta error)

No sé qué puede ser la verdad.
  #11 (permalink)  
Antiguo 07/08/2011, 13:03
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: duda basica con formulario

Valida el insert a ver que puede estar pasando:

Código PHP:
Ver original
  1. if (mysql_query("INSERT INTO usuarios (nick, contraseña, nombre, email) values
  2. ('$nick','$contraseña', '$nombre', '$email') ")) {
  3.             echo "Registro exitoso!";
  4.         } else {
  5.             echo 'Error insertando: ' . mysql_error();
  6.         }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #12 (permalink)  
Antiguo 07/08/2011, 14:16
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: duda basica con formulario

Gracias, todo resuelto y ahora se como validar :D. Aprendi bastante con este thread.
Volveré pronto con más dudas!
  #13 (permalink)  
Antiguo 07/08/2011, 14:37
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: duda basica con formulario

Tengo que salirme un poco del tema.... Felicidades Trapar, por fin conozco a alguien que es principiante pero sí tiene ganas de aprender y no espera nada hecho :D

Suerte!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #14 (permalink)  
Antiguo 07/08/2011, 17:12
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: duda basica con formulario

Bueno, gracias, igualmente tendría que haber solucionado todo esto solo... pero bueno, elegí un método de estudio orientado a objetivos (estudio la teoría a medida que la necesito mientras voy armando webs que me pongo como práctica) por lo que a la vez que estoy empezando con php, estoy empezando con html, css, y herramientas de diseño, y la verdad que molestarlos a ustedes hace que sea más provechoso el tiempo al menos al principio del aprendizaje, donde la parte lógica en mi caso no es el inconveniente, sino la sintaxis -arquetipos- de los lenguajes y herramientas a utilizar.
  #15 (permalink)  
Antiguo 08/08/2011, 18:01
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: duda basica con formulario

1)
Bueno vuelvo con otra duda, que es tan básica que no está en ningún manual.

Ahora le estoy agregando a la web un sistema de encuestas y voy a ver si empiezo a armar el tema de las sesiones(seguramente lo más dificil) y algún panel básico de control (de control de que no se sabe, si la web está vacía ).
Pero lo que estoy haciendo ahora es ordenar el directorio de la web, es decir, moviendo los archivos a carpetas según bloques temáticos.
Y la duda es la siguiente:

Todo lo relacionado al registro lo puse en el directorio \registro\. Por ejemplo el archivo \registro\registro.php
Pero registro.php hace referencia a conectar.php

Código:
include 'conectar.php';
, que está en \conectar.php (es decir, en el directorio raíz, sin carpeta) por lo que tengo que volver un paso atrás, es decir, estoy en X carpeta, y tengo que volver a la carpeta anterior donde está el susodicho archivo, ¿cómo se marca eso en la dirección? probe \nombrecarpeta\conectar.php y nada.
Anduve leyendo sobre directorios, pero me parece que ahí no está lo que busco.

2) Eran dos dudas.
Por otra parte lo que quise hacer es una redirección a una web, pero ANTES mostrar texto, y para que ese texto pueda ser leído necesito que quede en pantalla unos segundos.
El tema de la redirección con Header() y la imposibilidad de tener salidas antes del mismo lo solucioné redireccionando a otra página (que a su vez será la página que usaré para luego redireccionar a la definitiva) y poniendo la opción de Header como condición de un if (que siempre va a dar correcto), y antes de ese condicional yo puedo poner cualquier salida que tenga ganas. Pero obviamente que si se ejecuta el echo y luego pasa a redireccionarse con Header, entonces no se llega a poder leer el echo. ¿Hay alguna manera de solucionarlo simplemente? Sé que lo podría hacer usando javascript (creo) o algo por el estilo. Pero busco más que nada una opción para salir del paso. Podría hacerlo obligando al usuario a presionar una tecla, usando un formulario, etc., pero quiero que sea automático en lo posible.

Se me ocurrió parando todos los procesos, creo que con un exit() y luego inciandolos, pero no sé si lo puedo hacer en un mismo archivo y además no parece lo más idoneo...

Código:
<?php

echo 'DEBE LLENAR TODOS LOS CAMPOS PARA CONTINUAR';
$aviso = 1;
$aviso2 = 1;
	if ($aviso != $aviso2) {
	echo 'ERROR 001. Nunca leeras esto, sos un receptor pasivo de reglas.';
	} else {
	Header("Location: formulario.html");
	exit;
	}
?>
Gracias.
  #16 (permalink)  
Antiguo 08/08/2011, 19:54
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: duda basica con formulario

Sobre tu primer duda para ir atrás debes colocar:

Código PHP:
Ver original
  1. '../conexion.php'

y sobre la segunda podrías mostrar una alerta y redirigir con javascript ejemplo:

Código PHP:
Ver original
  1. echo "<script>alert('Correo Enviado'); location.href='index.php';</script>";
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #17 (permalink)  
Antiguo 10/08/2011, 18:00
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: duda basica con formulario

Gracias andres

Alguien sabe donde puedo conseguir modelos de sistemas de usuarios simples? así los reviso y veo las dudas que me surgen de los mismos. Estoy analizando unos que baje pero son demasiado grandes y engorrosos para usar como material didactico.
Gracias

Edit:
Encontré una versión de un gestionador de usuarios, creado por un ex-usuario de este foro (Cluster) y parcheada por otro usuario, que parece lo que buscaba. Para los que lo quieran:
AUTENTIFICATOR parcheado

Última edición por Trapar; 10/08/2011 a las 20:57

Etiquetas: registro, formulario, usuarios, basicos
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 22:23.