Foros del Web » Programando para Internet » PHP »

Problema con Comprobación de Mail en Registro

Estas en el tema de Problema con Comprobación de Mail en Registro en el foro de PHP en Foros del Web. Un saludo bueno, tengo el siguiente problema resulta que en un form estoy tomando los valores del registro, usuario, password y mail. Este es el ...
  #1 (permalink)  
Antiguo 09/10/2012, 16:06
 
Fecha de Ingreso: abril-2009
Mensajes: 27
Antigüedad: 15 años
Puntos: 0
Pregunta Problema con Comprobación de Mail en Registro

Un saludo bueno, tengo el siguiente problema resulta que en un form estoy tomando los valores del registro, usuario, password y mail.

Este es el código:

Código PHP:
<?php
include('conmysql.php');
mysql_connect($host$user$pwd) or system_error('ERROR: Can not connect to MySQL-Server');
mysql_select_db($db) or system_error('ERROR: Can not connect to database "'.$db.'"');


echo 
'
            <div style="background-image:url(img/boxfacebook.png); background-repeat:no-repeat; width:579px; height:200px; margin:auto">
            <form method="post" action=""><br><br><br><br>
            Coloca un Usuario, apareceras con este nombre, trata de no utilizar C&oacute;digos Raros:<br>
            <input type="text" name="username" /><br>
            Contrase&ntilde;a:<br>
            <input type="password" name="password" /><br>
            Email (Para recuperar la Contrase&ntilde;a):<br>
            <input type="text" name="elcorreo" /><br>
            <input type="submit" name="submit" value="" style="background-image:url(img/create.png); width:78px; height:35px; border:none; background-color:transparent; cursor:pointer;" />
            </form>
        '
;
    if(isset(
$_POST['submit'])){

    
$nickname $_POST['username'];
    
$ecorreo $_POST['elcorreo'];
    
$probar mysql_query("SELECT * FROM ".PREFIX."user WHERE nickname = '$nickname' ");
        while (
$row=mysql_fetch_row($probar))
    {
    
$nombre=$row[5];
    
$correo=$row[6];
    }

    if(
$_POST['username'] == '' && $_POST['password'] == '') {
        echo 
"<p align='center'><font color='#FF0000' size='5'><b>Error: Completa todos los campos!</b></font><br><font color='#FF0000' size='3'><b>Espera 5 segundos para que refresque la p&aacute;gina e intentar REGISTRARTE nuevamente</b></font></p></</div>";
    echo 
'<meta http-equiv="Refresh" content="7; URL=test.php">';
    }
    if(
mb_strlen(trim($nickname)) > 30 ) {
    echo 
"<p align='center'><font color='#FF0000' size='5'><b>Error: El usuario supera el limite de 30 Caracteres</b></font><br><font color='#FF0000' size='3'><b>Espera 5 segundos para que refresque la p&aacute;gina e intentar REGISTRARTE nuevamente</b></font></p></</div>";
    echo 
'<meta http-equiv="Refresh" content="7; URL=test.php">';
    }
    if(
$correo == $ecorreo){
    echo 
"<p align='center'><font color='#FF0000' size='5'><b>MAIL EN USO</b></font><br><font color='#FF0000' size='3'><b>Espera 5 segundos para que refresque la p&aacute;gina e intentar REGISTRARTE nuevamente</b></font></p></</div>";
    echo 
'<meta http-equiv="Refresh" content="7; URL=test.php">';
    }
    if(
$nickname == $nombre){
    echo 
"<p align='center'><font color='#FF0000' size='5'><b>NICK EN USO</b></font><br><font color='#FF0000' size='3'><b>Espera 5 segundos para que refresque la p&aacute;gina e intentar REGISTRARTE nuevamente</b></font></p></</div>";
    echo 
'<meta http-equiv="Refresh" content="7; URL=test.php">';
    }

    else { 
    echo 
"good";
    }
    }
?>
El problema pasa cuando hace la comparación del Correo, este código es una simplificación, y el problema consiste cuando yo ingreso un correo repetido y la consulta lo analiza para que deba salir el mensaje de error si este es repetido, pero este se lo pasa por alto. En este código imprimirá "Good" si todo salio perfecto.


Mi registro funciona en la comparación de nombre cuando existe un usuario este muestra el mensaje de error de que ya existe uno y ahí para y refresca. También funciona cuando el nombre supera más de 30 caracteres, pero no funciona la comparación de email. ¿por que será?

Espero alguien me pueda brindar una ayuda estoy algo liado ya.
  #2 (permalink)  
Antiguo 09/10/2012, 19:00
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Problema con Comprobación de Mail en Registro

solo anda para el nick porque es el ultimo, si inviertes la validacion te dara error de correo pero no de nick.

prueba esto:
Código PHP:
Ver original
  1. if($_POST['username'] == '' && $_POST['password'] == '') {
  2.         echo "<p align='center'><font color='#FF0000' size='5'><b>Error: Completa todos los campos!</b></font><br><font color='#FF0000' size='3'><b>Espera 5 segundos para que refresque la p&aacute;gina e intentar REGISTRARTE nuevamente</b></font></p></</div>";
  3.         echo '<meta http-equiv="Refresh" content="7; URL=test.php">';
  4.     } else {
  5.         if(mb_strlen(trim($nickname)) > 30 ) {
  6.             echo "<p align='center'><font color='#FF0000' size='5'><b>Error: El usuario supera el limite de 30 Caracteres</b></font><br><font color='#FF0000'   size='3'><b>Espera 5 segundos para que refresque la p&aacute;gina e intentar REGISTRARTE nuevamente</b></font></p></</div>";
  7.             echo '<meta http-equiv="Refresh" content="7; URL=test.php">';
  8.         } else {
  9.             if($correo == $ecorreo){
  10.                 echo "<p align='center'><font color='#FF0000' size='5'><b>MAIL EN USO</b></font><br><font color='#FF0000' size='3'><b>Espera 5 segundos para que refresque la p&aacute;gina e intentar REGISTRARTE nuevamente</b></font></p></</div>";
  11.                 echo '<meta http-equiv="Refresh" content="7; URL=test.php">';
  12.             } else {
  13.                 if($nickname == $nombre){
  14.                     echo "<p align='center'><font color='#FF0000' size='5'><b>NICK EN USO</b></font><br><font color='#FF0000' size='3'><b>Espera 5 segundos para que refresque la p&aacute;gina e intentar REGISTRARTE nuevamente</b></font></p></</div>";
  15.                     echo '<meta http-equiv="Refresh" content="7; URL=test.php">';
  16.                 } else {
  17.                     echo "good";
  18.                 }
  19.             }
  20.         }
  21.     }
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: mail, mysql, registro, sql, usuarios
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 15:18.