Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2008, 00:57
shadow21
 
Fecha de Ingreso: mayo-2008
Mensajes: 14
Antigüedad: 16 años, 11 meses
Puntos: 0
Información Ayuda Con Este Codigo.

Bueno la verdad es que no tengo muchos conocimientos en php, pero me gustaria saber si alguien puede ayudarme con este codigo que consegui para un sistema de registro de usuario.

Un amigo me estubo ayudando y me dijo que tenia algunos problemas de comillas, pero ya el no tiene tiempo, el sistema se conecta a la base de datos bien y registra usuarios, el problema esta en que cuando me logeo, pues no me redirige a la pagina desde donde me logue con mi nombre de usuario, lo que me obliga a darle pa atras y por ende es como si no me hubiese logeado.

aqui les dejo el codigo para ver cuales errores tiene.

config.php
Código:
 
<?
unset($config) ;
$config[1] = 'localhost' ; # Puede ser "localhost" aunque también una URL o una IP
$config[2] = 'shadow21_shadow21' ; # Usuario de la base de datos
$config[3] = 'micontrasena' ; # Contraseña de la base de datos
$config[4] = 'shadow21_registro' ; # 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:
<?
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 esta registrado el email. Haz click <a href="javascript:history.back()">aqui</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@. Haz click aquí <a href="http://shadow21.12gbfree.com/Index.html">aquí</a> para regresar a la página principal.' ;
}
}
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 < 8) {
alert('La contraseña debe contener por lo mínimo 8 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>Contrasena:</b><br>
<input type="password" name="contrasena" maxlength="10"><br>
<b>Confirmar contrasena:</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';
	
	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']))) ;
		$sql = sprintf("select id,contrasena from usuarios where nick='%s'",$nick);
		$con = mysql_query($sql) ;
		$datos = mysql_fetch_assoc($con) ;
		
		if(mysql_num_rows($con)) 
		{
			if($datos['contrasena'] == $contrasena) 
			{
				setcookie('uid',$datos['id'],time()+604800);
				setcookie('unick',$nick,time()+604800);
				setcookie('ucontrasena', $contrasena, time() + 604800);
				header("Location: $_SERVER['HTTP_REFERER']");
			}
			else
			{
			
			echo 'La contraseña es incorrecta. Haz click <a href="javascript:history.back()">aquí</a> para regresar.' ;
			}
		}
		else 
		{
			echo 'El nick no existe. Haz click <a href="javascript:history.back()">aquí</a> para regresar.' ;
		}
	}
?>
login.php
Código:
<?
include('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 solo para usuari@s registrad@s.</b><p><a href="registrarse.php">[Registrarse]</a>') ;
}
?>
logout.php
Código:
<?
setcookie('uid') ;
setcookie('unick') ;
setcookie('ucontrasena') ;
header('Location: Index.html') ;
?> //¿Como pongo que Location se redirija a una direccion que no es php
   //Por ejemplo: http://shadow21.12gbfree.com/Index.html o Index.html
ESPERO QUE ME AYUDEN POR FAVOR.