Foros del Web » Programando para Internet » PHP »

Problemas con activar usuario por mail

Estas en el tema de Problemas con activar usuario por mail en el foro de PHP en Foros del Web. Holaaaa necesito ayuuuda! estoy haciendo un formulario y ya esta casi todo listo. Todo funciona a la perfección salvo por el detalle que cuando envio ...
  #1 (permalink)  
Antiguo 14/06/2011, 12:09
 
Fecha de Ingreso: marzo-2011
Ubicación: bs as
Mensajes: 26
Antigüedad: 13 años, 1 mes
Puntos: 0
Problemas con activar usuario por mail

Holaaaa necesito ayuuuda! estoy haciendo un formulario y ya esta casi todo listo. Todo funciona a la perfección salvo por el detalle que cuando envio el mail para q el usuario sea dado de alta me aparece este mensaje
"Warning: Wrong parameter count for mysql_num_rows() in /www/sitioweb.com/htdocs/activar.php on line 9
Lo siento, el codigo de activacion no existe" por lo que puedodeducir que no se genera el código aleatorio, la verdad es que no se como solucionarlo, si me pueden ayudar por favor! estoy desesperada
graciassssss!!!

Código PHP:
<?
 
if (isset($_POST['usuario']) && !empty($_POST['usuario']) && 
    isset(
$_POST['contrasena']) && !empty($_POST['contrasena']) &&
    isset(
$_POST['empresa']) && !empty($_POST['empresa']) &&
    isset(
$_POST['cuit']) && !empty($_POST['cuit']) &&
    isset(
$_POST['direccion']) && !empty($_POST['direccion']) &&
    isset(
$_POST['localidad']) && !empty($_POST['localidad']) &&
    isset(
$_POST['codigo_postal']) && !empty($_POST['codigo_postal']) &&
    isset(
$_POST['telefono']) && !empty($_POST['telefono']) &&
    isset(
$_POST['email']) && !empty($_POST['email'])) 
    {
//1. Crear conexión a la Base de Datos
            
$link mysql_connect("..........","......","........");
                if (!
$link
                    {
                die(
"Falló la conexión a la Base de Datos:"mysql_error());
            }
            
//2. Seleccionar la Base de Datos a utilizar
            
mysql_select_db("clientes_registro",$link);
            if (!
mysql_select_db
            {    
            die(
"Fallo la selección de la Base de Datos: "mysql_error());
            }
                else {
    
            
//3. Tomar los campos provenientes del Formulario
    
            
$usuario=$_POST['usuario'];
            
$contrasena=$_POST['contrasena'];
            
$empresa=$_POST['empresa'];
            
$cuit=$_POST['cuit'];
            
$direccion=$_POST['direccion'];
            
$localidad=$_POST['localidad'];
            
$codigo_postal=$_POST['codigo_postal'];
            
$telefono=$_POST['telefono'];
            
$email=$_POST['email'];


            
// consultamos a la tabla de usuarios si el nick ya existe
            
$newuser mysql_query("SELECT usuario from usuarios where usuario='".$usuario."'",$link);
            
$newuser mysql_query("SELECT email from usuarios where email='".$email."'",$link);
            if(
$row mysql_fetch_array($newuser)) 
            {
            echo 
"<br>"
            echo 
"<br>";
            echo 
"<br>";
            echo 
"<strong> El usuario registrado ya se encuentra en uso";
            echo 
"<a href=\"javascript:history.back()\"><br>Regresar</a>"
            exit;
            }
             else{ 

                    
//5. Insertar campos en la Base de Datos
                    // Con esta sentencia SQL insertaremos los datos en la base     de datos
                    
mysql_query("INSERT INTO usuarios (usuario,contrasena,empresa,cuit,direccion,localidad,codigo_postal,telefono,email)
                    VALUES ('{$_POST['usuario']}','{$_POST['contrasena']}','{$_POST['empresa']}','{$_POST['cuit']}','{$_POST['direccion']}','{$_POST['localidad']}','{$_POST['codigo_postal']}','{$_POST['telefono']}','{$_POST['email']}')"
,$link);
                    
$code sha1(mt_rand().time().mt_rand().$_SERVER['REMOTE_ADDR'].mysql_insert_id());
                    
mysql_query("INSERT INTO activacion (`code`, `userid`, `time`) VALUES ('".$code."', '".mysql_insert_id()."', '".time()."')");

                    if (!
mysql_query
                    {
                    die(
"Fallo en la insercion de registro en la Base de Datos: " mysql_error());
                    }
                    else {
                            echo 
"Los datos han sido introducidos satisfactoriamente.";
                            echo 
"<br>"
                            echo 
"<br>";
                            echo 
"<br>"
                            echo 
"<strong>Usuario: </strong>".$_REQUEST['usuario'];  
                            echo 
"<br>"
                            echo 
"<strong>Empresa: </strong>".$_REQUEST['empresa'];
                            echo 
"<br>"
                            echo 
"<strong>CUIT: </strong>".$_REQUEST['cuit'];
                            echo 
"<br>"
                            echo 
"<strong>Direcci&oacute;n: </strong>".$_REQUEST['direccion'];
                            echo 
"<br>"
                            echo 
"<em><strong>Localidad: </strong></em>".$_REQUEST['localidad'];
                            echo 
"<br>"
                            echo 
"<strong>C&oacute;digo postal: </strong>".$_REQUEST['codigo_postal'];
                            echo 
"<br>"
                            echo 
"<strong>Tel&eacute;fono: </strong>".$_REQUEST['telefono'];
                            echo 
"<br>";     
                            echo 
"<strong>email: </strong>".$_REQUEST['email']; 
                        }
                }
        
        
                
//4. variables para funcion de envio del mail
                
if(isset($_POST['Submit']))
                {  
                
$usuario=$_POST['usuario'];  
                
$empresa=$_POST['empresa'];  
                
$email=$_POST['email']; 
                    
$chek_email "SELECT * FROM clientes_registro WHERE email='$email'"//mail
                    
$result mysql_query($chek_email); 
                    
$numrows mysql_num_rows($result);  
                    if (
$numrows!=0
                        { 
                    echo 
"<font color='#FF0000'><b>Error</b> </font> el email ".$_POST['email']." ya existe, por favor intente con otro"
                    exit(); 
                        } 
                } 
                else {            

                    
$headers "MIME-Version: 1.0\r\n";
                    
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
                    
$headers .= "From: website <$remitente>\r\n";
                    
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";

                    
$mensaje "Este mensaje fue enviado desde Website\r\n";
                    
$mensaje .= "Usuario: " $usuario " \r\n";
                    
$mensaje .= "Empresa: " $empresa " \r\n";
                    
$mensaje .= "Cuit: " $cuit " \r\n";
                    
$mensaje .= "Dirección: " $direccion " \r\n";
                    
$mensaje .= "Localidad: " $localidad " \r\n";
                    
$mensaje .= "Código Postal: " $codigo_postal " \r\n";
                    
$mensaje .= "Teléfono: " $telefono " \r\n";
                    
$mensaje .= "email: " $email " \r\n";
                    
$mensaje .= 'Hola, para activar tu cuenta haz click en el siguiente link:'."\n".'
"<a href="http://www.sitioweb.com/activar.php?code='
.$code.'">http://www.sitioweb.com/activar.php?code='.$code.'</a>"
O copia el siguiente link en la barra de direcciones de tu navegador:
'
."\n".'
http://www.sitioweb.com/activar.php?code='
.$code;
mail("[email protected]","Por favor activa tu cuenta",$cuerpo,"Content-type: text/html\r\n");

                    
$mensaje .= "Enviado el " date('d/m/Y'time());

                    
$para '[email protected]';
                    
$asunto 'Nuevo usuario en Website';

                    
mail($para$asuntoutf8_decode($mensaje), "From: $de_email");
                    }
        }
    } 

 else {

        echo 
"Error, no ha introducido todos los datos";
        echo 
"<br>";
        echo 
"<a href=\"javascript:history.back()\"><br><strong>Regresar</strong></a>";


    }
    
?>

Última edición por jpinedo; 14/06/2011 a las 22:58
  #2 (permalink)  
Antiguo 14/06/2011, 12:45
Avatar de valenti_92  
Fecha de Ingreso: enero-2010
Ubicación: Manresa
Mensajes: 126
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Problemas con activar usuario por mail

Hay un problema en $result.
Cuando mysql_num_rows da este error es un problema de la sentencia mysql.
El error puede que esté en esta línea:

$chek_email = "SELECT * FROM clientes_registro WHERE email='$email'";

Creo que tendría que ser así:

$chek_email = "SELECT * FROM clientes_registro WHERE email='".$email."'";

Saludos ^^
__________________
Soy el desarrollador otaku, especializado en entornos web.
Mi canal en Youtube
@VGRDominik
  #3 (permalink)  
Antiguo 14/06/2011, 13:07
 
Fecha de Ingreso: marzo-2011
Ubicación: bs as
Mensajes: 26
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problemas con activar usuario por mail

mmm no
me sigue apareciendo el mismo error :(
  #4 (permalink)  
Antiguo 14/06/2011, 13:17
 
Fecha de Ingreso: marzo-2011
Ubicación: bs as
Mensajes: 26
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problemas con activar usuario por mail

Igual me parece que algo estoy haciendo mal porque en vez de que el registro nuevo vaya a la tabla de "usuarios temporales" hasta esperar la activación y asi pasar a la otra tabla de" usuarios activos", cuando se registran directamente pasan a esta última tabla y ya son activos!!
el código aleatorio no se genera =(

Etiquetas: formulario
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 05:18.