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
<?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ña para registrarte.";}elseif ($clave1 != $clave2){echo "Por favor confirma la contraseñ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! \nTe enviamos este correo para completar el proceso de registro. \nPara activar tu cuenta visita el siguiente enlace: \nhttp://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!
De primeras podrías validar si la variable post tiene un dato y esta establecida, sino guardar un NULL para forzar el empty()
<?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:
<?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.
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!
<?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ña para registrarte.";}elseif ($clave1 != $clave2){echo "Por favor confirma la contraseñ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: \nTe enviamos este correo para completar el proceso de registro. \nPara activar tu cuenta visita el siguiente enlace: \nhttp://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.";}?>
Bien, creo que lo hice correctamente. ¡Saludos!
<?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ña para registrarte.";elseif ($clave1 != $clave2) echo "Por favor confirma la contraseñ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: \nTe enviamos este correo para completar el proceso de registro. \nPara activar tu cuenta visita el siguiente enlace: \nhttp://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.";}?>
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!
<?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ña para registrarte.";elseif ($clave1 != $clave2) echo "Por favor confirma la contraseñ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: \nTe enviamos este correo para completar el proceso de registro. \nPara activar tu cuenta visita el siguiente enlace: \nhttp://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.";}?>
<?phpif (empty($usuario)){ echo "Debes ingresar un nombre de usuario para registrarte."; $ok = false;}# Lo mismo para otras condiciones# Y luego al finalif($ok == true){ //Poner aqui la query}
No entendí lo de poner una consulta en ese lugar, pero lo demás creo que esta correcto.
<?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ña para registrarte."; $ok = false;}elseif ($clave1 != $clave2){ echo "Por favor confirma la contraseñ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: \nTe enviamos este correo para completar el proceso de registro. \nPara activar tu cuenta visita el siguiente enlace: \nhttp://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!
Te lo pongo ya bien, fijate lo que he modificado:
<?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ña para registrarte."; $ok = false;}if ($clave1 != $clave2){ echo "Por favor confirma la contraseñ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.";}?>