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:
registrar.php
<?
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.') ;
?>
Código:
entrar.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 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>
<?
}
?>
Código:
login.php<?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.' ;
}
}
?>
Código:
logout.php<?
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>') ;
}
?>
Código:
ESPERO QUE ME AYUDEN POR FAVOR. <?
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


