Comunidad PHPeros
Lenguajes => PHP => Tutoriales PHP => Mensaje iniciado por: Caobiita! en 19 de Enero de 2010, 16:18:16 pm
-
Esto ya lo puse en una respuesta pero creo que aquí en un tema puede ayudarme más personas :)
Tengo el Sistema de Registro simple sin uso de mysql de german95 que consta de 4 archivos php, index, registro, conectar y salir, lo he subido el registro completo, y he ido al link de la web, me he registrado y pongo mis datos en el index.php y le doy a entrar y me sale:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php:2) in /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php on line 16
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php:2) in /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php on line 17
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php:2) in /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php on line 18
Me dice que da error el conectar.php, aquí dejo el conectar porque yo no le veo ningún error :confused:
<?php
if(isset($_POST['ok'])) {
if (!($_COOKIE['usuario'] and $_COOKIE['contrasena'])) {
if (!$_POST['usuario'] and !$_POST['contrasena']) { //comprobamos si se han introducido valores en los 2 campos de texto
die('Debes entrar el usuario y la contraseña');
} else {
if (!is_dir($_POST['usuario'])) { //comprobamos si existe el usuario
die ('usuario o contraseña incorrectos');
} else {
include($_POST['usuario']."/perfil.php"); //incluimos el archivo de texto para que lea la contraseña
if ($_POST['contrasena'] != $contrasena) {
die('usuario o contraseña incorrectos');
} else { //si no es asi creamos las cookies
setcookie("usuario",$_POST['usuario'],time()+3600); //la diracion de la sesion se pone en segundos
setcookie("contrasena",$_POST['contrasena'],time()+3600);
header("location: index.php"); //llevamos al usuario al panel de usuario
}
}
}
} else {
echo "Error, Ya estas identificado";
}
}
?>
-
Tu problema se debe a que la funcion Header(), que si no sabes, sirve para redireccionar a otra pagina web indistintamente si es con una comprobación o no.
ese era su funcionamiento , pero el error está en el el header() no puede estar antes de un parrafo con cacteres de escritura , es decir , frases ect...
-
Bueno la verdad, yo instale el mismo sistema de usuarios de German95 a mi web que estoi desarrollando y funciono sin ningun problema.
Lo estoi editando y le puse imagenes de perfil y rangos. miralo aqui http://phpmasters.webcindario.com/web/index.php? (http://phpmasters.webcindario.com/web/index.php?), ademas lo uní a un cms que estoi desarollando, con foro y sistema de noticias. saludos ;)
-
Pués que raro, si yo copie codigo y pegué y subí y tu igual, ¿Cómo esque a ti te funciona y a mi no? Para solucionar esto sería mejor que pusieras tu conectar.php aquí para ver los errores, esque si no, no se qué hacer =S
-
Pués que raro, si yo copie codigo y pegué y subí y tu igual, ¿Cómo esque a ti te funciona y a mi no? Para solucionar esto sería mejor que pusieras tu conectar.php aquí para ver los errores, esque si no, no se qué hacer =S
Conectar.php
<?php
if(isset($_POST['ok'])) {
if (!($_COOKIE['usuario'] and $_COOKIE['contrasena'])) {
if (!$_POST['usuario'] and !$_POST['contrasena']) { //comprobamos si se han introducido valores en los 2 campos de texto
die('Debes entrar el usuario y la contraseña');
} else {
if (!is_dir($_POST['usuario'])) { //comprobamos si existe el usuario
die ('usuario o contraseña incorrectos');
} else {
include($_POST['usuario']."/perfil.php"); //incluimos el archivo de texto para que lea la contraseña
if ($_POST['contrasena'] != $contrasena) {
die('usuario o contraseña incorrectos');
} else { //si no es asi creamos las cookies
setcookie("usuario",$_POST['usuario'],time()+3600); //la diracion de la sesion se pone en segundos
setcookie("contrasena",$_POST['contrasena'],time()+3600);
header("location: index.php"); //llevamos al usuario al panel de usuario
}
}
}
} else {
echo "Error, Ya estas identificado";
}
}
?>
-
Gracias Kikers, era un fallo de mi código, ya me funciona, te doy k+ ;) Cierren tema.
-
Perdón por doble post pero no cierren tema, tengo otra duda :D
Ya que me funciona el registro simple sin uso de mysql ¿Cómo hago para saber lo nicks online que esten logueados en el login?
-
Guardas en la DB el valor de online como 1 (depende el usuario) y luego los sumas. Luego si cierran sesion haces que online vuelva a 0.
-
En la Base de Datos cuando se conecten haz con un UPDATE que el campo 'online' se cambie a 1 y que cuando se deslogueen, en el archivo logout.php o salir.php o como hayas preferido llamarlo haces otro UPDATE para que el campo 'online' se cambie a 0, y si quieres puedes poner imagenes como en el msn, con un IF compruebas, si esta el campo 'online' en 1 que muestre una imagen como que está conectado y si no que muestre otra como que está descnectado