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