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, tengo este script: Código PHP: <? include  "conexion.php"  ;  if(( $_POST [ nick ] ==  ' ' ) or ( $_POST [ pass ] ==  ' ' ) or ( $_POST [ ...
  #1 (permalink)  
Antiguo 15/05/2004, 11:19
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
Problema con el registro de usuarios

Hola, tengo este script:
Código PHP:
<?
include "conexion.php" 


if((
$_POST[nick] == ' ') or ($_POST[pass] == ' ') or ($_POST[pass1] == ' ') )
{
Header("Location: nuevo.php");
}else{

if(
$_POST[pass] != $_POST[pass1])
{
echo 
'Las passwords no son iguales';
}else{
$user2 $_POST[nick]

$usuarios2=mysql_query("SELECT login FROM registrados WHERE login='$user2' ");
if(
$user_ok=mysql_fetch_array($usuarios2))
{
echo 
'El usuario ya esta registrado';
mysql_free_result($usuarios2); 
}else{

$nick $_POST['nick'] ;
$pass $_POST['pass'] ;
$email $_POST['email'];
$remitente "[email protected]";
$destino$email ;
$asunto"Registro en Battlefield Spain.com";
$mensaje"Bienvenido a BattlefieldSpain.com.<br> Tu registro se a efectuado correctamente.<br> A continuación le remito los datos de su registro:<br><br>
Usuario = '.$nick.'<br>
Contraseña = '.$pass.'<br>
Para loguearte solo debes ir a la página principal e introducir los datos en el formulario de arriba.<br><br> Saludos de la Administración.<br><br>"
;
$encabezados "From: $remitente\nContent-Type: text/html; charset=iso-8859-1"

mail($destino$asunto$mensaje$encabezados) or die ("El mensaje de registro no se ha podido enviar. El email ke pusiste es falso!.");
mysql_query("INSERT INTO registrados (login,pass,email) values ('$nick','$pass','$email') "); 
echo 
'Conectado al servidor, Registrando Usuario... '
Header("Location: index.php"); 
}

}


?>

Y el problema es ke cuando se registra un usuario nuevo siempre me salta con el mensaje "El usuario ya esta registrado" aunke no exista en la DB.

Ya le he dado 1000 vueltas al codigo y no consigo encontrar el error

Haber si me podeis ayudar
__________________
Webmaster DE :

http://www.bf1942spain.com
  #2 (permalink)  
Antiguo 15/05/2004, 11:27
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
A ver así

Prueba así:
Código PHP:
<?
include "conexion.php" 


if((
$_POST[nick] =='') or ($_POST[pass] =='') or ($_POST[pass1] =='') ){
 
header("Location: nuevo.php");
}else{

if(
$_POST[pass] != $_POST[pass1]){
 echo 
'Las passwords no son iguales';
}else{
 
$user2 $_POST[nick]

$usuarios2=mysql_query("SELECT login FROM registrados WHERE login='".$_POST['user2']."' ");
$user_ok mysql_fetch_array($usuarios2);
if(
$user_ok['login']==$_POST['nick']){
echo 
'El usuario ya esta registrado';
mysql_free_result($usuarios2); 
}else{
$nick $_POST['nick'] ;
$pass $_POST['pass'] ;
$email $_POST['email'];
$remitente "[email protected]";
$destino$email ;
$asunto"Registro en Battlefield Spain.com";
$mensaje"Bienvenido a BattlefieldSpain.com.<br> Tu registro se a efectuado correctamente.<br> A continuación le remito los datos de su registro:<br><br>
Usuario = '.$nick.'<br>
Contraseña = '.$pass.'<br>
Para loguearte solo debes ir a la página principal e introducir los datos en el formulario de arriba.<br><br> Saludos de la Administración.<br><br>"
;
$encabezados "From: $remitente\nContent-Type: text/html; charset=iso-8859-1"

mail($destino$asunto$mensaje$encabezados) or die ("El mensaje de registro no se ha podido enviar. El email ke pusiste es falso!.");
mysql_query("INSERT INTO registrados (login,pass,email) values ('$nick','$pass','$email') "); 
echo 
'Conectado al servidor, Registrando Usuario... '
Header("Location: index.php"); 
}

}


?>
Salu2
__________________
Ing. Reynier Pérez Mira
  #3 (permalink)  
Antiguo 15/05/2004, 11:31
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
Na
Parse error: parse error in /home/httpd/vhosts/battlefieldspain.com/httpdocs/registrar.php on line 14

osea en la de

$usuarios2=mysql_query("SELECT login FROM registrados WHERE login='".$_POST['user2']."' ");

Antes tenia otro hosting y de la 1º forma me rulaba pero ahora no :S
__________________
Webmaster DE :

http://www.bf1942spain.com
  #4 (permalink)  
Antiguo 15/05/2004, 11:33
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
acabo de probar sin las
' y tmpoco
__________________
Webmaster DE :

http://www.bf1942spain.com
  #5 (permalink)  
Antiguo 15/05/2004, 11:33
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Soury ....

Parece que me equivoque a la hora de escribir. Es así:
Código PHP:
 $usuarios2=mysql_query("SELECT login FROM registrados WHERE login=".$_POST['user2'].""); 
Salu2
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 15/05/2004, 13:25
 
Fecha de Ingreso: mayo-2004
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
$selectSQL = sprintf("SELECT * FROM registrados WHERE login = %s", SQLString($_POST["nick"], "text"));

$result = mysql_query($selectSQL);
if (mysql_num_rows($result)) // el usuario ya existe
{
echo 'El usuario ya esta registrado';
mysql_free_result($usuarios2);
}
else // nuevo usuario
el resto idem

tambien te doy esta funcion que uso para converitr string al formato correcto enuna consulta SQL:

function SQLString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}

esta funcion la uso siempre y por ende la incluyo en el fichero conectar.php para tenerla disponible.

espero te sirva de algo.
bye!
  #7 (permalink)  
Antiguo 16/05/2004, 03:33
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
Ahora el problema es ke No me envia el paswword al email no se porke , en el server tengo instalado el servicio de mail y funciona pero no me envia nada
__________________
Webmaster DE :

http://www.bf1942spain.com

Última edición por oscar2000; 16/05/2004 a las 07:35
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 09:46.