Foros del Web » Programando para Internet » PHP »

problema con el registro de usuarios

Estas en el tema de problema con el registro de usuarios en el foro de PHP en Foros del Web. hola siguiendo los pasos de: http://www.maestrosdelweb.org/editorial/phpreusr/ he tenido el siguiente problema. al ingresar los datos del usuario a registrar en el formulario de registro cuyo ...
  #1 (permalink)  
Antiguo 10/12/2003, 22:05
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 3 meses
Puntos: 8
problema con el registro de usuarios

hola siguiendo los pasos de:

http://www.maestrosdelweb.org/editorial/phpreusr/

he tenido el siguiente problema.
al ingresar los datos del usuario a registrar en el formulario de registro cuyo codigo es:
----------------------
<FORM ACTION="registrar.php" METHOD="post">
Nick : <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGTH=20>
<BR>
Email: <INPUT TYPE="text" NAME="email" SIZE=28 MAXLENGTH=100>
<BR>
Password: <INPUT TYPE="password" NAME="password" SIZE=28 MAXLENGTH=20>
<BR>
Nombre: <INPUT TYPE="text" NAME="nombre" SIZE=28 MAXLENGTH=255>
<BR>
<INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
</FORM>
---------------------------------

aparece el siguiente error:

Conexión con la base de datos conseguida.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\Apache\Apache2\htdocs\registro\registrar.php on line 36

Registro exitoso!
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\Apache\Apache2\htdocs\registro\registrar.php on line 51

el codigo del archivo registrar.php es el siguiente, y no se que esta malo en ese codigo o que fallo en la linea 36 y 51:
_______________________________________

<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","usuario","")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("reg",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$link=Conectarse();
echo "Conexión con la base de datos conseguida.<br>";

mysql_close($link); //cierra la conexion

function quitar($mensaje)
{
$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',"&quot;",$mensaje);
$mensaje = str_replace("\\\\","\",$mensaje);
return $mensaje;
}

if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "")
{
$sql = "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
echo "Error, nick escogido por otro usuario";
}
else
{
$sql = "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
$sql .= ")";
mysql_query($sql);
echo "Registro exitoso!";
}
mysql_free_result($result);
}
else
{
echo "Debe llenar como minimo los campos de email y password";
}
mysql_close();
?>



_____________________________


pr favor necesito que alguien vea cual es el problema en ese error, no se que hice mal.

por favor necesito urgente ayuda

gracias
salu2


zsamer

Última edición por zsamer; 10/12/2003 a las 23:09
  #2 (permalink)  
Antiguo 10/12/2003, 23:19
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
mmm sería bueno que empecemos a utilizar las etiquetas PHP para colorear el código y facilitar la ayuda... Acá repito el mismo código, pero coloreado
Código PHP:
<?php 
function Conectarse() 

if (!(
$link=mysql_connect("localhost","usuario",""))) 

echo 
"Error conectando a la base de datos."
exit(); 

if (!
mysql_select_db("reg",$link)) 

echo 
"Error seleccionando la base de datos."
exit(); 

return 
$link


$link=Conectarse(); 
echo 
"Conexión con la base de datos conseguida.<br>"

mysql_close($link); //cierra la conexion 

function quitar($mensaje

$mensaje str_replace("<","&lt;",$mensaje); 
$mensaje str_replace(">","&gt;",$mensaje); 
$mensaje str_replace("'","'",$mensaje); 
$mensaje str_replace('\"',""",$mensaje); 
$mensaje = str_replace("","",$mensaje); 
return $mensaje; 


if(trim($HTTP_POST_VARS["
nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "") 

$sql = "
SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'"; 
$result = mysql_query($sql); 
if($row = mysql_fetch_array($result)) 

echo "
Errornick escogido por otro usuario"; 

else 

$sql = "
INSERT INTO usuarios (nick,password,nombre,emailVALUES ("; 
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'"; 
$sql .= "
,'".quitar($HTTP_POST_VARS["password"])."'"; 
$sql .= "
,'".quitar($HTTP_POST_VARS["nombre"])."'"; 
$sql .= "
,'".quitar($HTTP_POST_VARS["email"])."'"; 
$sql .= "
)"; 
mysql_query($sql); 
echo "
Registro exitoso!"; 

mysql_free_result($result); 

else 

echo "
Debe llenar como minimo los campos de email y password"; 

mysql_close(); 
?>
zsamer: Si puedes, edita tu mensaje anterior e incluye las etiquetas PHP /PHP (si lo haces, yo podré borrar este mensaje)

Saludos
  #3 (permalink)  
Antiguo 11/12/2003, 02:48
Avatar de dackiller  
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 20 años, 6 meses
Puntos: 4
Hola

ummm.... , creo q' yo en tu lugar recojeria los datos en un array para chekarlos, y despues dependiendo del chekeo, me conectaria a MYSQL.

Seria algo así: Lee bien los comentarios y sustituye los datos de las variables, por los q' en realidad te convienen.



Código PHP:
<?  //sustituyes los datos por los $_post    
    
$dato[0] = "NICK"// $dato[0] debe ser igual al $_POST['nick'] 
    
$dato[1] = "pass   "// $dato[1] debe ser igual al $_POST['pass'] 
    
$dato[2] = "nombre"// $dato[2] debe ser igual al $_POS['nombre'] 
    
$dato[3] = "[email protected]   "// $dato[3] debe ser igual al $_POST['email']
    
    // esta funcion realiza todo el proceso de Chekar los datos, Chekar si existe si no existe, introduce al usuario
function check($data){
    for(
$x=$x sizeof($data); $x++){    
         echo 
'Dato'.$x.'>('.$data[$x].') Recibido:<br>';
         if(empty(
$data[$x]) && $data[$x] == ""){
             echo 
"El Valor :".$data[$x]." No es valido<br>";
            exit;
        }else{
            
// Aqui quitamos los espacios y y reemplazamos caracteres especiales de los datos  
            
$data[$x] = trim($data[$x]);
            
$data[$x] = str_replace("<","&lt;",$data[$x]);
            
$data[$x] = str_replace(">","&gt;",$data[$x]);
            
$data[$x] = str_replace("'","'",$data[$x]);
            
$data[$x] = str_replace('\"','"',$data[$x]);
            
$data[$x] = str_replace("","",$data[$x]);
            echo 
"Dato".$x."->(".$data[$x].") Chekado<br>";
        
// Chekamos si el usuario ya existe en la Base de Datos
        
$conex mysql_connect("localhost","root","")
        or die (
"El script no se pudo conectar al Servidor MYSQL");
        
mysql_select_db("reg",$conex);
        
// la Variable $sql_nick comprueba si el nick q' esta en la array $dato[0] existe en la Base de Datos
        
$sql_nick ="Select nick from usuarios where nick='".$data[0]."'";
        
// sql_user agrega a la base de datos el usuario con todo los datos requeridos y chekados 
        
$intro_user "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
        
$intro_user.= "'".$data[0]."','".$data[3]."','".$data[1]."','".$data[2]."')";
        
// Ejecutamos el Sql para buscar un posible Usuario Igual
        
$chekar_user mysql_query($sql_nick);
        
$rows mysql_num_rows($chekear_user);
            if(
$rows 0){
            
// El usuario existe
            
echo 'Error: Otro usuario esta registrado con el mismo Nick';
            
// Liberamos memoria del SQL y cerramos la BD
            
mysql_free_result($chekar_user);
            
mysql_close($conex);
            }
            else{
            
// el usuario no existe, se libera el SQL q' cheka al usuario
            
mysql_free_result($chekar_user);
            
// ejecuto el SQL q' introduce al Usuario en la BD
            
$go mysql_query($intro_user);
            
mysql_free_result($go);
            
mysql_close($conex);
            }
        }
    }
}
check($dato);

?>
Los echo q' estan en el script son los q' muestran q' los datos son recibidos y modificados si es necesario.

ummm.... Espero q' funcione.

Chao
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.
  #4 (permalink)  
Antiguo 11/12/2003, 07:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Ese tutorial tiene un enlace a comentarios del mismo en:
http://www.forosdelweb.com/showthrea...hreadid=112142

Revisalo .. creo recordar que algún problema tenía al respecto y por ese mensaje sugirieron las soluciones.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 08:30.