Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Deja tu post en el foro para hacer algun tipo de consulta

Autor Tema: Procesar un formulario en PHP  (Leído 42953 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Erythnul

  • Visitante
Procesar un formulario en PHP
« en: Julio 08, 2010, 04:18:25 am »

Hola, como dice el titulo quisiera hacer un proceso para un formulario en PHP. Mi objetivo principal es aprender y lograr que funcionen las cosas como se debe.

proceso.php
Código: [Seleccionar]
<?php

$usuario 
$_POST['usuario'];
$clave1 $_POST['clave1'];
$clave2$_POST['clave2'];
$correo $_POST['correo'];

if (empty(
$usuario))
{
echo 
"Debes ingresar un nombre de usuario para registrarte.";
}
elseif (empty(
$clave1))
{
echo 
"Debes ingresar una contrase&ntilde;a para registrarte.";
}
elseif (
$clave1 != $clave2)
{
echo 
"Por favor confirma la contrase&ntilde;a ingresada.";
}
elseif (!
strpos($correo,"@hotmail.") && !strpos($correo,"@gmail.") && !strpos($correo,"@yahoo.") && !strpos($correo,"live.com."))
{
echo 
"El correo ingresado es incorrecto.";
}
else
{
$conexion mysql_connect("localhost","root","");
mysql_select_db("tanatos"$conexion);
$codigo rand(0000000000,9999999999);
if (!
mysql_query("INSERT INTO new_accounts (user,password,email,code) values ('".$usuario."','".$clave1."','".$correo."','".$codigo."')")) die (mysql_error());
$headers "From: algun@email.com";
$mensaje "Hola $usuario! \n
Te enviamos este correo para completar el proceso de registro. \n
Para activar tu cuenta visita el siguiente enlace: \n
http://localhost/confirmar.php?codigo="
.$codigo;
if (!@
mail("$correo","Confirmacion de registro","$mensaje","$headers")) die ("No se pudo enviar el email de confirmacion.");
echo 
"Tu cuenta ha sido registrada, sin embargo, esta requiere que la confirmes desde el email que ingresaste en el registro.";
}
?>


Lo primero que quiero hacer es que verifique si esta registrado el usuario. ¡Saludos!
En línea

ernestmego

  • Soporte Técnico
  • Usuario experimentado
  • *
  • Karma: +1/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 57
  • Soporte veloz y eficiente
    • Ver Perfil
Re:Procesar un formulario en PHP
« Respuesta #1 en: Julio 08, 2010, 06:38:39 am »

De primeras podrías validar si la variable post tiene un dato y esta establecida, sino guardar un NULL para forzar el empty()
Código: [Seleccionar]
<?php $usuario = (isset($_POST['usuario']))?$_POST['usuario']:NULL;

Luego como los if son de una sola línea podrías omitir las llaves, por ejemplo:

Código: [Seleccionar]
<?php if (empty($usuario)) echo "Debes ingresar un nombre de usuario para registrarte.";Además conforme los tienes puestos, sólo te aparece un error, y podrían darse más a la vez, por eso mejor tener una variable booleana y se ponga a falso cuando haya algún campo invalido. Y sólo si esta a true (cierto) que se pase a la parte del else.
En línea
Co-Soporte de Quijost
24x7 Rapido, eficiente y profesional

Erythnul

  • Visitante
Re:Procesar un formulario en PHP
« Respuesta #2 en: Julio 08, 2010, 09:00:26 am »

Mira en realidad soy lo mas novato que podes encontrar en PHP JaJa. La verdad que como me comentas mucho no entiendo, que es lo que tendría que hacer con ese código y donde los coloco y así voy sacando conclusiones y aprendiendo a mi manera.

Lo modifique de la siguiente manera, creo que entendí bien. ¡Saludos!

Código: [Seleccionar]
<?php

$usuario 
= (isset($_POST['usuario']))?$_POST['usuario']:NULL;
$clave1 $_POST['clave1'];
$clave2$_POST['clave2'];
$correo $_POST['correo'];

if (empty(
$usuario)) echo "Debes ingresar un nombre de usuario para registrarte.";
elseif (empty(
$clave1))
{
echo 
"Debes ingresar una contrase&ntilde;a para registrarte.";
}
elseif (
$clave1 != $clave2)
{
echo 
"Por favor confirma la contrase&ntilde;a ingresada.";
}
// Aqui una nueva forma para validar el email, usando la funcion "strpos":
elseif (!strpos($correo,"@hotmail.") && !strpos($correo,"@gmail.") && !strpos($correo,"@yahoo.") && !strpos($correo,"live.com."))
{
echo 
"El correo ingresado es incorrecto.";
}
else
{
$conexion mysql_connect("localhost","root","");
mysql_select_db("tanatos"$conexion);
$codigo rand(0000000000,9999999999); // Conseguimos un codigo aleatorio de 10 digitos.
if (!mysql_query("INSERT INTO new_accounts (user,password,email,code) values ('".$usuario."','".$clave1."','".$correo."','".$codigo."')")) die (mysql_error());
$headers "From: cuentas@uodaery.com.ar";
$mensaje "Hola $usuario: \n
Te enviamos este correo para completar el proceso de registro. \n
Para activar tu cuenta visita el siguiente enlace: \n
http://localhost/confirmar.php?codigo="
.$codigo;
if (!@
mail("$correo","Registro","$mensaje","$headers")) die ("No se pudo enviar el email de confirmacion.");
echo 
"Tu cuenta ha sido registrada, sin embargo, esta requiere que la confirmes desde el email que ingresaste en el registro.";
}
?>

« última modificación: Julio 08, 2010, 09:05:52 am por Erythnul »
En línea

ernestmego

  • Soporte Técnico
  • Usuario experimentado
  • *
  • Karma: +1/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 57
  • Soporte veloz y eficiente
    • Ver Perfil
Re:Procesar un formulario en PHP
« Respuesta #3 en: Julio 08, 2010, 09:08:14 am »

Si, pero debes hacer lo mismo con las demás variables en las que usas $_POST, como $clave1, $clave2 y $correo.

También lo mismo para los otros elseif.

Corrige eso y vemos más.

PD: Tranquilo todos fuimos novatos algún día.
En línea
Co-Soporte de Quijost
24x7 Rapido, eficiente y profesional

Erythnul

  • Visitante
Re:Procesar un formulario en PHP
« Respuesta #4 en: Julio 08, 2010, 09:27:40 am »

Bien, creo que lo hice correctamente. ¡Saludos!

Código: [Seleccionar]
<?php

$usuario 
= (isset($_POST['usuario']))?$_POST['usuario']:NULL;
$clave1 = (isset($_POST['clave1']))?$_POST['clave1']:NULL;
$clave2= (isset($_POST['clave2']))?$_POST['clave2']:NULL;
$correo = (isset($_POST['correo']))?$_POST['correo']:NULL;

if (empty(
$usuario)) echo "Debes ingresar un nombre de usuario para registrarte.";
elseif (empty(
$clave1)) echo "Debes ingresar una contrase&ntilde;a para registrarte.";
elseif (
$clave1 != $clave2) echo "Por favor confirma la contrase&ntilde;a ingresada.";
elseif (!
strpos($correo,"@hotmail.") && !strpos($correo,"@gmail.") && !strpos($correo,"@yahoo.") && !strpos($correo,"live.com.")) echo "El correo ingresado es incorrecto.";
else
{
$conexion mysql_connect("localhost","root","");
mysql_select_db("tanatos"$conexion);
$codigo rand(0000000000,9999999999); // Conseguimos un codigo aleatorio de 10 digitos.
if (!mysql_query("INSERT INTO new_accounts (user,password,email,code) values ('".$usuario."','".$clave1."','".$correo."','".$codigo."')")) die (mysql_error());
$headers "From: cuentas@uodaery.com.ar";
$mensaje "Hola $usuario: \n
Te enviamos este correo para completar el proceso de registro. \n
Para activar tu cuenta visita el siguiente enlace: \n
http://localhost/confirmar.php?codigo="
.$codigo;
if (!@
mail("$correo","Registro","$mensaje","$headers")) die ("No se pudo enviar el email de confirmacion.");
echo 
"Tu cuenta ha sido registrada, sin embargo, esta requiere que la confirmes desde el email que ingresaste en el registro.";
}
?>

« última modificación: Julio 08, 2010, 09:33:44 am por Erythnul »
En línea

ernestmego

  • Soporte Técnico
  • Usuario experimentado
  • *
  • Karma: +1/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 57
  • Soporte veloz y eficiente
    • Ver Perfil
Re:Procesar un formulario en PHP
« Respuesta #5 en: Julio 08, 2010, 09:33:20 am »

Vale ahora correcto, pero también te dije lo de la variable booleana ;)
En línea
Co-Soporte de Quijost
24x7 Rapido, eficiente y profesional

Erythnul

  • Visitante
Re:Procesar un formulario en PHP
« Respuesta #6 en: Julio 08, 2010, 09:41:46 am »

Explicame como hacerlo y lo hago como te dije antes no me las arreglo muy bien con el código todavía.

EDITO: Le agregue la variable booleana debajo de las otras variables. ¡Saludos!

Código: [Seleccionar]
<?php

$usuario 
= (isset($_POST['usuario']))?$_POST['usuario']:NULL;
$clave1 = (isset($_POST['clave1']))?$_POST['clave1']:NULL;
$clave2= (isset($_POST['clave2']))?$_POST['clave2']:NULL;
$correo = (isset($_POST['correo']))?$_POST['correo']:NULL;
$ok true;

if (empty(
$usuario)) echo "Debes ingresar un nombre de usuario para registrarte.";
elseif (empty(
$clave1)) echo "Debes ingresar una contrase&ntilde;a para registrarte.";
elseif (
$clave1 != $clave2) echo "Por favor confirma la contrase&ntilde;a ingresada.";
elseif (!
strpos($correo,"@hotmail.") && !strpos($correo,"@gmail.") && !strpos($correo,"@yahoo.") && !strpos($correo,"live.com.")) echo "El correo ingresado es incorrecto.";
else
{
$conexion mysql_connect("localhost","root","");
mysql_select_db("tanatos"$conexion);
$codigo rand(0000000000,9999999999); // Conseguimos un codigo aleatorio de 10 digitos.
if (!mysql_query("INSERT INTO new_accounts (user,password,email,code) values ('".$usuario."','".$clave1."','".$correo."','".$codigo."')")) die (mysql_error());
$headers "From: cuentas@uodaery.com.ar";
$mensaje "Hola $usuario: \n
Te enviamos este correo para completar el proceso de registro. \n
Para activar tu cuenta visita el siguiente enlace: \n
http://localhost/confirmar.php?codigo="
.$codigo;
if (!@
mail("$correo","Registro","$mensaje","$headers")) die ("No se pudo enviar el email de confirmacion.");
echo 
"Tu cuenta ha sido registrada, sin embargo, esta requiere que la confirmes desde el email que ingresaste en el registro.";
}
?>

« última modificación: Julio 08, 2010, 10:04:18 am por Erythnul »
En línea

ernestmego

  • Soporte Técnico
  • Usuario experimentado
  • *
  • Karma: +1/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 57
  • Soporte veloz y eficiente
    • Ver Perfil
Re:Procesar un formulario en PHP
« Respuesta #7 en: Julio 08, 2010, 10:09:37 am »

Código: [Seleccionar]
<?php

if (empty($usuario))

    echo 
"Debes ingresar un nombre de usuario para registrarte.";
    
$ok false;
}

# Lo mismo para otras condiciones

# Y luego al final

if($ok == true)
{
  
//Poner aqui la query
}
En línea
Co-Soporte de Quijost
24x7 Rapido, eficiente y profesional

Erythnul

  • Visitante
Re:Procesar un formulario en PHP
« Respuesta #8 en: Julio 08, 2010, 10:33:38 am »

No entendí lo de poner una consulta en ese lugar, pero lo demás creo que esta correcto.

Código: [Seleccionar]
<?php

$usuario 
= (isset($_POST['usuario']))?$_POST['usuario']:NULL;
$clave1 = (isset($_POST['clave1']))?$_POST['clave1']:NULL;
$clave2= (isset($_POST['clave2']))?$_POST['clave2']:NULL;
$correo = (isset($_POST['correo']))?$_POST['correo']:NULL;
$ok true;

if (empty(
$usuario))
{
    echo 
"Debes ingresar un nombre de usuario para registrarte.";
    
$ok false;
}
elseif (empty(
$clave1)
{
echo "Debes ingresar una contrase&ntilde;a para registrarte.";
$ok false;
}
elseif (
$clave1 != $clave2)
{
echo "Por favor confirma la contrase&ntilde;a ingresada.";
$ok false;
}
elseif (!
strpos($correo,"@hotmail.") && !strpos($correo,"@gmail.") && !strpos($correo,"@yahoo.") && !strpos($correo,"live.com."))
{
echo "El correo ingresado es incorrecto.";
$ok false;
}
if (
$ok == true)
{
  
//Poner aqui la query
}
else
{
$conexion mysql_connect("localhost","root","");
mysql_select_db("tanatos"$conexion);
$codigo rand(0000000000,9999999999);
if (!
mysql_query("INSERT INTO new_accounts (user,password,email,code) values ('".$usuario."','".$clave1."','".$correo."','".$codigo."')")) die (mysql_error());
$headers "From: cuentas@uodaery.com.ar";
$mensaje "Hola $usuario: \n
Te enviamos este correo para completar el proceso de registro. \n
Para activar tu cuenta visita el siguiente enlace: \n
http://localhost/confirmar.php?codigo="
.$codigo;
if (!@
mail("$correo","Registro","$mensaje","$headers")) die ("No se pudo enviar el email de confirmacion.");
echo 
"Tu cuenta ha sido registrada, sin embargo, esta requiere que la confirmes desde el email que ingresaste en el registro.";
}
?>


¡Saludos!
En línea

ernestmego

  • Soporte Técnico
  • Usuario experimentado
  • *
  • Karma: +1/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 57
  • Soporte veloz y eficiente
    • Ver Perfil
Re:Procesar un formulario en PHP
« Respuesta #9 en: Julio 08, 2010, 10:38:55 am »

Te lo pongo ya bien, fijate lo que he modificado:

Código: [Seleccionar]
<?php

$usuario 
= (isset($_POST['usuario']))?$_POST['usuario']:NULL;
$clave1 = (isset($_POST['clave1']))?$_POST['clave1']:NULL;
$clave2= (isset($_POST['clave2']))?$_POST['clave2']:NULL;
$correo = (isset($_POST['correo']))?$_POST['correo']:NULL;
$ok true;

if(empty(
$usuario))
{
    echo 
"Debes ingresar un nombre de usuario para registrarte.";
    
$ok false;
}

if(empty(
$clave1)
{
   echo 
"Debes ingresar una contrase&ntilde;a para registrarte.";
   
$ok false;
}

if (
$clave1 != $clave2)
{
   echo 
"Por favor confirma la contrase&ntilde;a ingresada.";
   
$ok false;
}

if(!
strpos($correo,"@hotmail.") && !strpos($correo,"@gmail.") && !strpos($correo,"@yahoo.") && !strpos($correo,"live.com."))
{
   echo 
"El correo ingresado es incorrecto.";
   
$ok false;
}

if(
$ok == true)
{
$conexion mysql_connect("localhost","root","");
mysql_select_db("tanatos"$conexion);
$codigo rand(0000000000,9999999999);
if (!mysql_query("INSERT INTO new_accounts (user,password,email,code) values ('".$usuario."','".$clave1."','".$correo."','".$codigo."')")) die (mysql_error());
$headers "From: cuentas@uodaery.com.ar";
$mensaje "Hola $usuario: \n
Te enviamos este correo para completar el proceso de registro. \n
Para activar tu cuenta visita el siguiente enlace: \n
http://localhost/confirmar.php?codigo="
.$codigo;
if (!@mail("$correo","Registro","$mensaje","$headers")) die ("No se pudo enviar el email de confirmacion.");
echo "Tu cuenta ha sido registrada, sin embargo, esta requiere que la confirmes desde el email que ingresaste en el registro.";
}
?>

En línea
Co-Soporte de Quijost
24x7 Rapido, eficiente y profesional

Erythnul

  • Visitante
Re:Procesar un formulario en PHP
« Respuesta #10 en: Julio 08, 2010, 10:47:19 am »

Entonces lo que yo pensaba estaba bien de solo borrar el else. Entonces ahora como logramos que verifique si el usuario esta en la base de datos? Tengo un pedaso de script que saque de una guia pero no se si es compatible. ¡Saludos!

Código: [Seleccionar]
$query = mysql_query("SELECT * FROM accounts WHERE user='$usuario' ");
if ($usuario_existe = mysql_fetch_array($query))
{
echo 'El usuario ya esta registrado';
mysql_free_result($query);
}
En línea

ernestmego

  • Soporte Técnico
  • Usuario experimentado
  • *
  • Karma: +1/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 57
  • Soporte veloz y eficiente
    • Ver Perfil
Re:Procesar un formulario en PHP
« Respuesta #11 en: Julio 08, 2010, 10:51:51 am »

No es solo borrar el else, fijate tambien en los else if.

Para lo otro busca por mysql_num_rows, una cosa es preguntar y otra es hacerte todo el código ;) Somos ayuda a soporte, no soporte de creación ;)
En línea
Co-Soporte de Quijost
24x7 Rapido, eficiente y profesional

Erythnul

  • Visitante
Re:Procesar un formulario en PHP
« Respuesta #12 en: Julio 08, 2010, 11:06:26 am »

La verdad agradezco tu participación y te pido perdón, no lo hago mas. ¡Saludos!
En línea
 

Página generada en 0.067 segundos con 34 consultas.