Foros del Web » Programando para Internet » PHP »

Control de usuarios

Estas en el tema de Control de usuarios en el foro de PHP en Foros del Web. Estoy intentandon realizar un panel de usuarios y tengo hecho todo lo que me pone el tutorial: http://www.programacionweb.net/artic...ticulo/?num=35 El problema esque he registrado mi usuario ...
  #1 (permalink)  
Antiguo 30/05/2007, 08:48
Borjimante
Invitado
 
Mensajes: n/a
Puntos:
Control de usuarios

Estoy intentandon realizar un panel de usuarios y tengo hecho todo lo que me pone el tutorial:

http://www.programacionweb.net/artic...ticulo/?num=35

El problema esque he registrado mi usuario para probarlo, pero no me deja loguearme poruqe dice que la contr. esta mal escrita y esta bien.

intento hacerme otro nuevo usuario y me dice que el nick ya esta registrado cuando no es cierto.

Hay algo mal?
  #2 (permalink)  
Antiguo 30/05/2007, 09:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Control de usuarios

Lo unico que veo es que ese script esta basado en que register_globals este en On, por lo que tu servidor puede tenerlo en Off (cosa que es lo mas recomendable) asi que tienes que replantear que todas tus variables de entrada vengan por $_POST o $_GET y no por su nombre directo.

Saludos.
  #3 (permalink)  
Antiguo 30/05/2007, 09:04
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Control de usuarios

Haber, me parece que hay algunos problemas con ese codigo...

Prueba poniendo en la linea 010 del archivo crea_user.php, en vez de
if(mysql_num_rows($result)){
:
Código PHP:
if(mysql_num_rows($result) >= 1){ 
Despues en la linea 013 del archivo comprueba.php, estas usando una clave "semilla", que deberias de cambiarla si cambiaste esa clave de encriptacion en el archivo crea_user.php linea 019. En fin, es mejor que uses la funcion md5()... algo asi:

Código PHP:
//En comprueba.php linea 013
if($array["password"]==md5($pass) ){ 
 
//En crea_user.php linea 019
pass1=md5($pass1); 
Un saludo,
  #4 (permalink)  
Antiguo 30/05/2007, 09:06
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Control de usuarios

Cita:
Iniciado por GatorV Ver Mensaje
[...]tienes que replantear que todas tus variables de entrada vengan por $_POST o $_GET y no por su nombre directo.
O en su defecto, al inicio de todas tus páginas:

Código PHP:
if(isset($_POST)) extract($_POST);
if(isset(
$_GET)) extract($_GET); 
Aunque obviamente conlleva una mayor suceptibilidad del script

Un saludo,
  #5 (permalink)  
Antiguo 30/05/2007, 09:24
Borjimante
Invitado
 
Mensajes: n/a
Puntos:
Re: Control de usuarios

ya parece que va mejor esto

aora cuando voy al login.php sale esto:

Cita:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/anteraso/public_html/Registro/comprueba.php:6) in /home/anteraso/public_html/Registro/comprueba.php on line 7
como lo cambio?

os dejo el link http://www.antera-solutions.com/Registro/comprueba.php

un saludo
  #6 (permalink)  
Antiguo 30/05/2007, 09:30
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Control de usuarios

Postea tu codigo modificado... Pero el problema creo se solucionara colocando los session_start() como primera linea de cada pagina

Código PHP:
<?php
session_start
();
 
//Resto del codigo;
?>
Un saludo,
  #7 (permalink)  
Antiguo 30/05/2007, 09:42
Borjimante
Invitado
 
Mensajes: n/a
Puntos:
Re: Control de usuarios

he puesto en todas las pginas esto:

primero esto:

Cita:
<?
session_start();
if(isset($_POST)) extract($_POST);
if(isset($_GET)) extract($_GET);
?>
y despues el resto de codigo, ej: comprueba.php

Cita:
<?
$server="localhost"; /* Nuestro server mysql */
$database="xxx"; /* Nuestra base de datos */
$dbpass="xxx"; /*Nuestro password mysql */
$dbuser="xxx"; /* Nuestro user mysql */
$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(mysql_num_rows($result)==0){
echo "No existe el nick introducido";
} else {
$array=mysql_fetch_array($result);
if($array["password"]==crypt($pass,"xxx") ){
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. */
$SESSION["login"]=$login;
$SESSION["nombre"]=$array["nombre"];
$SESSION["apellidos"]=$array["apellidos"];
session_register("SESSION");
header("location: user.php");

} else {
echo "Contraseña incorrecta, intentelo de nuevo";
} /* Cerramos este ultimo else */
} /* Cerramos el else que corresponde a la comprobación de que el login existe */

?>
aver k valla
  #8 (permalink)  
Antiguo 30/05/2007, 11:43
Borjimante
Invitado
 
Mensajes: n/a
Puntos:
Re: Control de usuarios

ya he cambiado todo lo que pasa esque aora no me loguea, registra perfectamente pero no me loguea. tengo esto:

login.php:

Cita:
<?
if(isset($_POST)) extract($_POST);
if(isset($_GET)) extract($_GET);
session_start();
if(isset($SESSION)){
header("location: user.php"); /* Si ha iniciado la sesion, vamos a user.php */
} else {
/* Cerramos la parte de codigo PHP porque vamos a escribir bastante HTML y nos será mas cómodo así que metiendo echo's */
?>
<html><head><title>Necesita identificarse para acceder al panel de control</title></head>
<body>
<center><h1>Identifiquese</h1></center>
<form action="comprueba.php" method="POST">
Nick: <input type="text" name="login"><br>
Contraseña: <input type="password" name="pass"><br>
<input type="submit" value="Entrar">
</form>
</body></html>
<?
} /* Y cerramos el else */
?>
y en comprueba.php:

Cita:
<?
if(isset($_POST)) extract($_POST);
if(isset($_GET)) extract($_GET);
session_start();
$server="localhost"; /* Nuestro server mysql */
$database="x"; /* Nuestra base de datos */
$dbpass="xxx"; /*Nuestro password mysql */
$dbuser="xxx"; /* Nuestro user mysql */
$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(mysql_num_rows($result)==0){
echo "No existe el nick introducido";
} else {
$array=mysql_fetch_array($result);
if($array["password"]==crypt($pass,"xxx") ){
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. */
$SESSION["login"]=$login;
$SESSION["nombre"]=$array["nombre"];
$SESSION["apellidos"]=$array["apellidos"];
session_register("SESSION");
header("location: user.php");

} else {
echo "Contraseña incorrecta, intentelo de nuevo";
} /* Cerramos este ultimo else */
} /* Cerramos el else que corresponde a la comprobación de que el login existe */

?>
aver si me podeis ayudar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:04.