Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/12/2009, 15:58
Avatar de el_java
el_java
 
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 3 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