Foros del Web » Programando para Internet » PHP »

Problema con registro para web en PHP

Estas en el tema de Problema con registro para web en PHP en el foro de PHP en Foros del Web. Hola, tengo un problemilla con un formulario para tener mi web con registro de usuarios. el problema es cuando el usuario se logea, la pagina ...
  #1 (permalink)  
Antiguo 03/12/2009, 15:58
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 10 meses
Puntos: 3
Problema con registro para web en PHP

Hola, tengo un problemilla con un formulario para tener mi web con registro de usuarios.

el problema es cuando el usuario se logea, la pagina queda en blanco, si me registro, éste se conecta a la base de datos de miarroba y guarda los datos del usuario, pero al momento de logearse se queda en blanco, hace el linkeo con "entrar.php", pero se queda en blanco



alguna idea del por que?? :/

pucha, ojala puedan ayudarme, les dejo el codigo para que lo vean, saludos y gracias de ante mano



config.php
Código PHP:
<?
unset($config) ;
$config[1] = 'mysql.webcindario.com' # Puede ser "localhost" aunque también una URL o una IP
$config[2] = 'xxxx' # Usuario de la base de datos
$config[3] = 'xxxx' # Contraseña de la base de datos
$config[4] = 'xxxx ' # Nombre de la base de datos

$conectar = @mysql_connect($config[1],$config[2],$config[3]) or exit('Datos de conexión incorrectos.') ;
mysql_select_db($config[4],$conectar) or exit('No existe la base de datos.') ;
?>
registrar.php
Código PHP:
<?
if($_POST[enviar]) {
require 
'config.php' ;
function 
quitar($texto) {
$texto trim($texto) ;
$texto htmlspecialchars($texto) ;
$texto str_replace(chr(160),'',$texto) ; # Elimina espacios que no pueden ser borrados por trim()
return $texto ;
}
$nick quitar($_POST[nick]) ;
$email quitar($_POST[email]) ;
$con mysql_query("select count(id) from usuarios where nick='$nick' or email='$email'") ;
if(
mysql_result($con,0,0)) {
echo 
'El nick ya existe en la base de datos o ya está registrado el email. Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.' ;
}
else {
$fecha time() ;
$contrasena md5(md5(quitar($_POST[contrasena]))) ;
$sexo quitar($_POST[sexo]) ;
mysql_query("insert into usuarios (fecha,nick,contrasena,email,sexo,ip) values ('$fecha','$nick','$contrasena','$email','$sexo','$_SERVER[REMOTE_ADDR]')") ;
echo 
'Has sido registrad@ satisfactoriamente. Haz click <a href="index.php">aquí</a> para regresar a la página principal e iniciar sesión' ;
}
}
else {
?>
<script>
function revisar() {
if(formulario.nick.value.length < 3) {
alert('El nick debe contener por lo mínimo 3 caractéres.') ;
return false ;
}
if(formulario.contrasena.value.length < 6) {
alert('La contraseña debe contener por lo mínimo 6 caractéres.') ;
return false ;
}
if(formulario.contrasena.value != formulario.c_contrasena.value) {
alert('Las contraseñas no son correctas.') ;
return false ;
}
if(!/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,4})+$/.test(formulario.email.value)) {
alert('Debes poner un email válido.') ;
return false ;
}
}
</script>
<form name="formulario" method="post" action="<?=$_SERVER[PHP_SELF]?>" onsubmit="return revisar()">
<b>Nick:</b><br>
<input type="text" name="nick" maxlength="20"><br>
<b>Contraseña:</b><br>
<input type="password" name="contrasena" maxlength="10"><br>
<b>Confirmar contraseña:</b><br>
<input type="password" name="c_contrasena" maxlength="10"><br>
<b>Email:</b><br>
<input type="text" name="email" maxlength="40"><br>
<b>Sexo:</b><br>
<select name="sexo">
<option value="0">Masculino
<option value="1">Femenino
</select><br><br>
<input type="submit" name="enviar" value="Registrar">
</form>
</div>
<?
}
?>
"entrar.php"
Código PHP:
<?
require 'config.php';
function 
quitar($texto){
 
$texto trim($texto);
 
$texto htmlspecialchars($texto);
 
# --> Elimina espacios que no pueden ser borrados por trim()
 
$texto str_replace(chr(160),'',$texto);
 return 
$texto ;
}

if(
$_POST[enviar]){
 
$nick quitar($_POST[nick]);
 
$contrasena md5(quitar($_POST[contrasena]));
 
$con mysql_query("select id from usuarios where nick='$nick' and contrasena='$contrasena'");
 if(!
$con){
  if (
mysql_num_rows($con) == 0){
   echo 
'Nick o contraseña incorrecta. Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.';
  }
  else{
    
$datos mysql_fetch_assoc($con);
    
setcookie('uid',$datos[id],time()+604800);
    
setcookie('unick',$nick,time()+604800);
    
setcookie('ucontrasena',$contrasena,time()+604800);
    
header("location: $_SERVER[HTTP_REFERER]");
  }
 }
 else{
  echo 
'Error con la consulta.'.mysql_error().'<br>Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.';
 }
}
?>

logueo.php
Código PHP:
<?
if(!$_COOKIE[uid]) {
?>
<form method="post" action="entrar.php">
<b>Nick:</b><br>
<input type="text" name="nick" maxlength="20"><br>
<b>Contraseña:</b><br>
<input type="password" name="contrasena" maxlength="20"><br><br>
<input type="submit" name="enviar" value="Iniciar Sesión">
</form>
<p><a href="registrar.php"> -->Registrate aqui <-- </a>
<?
}
else {
?>
Bienvenid@ <b><?=$_COOKIE[unick]?></b><br><br>
<br>
<a href="salir.php">Salir</a>
<?
}
?>
login.php
Código PHP:
<?
require 'config.php' ;
$con mysql_query("select count(id) from usuarios where id='$_COOKIE[uid]' and nick='$_COOKIE[unick]' and contrasena='$_COOKIE[ucontrasena]'") ;
if(!
mysql_result($con,0,0)) {
exit(
'<p><b>Esta sección es sólo para usuari@s registrad@s.</b><p><a href="javascript:history.back(-1)">» Regresar</a>') ;
}
?>
salir.php
Código PHP:
<?
setcookie
('uid') ;
setcookie('unick') ;
setcookie('ucontrasena') ;
header('location: index.php') ;
?>



PD: No soy muy entendido en el tema, asi que traten de explicar con peras y manzanas jajajaja

gracias de ante mano

=)

Última edición por el_java; 04/12/2009 a las 08:22
  #2 (permalink)  
Antiguo 03/12/2009, 16:20
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Problema con registro para web en PHP

header("location: $_SERVER[HTTP_REFERER]") ;<--- Aca redireccionas despues de logueado no?

Probaste poniendo otra pagina a ver q pasa?
  #3 (permalink)  
Antiguo 03/12/2009, 16:21
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Problema con registro para web en PHP

Cita:
Iniciado por jackson666 Ver Mensaje
header("location: $_SERVER[HTTP_REFERER]") ;<--- Aca redireccionas despues de logueado no?

Probaste poniendo otra pagina a ver q pasa?

no, voy a probar y te digo


pd: gracias por responder :)

Última edición por el_java; 03/12/2009 a las 16:32
  #4 (permalink)  
Antiguo 03/12/2009, 16:32
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Problema con registro para web en PHP

probe colocando

header("location: index.php") ;


esta bien??
pero no paso nada, sige saliendome en blanco luego de logearme
  #5 (permalink)  
Antiguo 03/12/2009, 16:47
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Problema con registro para web en PHP

Lo que te esta pasanod es que ni si quiera te esta entrando en el bucle...
proba poner un echo "holaaaaa"; antes del bucle, y anda cambiandolo de lugar para ver a donde llega y a donde no, ais podes sectorizar el problema =)

Por ejemplo:
Código PHP:
<?
require 'config.php' ;
if(
$_POST[enviar]) {
function 
quitar($texto) {
$texto trim($texto) ;
$texto htmlspecialchars($texto) ;
# --> Elimina espacios que no pueden ser borrados por trim()
$texto str_replace(chr(160),'',$texto) ;
return 
$texto ;
}


$nick quitar($_POST[nick]) ;
$contrasena md5(md5(quitar($_POST[contrasena]))) ;
$con mysql_query("select id,contrasena from usuarios where nick='$nick'") ;
$datos mysql_fetch_assoc($con) ;

#proba poniendolo aca

if(mysql_num_rows($con)) {

#proba poniendolo aca

if($datos[contrasena] == $contrasena) {

#proba poniendolo aca

setcookie('uid',$datos[id],time()+604800) ;
setcookie('unick',$nick,time()+604800) ;
setcookie('ucontrasena',$contrasena,time()+604800) ;
header("location: $_SERVER[HTTP_REFERER]") ;

}else {

#proba poniendolo aca

echo 'La contraseña es incorrecta. Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.' ;
}
}
else {
echo 
'El nick no existe. Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.' ;
}
}
?>
  #6 (permalink)  
Antiguo 03/12/2009, 17:08
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Problema con registro para web en PHP

probe colocandole en varias partes un echo y no pasa nada
sigue sin salir nada

incluso puse uno al principio, en el primer if, y no paso nada
=/
debe ser otro problema, pero no logro entender cual


al dar en login me redirecciona a entrar.php, pero dentro de ésta no hace nada
:S
  #7 (permalink)  
Antiguo 03/12/2009, 17:19
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Problema con registro para web en PHP

1) esta guardado con extension php seguro no?
2) lo ejecutas de cualquier lado o pone localhost/ruta/tuarchivo.php???
  #8 (permalink)  
Antiguo 03/12/2009, 17:22
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Problema con registro para web en PHP

si esta guardado en .php

y lo tengo alojado en mi web
entra y prueba el logeo

http://descargasazules.webcindario.com/prueba/logeo.php

ahi

usuario: prueba
contraseña: prueba

yo registré el usuario, y lo busque en la base de datos y se guardo correctamente, el problema está en el login, cuando da el paso a entrar.php
  #9 (permalink)  
Antiguo 03/12/2009, 20:51
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Problema con registro para web en PHP

cambie el codigo de entrar.php


Código PHP:
<?
require 'config.php';
function 
quitar($texto){
 
$texto trim($texto);
 
$texto htmlspecialchars($texto);
 
# --> Elimina espacios que no pueden ser borrados por trim()
 
$texto str_replace(chr(160),'',$texto);
 return 
$texto ;
}

if(
$_POST[enviar]){
 
$nick quitar($_POST[nick]);
 
$contrasena md5(quitar($_POST[contrasena]));
 
$con mysql_query("select id from usuarios where nick='$nick' and contrasena='$contrasena'");
 if(!
$con){
  if (
mysql_num_rows($con) == 0){
   echo 
'Nick o contraseña incorrecta. Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.';
  }
  else{
    
$datos mysql_fetch_assoc($con);
    
setcookie('uid',$datos[id],time()+604800);
    
setcookie('unick',$nick,time()+604800);
    
setcookie('ucontrasena',$contrasena,time()+604800);
    
header("location: $_SERVER[HTTP_REFERER]");
  }
 }
 else{
  echo 
'Error con la consulta.'.mysql_error().'<br>Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.';
 }
}
?>

ahora me sale siempre

Error con la consulta
Haz click aqui para regresar

=/

Última edición por el_java; 04/12/2009 a las 08:21
  #10 (permalink)  
Antiguo 03/12/2009, 21:35
 
Fecha de Ingreso: marzo-2009
Mensajes: 69
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problema con registro para web en PHP

Código PHP:
$con mysql_query(objconexion,"select id from usuarios where nick='$nick' and contrasena='$contrasena'"); 
En mysql_Query necesitas de parametro la CONEXION y la CONSULTA.
  #11 (permalink)  
Antiguo 03/12/2009, 21:41
 
Fecha de Ingreso: marzo-2009
Mensajes: 69
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problema con registro para web en PHP

Perdon . no vi el require 'config.php'; .... estoy copiando tu codigo pa probarlo en localhost ...
  #12 (permalink)  
Antiguo 04/12/2009, 08:01
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Problema con registro para web en PHP

Cita:
Iniciado por JhoelSub Ver Mensaje
Perdon . no vi el require 'config.php'; .... estoy copiando tu codigo pa probarlo en localhost ...

okl gracias por la ayuda
  #13 (permalink)  
Antiguo 04/12/2009, 08:57
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Problema con registro para web en PHP

eeee porfin termine
ppedi ayuda a una amiga y me dijo que era problema del md5
que encriptaba la contraseña, por eso cada rato que olocaba una contraseñña eran caracteres distintos

ahora se guarda en la base de datos como la contraseña y se logea bien

se agradece el esfuerzo

saludos y gracias

PD: CASO CERRADO''''
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 22:02.