registro.php
Código
<?php include('config.php'); // incluimos el archivo de conexión a la Base de Datos // creamos una función que nos parmita validar el email function valida_email($correo) { else return false; } // Procedemos a comprobar que los campos del formulario no estén vacíos if(!empty($sin_espacios[32])) { // comprobamos que el campo usuario_nombre no tenga espacios en blanco echo "El campo <em>usuario_matricula</em> no debe contener espacios en blanco. <a href='javascript:history.back();'>Reintentar</a>"; }elseif(empty($_POST['usuario_matricula'])) { // comprobamos que el campo usuario_nombre no esté vacío echo "".text_register_error_username.""; echo "".text_register_error_password.""; }elseif($_POST['usuario_clave'] != $_POST['usuario_clave_conf']) { // comprobamos que las contraseñas ingresadas coincidan echo "".text_register_password_match.""; echo "pon tu nombre"; }elseif(!valida_email($_POST['usuario_email'])) { // validamos que el email sea correcto echo "".text_register_email_used.""; echo "Seleccione su Sexo"; }else { // "limpiamos" los campos del formulario de posibles códigos maliciosos // comprobamos que el usuario ingresado no haya sido registrado antes $sql = mysql_query("SELECT usuario_matricula FROM usuarios WHERE usuario_matricula = '$usuario_matricula'") echo "esta matricula ya esta en uso"; }else { // ingresamos los datos a la BD $reg = mysql_query("INSERT INTO usuarios (usuario_matricula, usuario_clave, usuario_nombre, usuario_email, sexo, usuario_avatar, EstadoKEY, CodigoKEY, megusta, ips, usuario_freg) VALUES ('".$usuario_matricula."', '".$usuario_clave."', '".$usuario_nombre."', '".$usuario_email."', '".$sexo."', '1', '".$CodigoKEY."', '5', '".$_SERVER['REMOTE_ADDR']."', NOW())"); $registros = mysql_query("SELECT usuario_email,CodigoKEY FROM usuarios WHERE usuario_nombre = '$_POST[usuario_nombre]'"); mail("$_POST[usuario_email]","Activa tu cuenta.","Hola $_POST[usuario_nombre], Bienvenido tu te as registrado en web matriculas aco y para activar tu cuenta necesitas meterte en esta url. http://localhost/aco/index.php?page_id=validacion&email=$reg2[usuario_email]&key=$reg2[CodigoKEY]"); } if($reg) { echo "".text_register_successfully." <META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=index.php?page_id=login\">"; }else { echo "".text_register_error.""; } } } }else { ?> <form action="index.php?page_id=registro" method="post"> <label>nombre completo</label><br /> <input type="text" name="usuario_nombre" maxlength="60" /><br /> <label>matricula</label><br /> <input type="text" name="usuario_matricula" maxlength="5" /><br /> <label>contraseña</label><br /> <input type="password" name="usuario_clave" maxlength="15" /><br /> <label>repite contraseña</label><br /> <input type="password" name="usuario_clave_conf" maxlength="15" /><br /> <label>correo electronico</label><br /> <input type="text" name="usuario_email" maxlength="50" /><br /> <label>Sexo</label><br /> <select name="sexo" id="sexo"> <option value="0">Seleccione su Sexo</option> <option value="1">Hombre</option> <option value="2">Mujer</option> <option value="3">Indefinido</option> </select><br /> <input type="submit" name="enviar" value="<?php echo text_button_account_create; ?>" /> <input type="reset" value="<?php echo text_button_register_cleaner; ?>" /> </form> <?php } ?>
El otro problema es con el archivo de validacion, como veran el registro es mediante una activación y al registrarte te envia un link para que la actives, el registro hace su funcion pero el que lo valida no, ya que cuando me dirijo a el link que me manda me sale el siguiente mensaje: Tu cuenta ha sido activada Inicia Sesion. Pero enrealidad no hace el cambio ya que sigue quedando desactivada la cuenta
para poner un poco más claro esta es la DB
Código
CREATE TABLE `usuarios` ( `usuario_id` int(4) NOT NULL AUTO_INCREMENT, `usuario_matricula` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `usuario_clave` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `usuario_nombre` varchar(60) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `usuario_email` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `sexo` tinyint(6) NOT NULL DEFAULT '0', `usuario_avatar` varchar(250) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `EstadoKEY` varchar(40) COLLATE utf8_unicode_ci NOT NULL, `CodigoKEY` varchar(40) COLLATE utf8_unicode_ci NOT NULL, `megusta` int(11) NOT NULL DEFAULT '0', `ips` text COLLATE utf8_unicode_ci NOT NULL, `usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=13 ;
Donde 0 es Activado y 1 es Desactivado
validacion.php
Código
<?php include('config.php'); $verificacion = mysql_query("SELECT * FROM usuarios WHERE usuario_matricula = '$_GET[usuario_matricula]' AND CodigoKey = '$_GET[key]'"); mysql_query("UPDATE usuarios SET EstadoKEY = '0' WHERE usuario_matricula = '$_GET[usuario_matricula]'"); echo "Tu cuenta ha sido activada Inicia Sesion."; echo "<meta http-equiv='refresh' content='2; url=index.php'>"; ?>
tambien estuve buscando y encontre otro archivo para validación lo adapte pero sale un error y tampoco activa la cuenta
confirm.php
Código
<?php require_once('config.php'); include('functions.php'); if($_GET['usuario_email']!='' && numeric($_GET['usuario_email'])==TRUE && strlen($_GET['key'])==32 && alpha_numeric($_GET['key'])==TRUE) { $query = mysql_query("SELECT usuario_email, CodigoKEY, EstadoKEY FROM usuarios WHERE usuario_email = '".mysql_real_escape_string($_GET['usuario_email'])."'"); { if($row['EstadoKEY']==0) { echo "&error=".$error = 'This member is already active !'; } elseif($row['CodigoKEY']!=$_GET['key']) { echo "&error=".$error = 'The confirmation key that was generated for this member does not match with the one entered !'; } else { $update = mysql_query("UPDATE usuarios SET EstadoKEY=0 WHERE usuario_email='".mysql_real_escape_string($row['usuario_email'])."'") or die(mysql_error()); $msg = 'Congratulations ! You just confirmed your membership !'; } } else { echo "&error=".$error = 'User not found !'; } } else { $error = 'Invalid data provided !'; } { echo "&error=".$error; } else { echo "&msg=".$msg; } ?>