hola.
Mas que un comentario es una pregunta.
Vuestro articulo me ha servido de mucha ayuda pero tengo una duda sobre algo que quiero hacer.
En lugar de que abra siempre la misma pagina ¿se podría hacer que dependiendo de la primera letra del nombre del usuario abra una pagina determinada.?
RESPUESTA
Pues claro que puedes!! sólo necesitas programar el script... Lo que no creo que hagamos es programartelo nosotros. Si acaso te diré que deberías obtener la primera letra del nombre de usuario con las funciones de string de PHP y luebo disponer de alguna estructura de datos de tipo Array o similar que relacione esa letra con una URL donde redirigir al usuario.
Otra idea, que sí me parece más interesante como para publicar algún día un artículo, es guardar en la tabla de usuarios (en la base de datos MySQL) un campo con la URL donde dirigir al visitante cuando se autentifica. Entonces, al comprobar que el usuario es correcto recogeríamos ese dato de la tabla y redirigiríamos al usuario a dicho lugar.
Creo que la solucion al caso es bastante sencilla.
1) Deberías crear una fila mas en la base de datos, donde almacenarías la pagina de redirección de cada usuario.
2) Una vez autentificado el usuario y con la variable de sesión establecida, lo redireccionas a una pagina intermedia que lo única función que tendría seria re-ubicar al usuario.
En esa pagina podrías consultar por medio de la variable de sesión a la base de datos para obtener la dirección para enviar al visitante.
Funcion header junto con el resultado de la consulta a mysql.
Actualmente estoy utilizando un script de este tipo en mi empresa, pero por cuestiones de privacidad no puedo publicar el código, pero déjame decirte que no es para nada difícil, quizás necesites sentarte a leer un poco mas sobre el tema... es la única forma de mejorar.
***
Desde ya agradezco a los redactores del articulo, ya que me fue de mucha utilidad en mis principios. Muy buen trabajo muchachos, sigan así.
Me parece muy acertado este tipo de codificación que han colocado en su web, para que los principiantes de PHP puedan adecuarse y practicar bastante este programa....los felicitito
Hola a todos
realice el script que ustedes dieron aqui, todo esta bien solo que cuando lo cargo por primera vez me dice que tengo lo siguiente:
Notice: Undefined index paso(es la variable qu edeclaro) in C:\...\seguridad.php on line 2
Warning: Cannot modify header information - headers alredy sent by (output started at .. c:\...\seguridad.php:2) in c:\inetpub\..\seuridad.php on line 4.
pero si vuelvo a cargar la pagina de nuevo si carga la pagina correctamente dandole paso al usuario...
de atemano gracias..
| Por: Jose Corbacho | | 02/2/2004
|
Creo que el manuel es muy bueno... pero cuando empiezas a profundizar faltan algunas cosillas:
Sería interesante poner algo de información para evitar la inyección de código SQL (addslashes() , mysql_espace_string() o otros medios) en las entradas del usuario. Y por otra parte sería conveniente almacenar las contraseñas en la BD en formato MD5 ( md5() ) para evitar que si alguien tiene acceso a la base de datos no conozca las contraseñas de los usuarios.
Un saludo
Hola amigos, en primer lugar felicidades a todos los creadores de la web y a aquellos que con sus comentarios ayudan a que sigamos mejorando día a día. Bien, la solución que propongo para redireccionar a un usuario que hace login en nuestra página a una zona en concreto de nuestro sitio es la siguiente: en primer lugar crearemos un campo en nuestra tabla de la base de datos, donde almacenaremos información acerca del archivo al que se quiere redireccionar (p.e. podria almacenarse: aplicacion.php para un usuario, lo_que_sea.php para otro usuario ...). Nos vamos a control.php y ponemos lo siguiente:
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
//autentificado sería una variable de sesión
//en la instrucción que sigue lo que se está haciendo es cargar el identificador de sesión
//en la variable de sesión, para comprobar a posteriori en seguridad.php si puedo o no
//autorizar el paso al individuo que lo solicita
$autentificado=session_id();
//con la función: mysql_fetch_row lo que se pretende es cargar los valores de los campos de
//una determinada fila, a los cuales se puede acceder luego como si de una matriz se tratara
$row = mysql_fetch_row($rs);
//el campo que he insertado en la tabla es el último de un total de 11, de ahí que acceda
//a la posición 10, ya que empezamos a contar de 0
header ("Location: $row[10]");
}else{
//si no existe le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
}
mysql_free_result($rs);
mysql_close($conn);
?>
Os he puesto la parte de código que nos interesa de control.php
Un saludo a todos.
estaba probando los ejemplos del artÃculo, y, una vez cerrada la sesion, a pesar de ello, si retrocedo en el navegador, todavia puedo acceder a la pagina de la aplicacion. :(
RESPUESTA
Yo creo que lo que estás viendo son páginas en la caché del navegador. Si recargas la página, con F5 o CTRL+F5, deberían saltar las alertas de seguridad e informarte que tienes cerrada la sesión.
Hola a todos.
Para evitar la inyección de código SQL en nuestra consulta (consulta que utilizamos para válidar si tiene acceso o no), podemos reemplazar los caracteres ",',/, y = por nada o un espacio en blanco usando las funciones que php tiene para ello:
//Evitando la inyección de código SQL
//Javier A. 31 DIC 04
$usuarioseguro=str_replace("\","",$_POST['usuario']); $usuarioseguro=str_replace("'","",$usuarioseguro); $usuarioseguro=str_replace("/","",$usuarioseguro); $usuarioseguro=str_replace(""","",$usuarioseguro); $usuarioseguro=str_replace("=","",$usuarioseguro);
//Creamos la sentencia SQL
$sql="SELECT contrasena FROM usuarios WHERE usuario='".$usuarioseguro."'";
Espero que os sirva.
Saludos.
hola
¿si un usuario a ingresado correctamente, por lo tanto a iniciado una sesion como se puede hacer para que no tenga acceso a otras paginas seguras de otros usuarios?
¿ para cada usuario hay que hacer un archivo de autentificacion distinto?
Gracias
una pregunta y si solamente tengo acceso a los nombres de los usuarios, y la contraseña se encuntra en otra lado(restringido)?; las sesiones pertenecen a un dominio, la idea era capturar la sesion y contraseña cuando se loguea en window, se puede?, gracias
Pienso que deberias de incriptar las contraseñas antes de guardarlas en la base de datos.
wenas yo ice todo tal y como ponia en el manual, incluso segui la otra posibilidad que hay, y todo funciona mu bien, el problema es q tengo puesto 3 usuarios, y solo tiene acceso el 1º de la lista de la tabla, que puedo acer pliz?
esta muy bueno el articulo sobre todo para principiantes pero queria saber porque si lo estoy probando con mi base de datos (bd) siempre me dice que los datos son incorrectos aun sabiendo que el scrip de la conexion esta bien y lo unico que hice fue cambiarle los nombres de: tabla y campos a los que yo tengo en mi bd y en nobre de toda la bd si me pueden ayudar se los agradezco de corazon.
PARA JOCA:
En mi caso necesitaba restringir el acceso segun la contraseña q se tecleaba... y este fue el script q hice ojala y sirva de algo...a mi ver con una seleccion multiple es suficiente..
<?
//-PASO 1 - conecto con la base de datos
$conn = mysql_connect("localhost","root","yomero");
//selecciono la BBDD
mysql_select_db("agenda",$conn);
//-PASO 2 - comprobar datos con una consulta SQL
//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM usuario WHERE nombre_usuario='$usuario' and clave_usuario='$contrasena'";
//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);
//PASO 3 - VALIDACION DE ACCESO
//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario contraseña
if ( mysql_num_rows($rs)!= 0 )
{
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
switch($_POST){
case ($_POST["usuario"]=="almacen" && $_POST["contrasena"]=="almacen"):
header ("Location: /php/seguridad/almacen/index.php");
break;
case ($_POST["usuario"]=="gerencia1" && $_POST["contrasena"]=="gerencia1"):
header ("Location: /php/seguridad/gerencia1/index.php");
break;
case ($_POST["usuario"]=="gerencia2" && $_POST["contrasena"]=="gerencia2"):
header ("Location: /php/seguridad/gerencia2/index.php");
break;
case ($_POST["usuario"]=="recursosHumanos" && $_POST["contrasena"]=="recursosHumanos"):
header ("Location: /php/seguridad/recursosHumanos/index.php");
break;
case ($_POST["usuario"]=="tesoreria" && $_POST["contrasena"]=="tesoreria"):
header ("Location: /php/seguridad/tesoreria/index.php");
break;
}
}else {
//si no existe le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
}
mysql_free_result($rs);
mysql_close($conn);
?>
..saludos.sSS.:° ..
| Por: Deyvi Rosado Diaz | | 29/8/2005
|
Algo de codigo para este sistema de autentificacion, no soy experto en PHP pero he realizado un codigo para autentificacion y que dependiendo de el usuario redirecciona a una pagina diferente:
<?php
include("conex.php4");
$valor1=$_GET["usuario"];
$valor2=$_GET["clave"];
$conten=trim($valor1);
$ext=substr($conten,4,7); //sera utilizado para la seguridad de la pagina
$grado=substr($conten,5,6); //para especificar el grado al que reenviara.
$link1= conectarse();
$consulta="select * from alumno where usuario='$valor1' and clave='$valor2' and grado='$grado'";
$resultado=mysql_query($consulta, $link1);
if(mysql_fetch_array($resultado)>0){
switch ($ext){
case "a1p":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../primaria/portada.php");
exit();
break;
case "a2p":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../primaria/portada.php");
exit();
break;
case "a3p":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../primaria/portada.php");
exit();
break;
case "a4p":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../primaria/portada.php");
exit();
break;
case "a5p":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../primaria/portada.php");
exit();
break;
case "a6p":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../primaria/portada.php");
exit();
break;
case "a1s":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../secundaria/home.php");
exit();
break;
case "a2s":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../secundaria/home.php");
exit();
case "a3s":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../secundaria/home.php");
exit();
break;
case "a1b":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../bach/home.php");
exit();
break;
case "a2b":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../bach/home.php");
exit();
break;
case "a3b":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../bach/home.php");
exit();
break;
case "a4b":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../bach/home.php");
exit();
break;
case "a5b":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../bach/home.php");
exit();
break;
case "a6b":
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../bach/home.php");
exit();
break;
case "doc";
session_start();
$_SESSION["autentificado"]=$ext;
header("location: ../docentes/primaria/tecnologia.php");
exit();
break;
default:
header("location:portada.htm");
exit();
}//fin swith
}else {//si no
header("location:portada.htm");
}//fin if
mysql_free_result($resultado);
mysql_close($link1);
?>
esta autentificacion es con llamado a usuarios de una base de datos.
Alguan duda alli esta mi correo
| Por: marck_antony | | 05/9/2005
|
¿Usando la base de datos para reenviar a los usuarios utilizando un campo de para lanzar el link como puedo hacer que la consulta identifique el usuario ya antes registrado para seleccionar ese campo luego de direccionar con el script de seguridad o contrtol?
Primero que todo los felicito por esta web, sirve de gran ayuda para los que estamos aprendiendo.
yo descargue los archivos e intente poner a funcionar esos en una web que estoy haciendo, pero cuando digito el usuario y la clave me sale el siguiente error:
"Parse error: parse error, unexpected T_STRING in /mnt/storage/users/p/a/s/paseosdecamping/control.php on line 16"
He estado buscando como solucionar el error y no he podido, alguien sabe decirme donde encuentro documentacion para ello ??
Al ejecutar el codigo me da el siguiente error:
Parse error: parse error, unexpected T_STRING in /home/cs000164/public_html/control1.php on line 12
la linea 12 es la siguiente:
//$ssql = "SELECT * FROM Usuario WHERE nombre_usuario='$usuario' and clave_usuario='$contrasena'";
Que esta mal ? Gracias
| Por: Francisco (Piki) | | 25/10/2005
|
Gracias por vuestro consejo pero tengo una duda.
Esta sentencia redirige una página php llamada "aplicacion.php"
supongo que hay que incluir un script en esta aplicacion que verifique si se está autentificado o no.
Y que no sea $autentificado='SI' ya que, aunque soy novato, creo que se podría poner lo siguiente: url://aplicacion.php?autentificado=SI
y así daría como válida ¿no?
Ya se que eso implica que hace falta conocer el nombre de la página PHP y de la variable. ¿tan dificil es?
Gracias y enhorabuena por vuestra página.
| Por: diego lopez | | 29/10/2005
|
por sque no puedea el sistema reconocerme como usuario resgistrado si inicio secion como se deveria y el isistema no me saluda tampoco
me deja ver el contenido especial
muy bueno el tutorial, pero tengo un problema.
Aunque se ejecute salir.php vuelvo atras en el navegador y de todas maneras aparece la web "protejida" ...le di f5 y ctrl f5 y de todas maneras ocurria...q puede ser ??
| Por: dario mancilla vilches | | 29/11/2005
|
Saludos, muy bueno el tutorial para comenzar, solo una duda, quisiera saber si ademas de la pagina web restringida, tambien podria tener acceso a archivos que solo se puedan ver a tarves de esa pagina logueada, algo asi como que a tarves de esat pagina y solo con una clave se pueda tener acceso a ciertos archivos ara descarga, bueno si alguien sabe como hacerlo, por favor comuniquelo se los agradecere mucho
Por si a alguien le sirve, como esta el script no me funcionaba, asi que debi declarar como variables $usuario y $contrasena antes de esta forma: $usuario=$_GET["usuario"];
$contrasena=$_GET["contrasena"];
y recien asi me lo tomo correctamente.
Saludos
Pablo
Para los que quieran varios usuarios usen el ejemplo del comentario y no el de descargar otra posibilidad ya que ese no funciona solo funciona el primer registro de la tabla y los demás no, y con el del ejemplo en cafe si funcionan todos los registros
| Por: Juan Medina | | 20/6/2006
|
Muy bueno el articulo, yo me encuentro desarrollando una aplicacion que requiere la autentificacion de los usuarios, sin embargo no se si sea conveniente crear un usuario para la base de datos con los permisos adecuados que sea igual al usuario de la aplicacion o solo crear un usuario para la aplicacion sin crear el usuario para la base de datos, con lo cual se realizaria la conexion siempre con el mismo usuario. Agradezco mucho si me pueden guiar ante esta duda. Gracias.
Que tal. estaba viendo el tutorial. y esta bueno. nada mas que tengo un pequeño problema.
Como se hace Autentifiacion de usuario pero con "msqli" y no "msql" ?
La explicación de todo esto es muy clara. Pero no me funciona. Siempre me dice que está equivocada, pero revisé millon de veces y está todo bien.
Por ultimo intenté agregar un campo con la pagina a donde tiene que entrar el usuario y modifique el control.php como acá está expuesto y tampoco funciona.
me estoy volviendo loca!! ya no se que mas probar.
Cuando estoy autentificado y pongo include ("seguridad.php");
me manda a index.php creyendo que no estoy autentificado.Supongo que habrá que almacenar algo.alguien tiene alguna idea?
Hola creo que se ha mencionado por aquí. Está todo muy claro pero no me funciona siempre me dice que el usuario es incorrecto. He probado por si tenía problemas con la conexión a la bade de datos pero eso no es... no consigo encontrar el error... Un saludo y gracias.
| Por: heee saludos | | 17/9/2006
|
a funcionado bien todo
el lio me lo da a la hora de ingresar usuarios, puesto que al no ser experto en el tema. puedo ingresar dos usuarios con los mismos datos, cosa que no deberia pasar.
la pregutna es como hacer para que solo se pueda ingresar un usuario con un nombre y no repetirse,,,,
| Por: Demian Kachuk | | 21/1/2007
|
Desde mi punto de vista lo resolveria de la siguiente manera:
<?php
//--- Conecto a la base de datos
$conn = mysql_connect($host,$usuario,$pass);
//--- Selecciono la base
mysql_select_db($base, $conn);
//--- Genero la consulta
$sql_query = "select * from tbl_usuario where usr_id='" . $_POST["usuario"] . "' and usr_pass='" . $_POST["password"] . "'";
//--- Ejecuto la consulta
$sql_resul = mysql_query($sql_query, $conn);
//--- Verifico
if(mysql_num_rows($sql_resul) != 0){
session_start();
session_register("autenticado");
$autenticado = "SI";
header("Location: aplicacion.php");
}else{
header("Location: index.php?error=si");
}
//--- Libero los recursos
mysql_free_result($sql_resul);
//--- Cierro la conexion
mysql_close($conn);
?>
Me ha servido de mucho la orientacion de este articulo para la resolucion de mis sistemas.
Espero mi punto de vista les sea util.
Gracias, hasta pronto.!
Hola,me encanto la explicacion.Yo quisiera bloquear a los invitados de mi foro creado de una pagina pero no se como.Quien pueda ayudarme por favor conectese al msn o mandeme un mail a kalelchingolero@hotmail.com
Una preguntita estoy hacieno una pagina de comunidades y tengo un problema, luego que logueo a mi ususario, lo valido y todo correcto me da la bienvenida con mi nombre y todo, luego de validado doy la opccion de subir una foto a la base de datos (lo cual tambien esta listo), mi problema es que la foto lo graba en un registro diferente y no en la misma fila del usuario que se registro y valido, me entienden: Ingresa Erick ....bienvenido Erick sube tu foto, ok. la subo pero no en los registros de Erick sino en una nueva celda sin mas datos que la foto. Les agradeceria mucho si alguien me ayuda.
| Por: Marcelo Pickelny | | 25/2/2007
|
Estimados... como serian las modificacines para trabajar sobre SQL Server 2005 ? En un sevidor con SQL no tengo ningun problema pero en SQL SERVER 2005 no me funciona.. Espero me puedan ayudar
Gracias
Muy buen manual! me ha sacado d apuros las veces q lo he consultado. aunq me desconecto d la programación siempre q vuelvo me sigue funcionando. chido
| Por: Vicky Simanca | | 31/8/2007
|
Buenos días.
Señores, les escribo para informarles que estando interesada en la compra del manual de SISTEMA DE AUTENTIFICACIÓN PHP, y teniendo cuenta abierta en la empresa CLICKANDBUY desde hace algún tiempo, me ha sido imposible realizar la compra.
Como no tenía suficiente saldo en la cuenta para efectuar la compra, he intentado realizar el ingreso correspondiente en la misma, para poder realizarla, cual es la sorpresa por mi parte al ver que me sale un cartel que dice "ESTA OPCIÓN NO ESTÁ DISPONIBLE PARA SU PAIS".
Yo soy de VENEZUELA, y he tenido que llamar por teléfono a España, para conocer de viva voz de CLICKANDBUY, el motivo de no poder efectúar la compra.
la respuesta, ha sido que tenía que esperar 1/2 hora, y que luego de este tiempo se pondrían en contacto conmigo.
Varias horas después, sin haber tenido comunicación, he vuelto a llamar a ESPAÑA al teléfono (34) 91 790 95 89, y la contestación de esta empresa ha sido la siguiente:
"No es posible que usted pueda hacer ingreso en su cuenta de CLICKANDBUY, desde su país, Y el propietario de la página no admite compra alguna sin tener cuenta en esta compañia".
No me explico por qué no puedo hacer ingresos en mi cuenta cuando ya los hice en el pasado, en concreto para jugar en un casino on line.
A mi pregunta de ¿en qué paises no estaba habilitada la opción de ingreso en cuenta?, La respuesta fue "varios".
Al preguntar cuales paises,La respuesta fue "No me los se de memoria".
En conclusión:
Ustedes están trabajando con una compañia de pagos, que no da respuesta a los usuarios, y que supongo que al igual que yo, habrá muchos más interesados en la compra de este u otros manuales, las cuales no se podrán efectuar.
P.D. Aunque yo vivo en VENEZUELA, y en este país existe un control de cambio, yo tengo autorizadas mis tarjetas para hacer transacciones por internet en dólares ($), con lo cual no existe problema por este motivo.
Sin otro particular, reciban un cordial saludo
Vicky Simanca
| Por: leonardo wilthew | | 10/9/2007
|
Yo entiendo todo pero lo que les falta explicar es que tablas tendria que crear? el nombre y la configuracion de cada tabla!! eso es lo unico que no especifica y eso me hace falta a mi para colocarlo con el mysql
Porfavor Ayudenme
| Por: Juan Gabriel Letelier Martínez | | 31/1/2008
|
Cuando aplico el script tal como está no me acepta ningún usuario y contraseña, si cambio de 0 a 1 e la pregunta if, me acepta cualquier usuario y contraseña, eatré haciendo mal alguna otra parte?
Pueden ayudarme?
| Por: Grajo Carajo | | 27/10/2008
|
No sé a que se debe pero el codigo:
session_register("autentificado");
$autentificado = "SI";
header ("Location: aplicacion.php");
No me funcionó usando WAMPP 2 con sus defaults.
Sin reconfigurar nada usé
session_start();
session_register('autentificado');
$_SESSION['autentificado']="SI";
header ("Location: DemoPAGE.php?".SID);
Y todo funcionó como debía. (PHP 5.2.6) (register_globals OFF)
Autentificacion Usuario Acceso a datos Por: NOE | | 08/4/2009
|
Hola, si yo tengo una base de datos en mysql, utilizo php para consultar y agregar datos a un libro de direcciones, que puedo hacer para que solo el usuario que entre y se identifique solo él pueda borrar o editar sus registros y no los de los demás ususarios. Yo estoy tratando de aprender este lenguaje, estoy usando plantillas de Addresbook. Saludos.
wero_br... | opinion
| 13/5/2009 |
muy bueno el manual
pregunta Por: Hasmael | | 20/8/2009
|
FELICITACIONES POR LA PAG Y EL TUTORIAL!!!!
en la parte
mysql_select_db("nombre_bbdd",$conn);
si mi base de datos se llama susanita_BD ¿entonses seria
mysql_select_db("susanita_BD_bbdd",$conn); ????
.............................................................................................................
$ssql = "SELECT * FROM usuario WHERE nombre_usuario='$usuario' and clave_usuario='$contrasena'";
mi tabla se llama costumers y dos campos se llaman user y pass ¿entonses seria:
$ssql = "SELECT * FROM costumers WHERE user='$usuario' and pass='$contrasena'"; ???
POR FAVOR CORRIGAN SI MI SINTAXIS ESTA MAL, SE LOS AGRADECERIA ETERNAMENTE
P.D.: QUE ES $conn??
Evitar sql injection Por: fortress | | 19/3/2010
|
Muchas gracias por el articulo me sirvio de mucho. quisiera aportar este pequeño codigo para evitar el sql injection. Espero y les sirva.
$usu = $_POST['user'];
$pass = $_POST['password'];
//Consulta hecha para evitar sql injection
$ssql = sprintf ("SELECT * FROM autenticar WHERE nombre='%s' and clave='%s'", mysql_real_escape_string($usu), mysql_real_escape_string($pass));
saludos!!!
sertorr... | Sugerencia
| 14/5/2010 |
Hola a tod@s, soy nuevo en el tema, que por cierto muy interesante pero quisiera aportar una sujerencia constructiva que es que se digan cuantos archivos necesito crear, y agruparlos en un compresor para poder descarga y probar. Incluida la base de datos Mysql. Creo que el orden ayudaría a la excelencia del artículo.
Muy Bueno todo y que sea de beneficio a todos.
Saludos
Buenas, primero q nada qisiera agradecer la simplicidad de vuestros artículos, ideal para el fácil aprendizaje.
He estado estudiando y probando los ejemplos q aparecen en el artículo, pero me arroja estos errores:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
Warning: Cannot modify header information - headers already sent by
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource
Ojalá puedan ayudarme.
Gracias de antemano.
pedrolp | aclaraciones
| 02/9/2010 |
Hola q tal, bueno estuve revisando el codigo, me estoy adentrando nuevamente a php ya que lo habia dejado por falta de tiempo, bueno, ahora que estoy retomando esto y bueno que mas que un pekeño sistema de login para usuarios, y que mejor si los toma de una base de datos, pero he aqui mi pregunta:
al hacer el query: $ssql = "SELECT * FROM usuario WHERE nombre_usuario='$usuario' and clave_usuario='$contrasena'";
en comparacion con que seria los parametros que salen como variables... ahh y otra cosa, el query en la que sale el codigo como otra opcion al cual le hace arrays asociativos el query es: SELECT * FROM tabla;
Este query no es muy general? es decir en todo caso a que elemento esta tratando de elegir? ya que al comparar siempre me jalaba el 1er usuario de mi tabla y no al resto, yo recuerdo que hace tiempo lo hice de una forma similar, con arrays asociativos ya que me parecia algo mejor, pero no habria q relacionarlo a algo? bueno como mencione me estoy metiendo de nuevo en lo q es php y no recuerdo muy bien estas cositas, lo que me parece muy bien es la seguridad que le implementan y es un plus q me esta sirviendo de mucho, bueno espero puedan aclarar bien esta parte para poder coger mas usuarios teniendo una tabla con 10 usuarios y todos puedan loguearse satisfactoriamente, espero me puedan responder, gracias
pedrolp | una cosita mas!!
| 02/9/2010 |
no se porque la pagina no me sale... es decir de index.php no llega a aplicacion.php, el problema por lo que veo es en control.php, es decir en esta parte del codigo... al ver el resultado del query (que como variable he puesto $rs) me muestra lo siguiente:
Resource id #4
a que se debe esto? no se si alguien pudiera darme alguna respuesta, gracias
jordi_n... | nivel de usuarios
| 18/10/2010 |
Hola he implementado este sistema de autentificacion y me parece muy bueno, solamente que estoy intentando tambien hacer un acceso restringido a LINKS que solamente se vean dependiendo del nivel de usuario a fin de poder modificar los datos web unos y administrar toda la base de datos otros, para ello tengo el campo nivel en la tabla users junto al nombre de usuario y la contraseña, pero cuando intento hacer (antes lo hacia con dreanweaver de forma automatica) la validacion por nivel de usuario, no hay manera de poder hacerlo, lo he intentado en seguridad.php, en control.php incluso en el propio index.php pero nada de nada y si lo hago con dreanweaver, me invalida todo el resto y me pone "su" codigo y no quiero eso.
¿como lo hago?.
Gracias
roberto... | Espero que me podáis echar una mano....
| 31/1/2011 |
Buenos días, muchas gracias por el tutorial! Me ha servido de mucho! Pero tengo un pequeño problema que llevo un par de días y no consigo resolver, y es que en mi servidor local (WAMP) me funciona a la perfección, pero cuando lo subo al servidor de mi empresa, una vez logueado me retorna a la página de login a través del condicional de que no se ha autentificado, por lo que doy por hecho que en mi servidor no se esta guardando la sesión, cosa que me extraña puesto que la web de mi empresa se basa en Joomla, y supongo que éste CMS funcionará con sesiones también.
Acto seguido, me puse a mirar la diferencia entre los php.ini del server con el mío del WAMP, y la única diferencia que hay es:
- session.bug_compat_42
- session.use_only_cookies
El segundo de ellos lo modificamos en php con ini_set, el segundo no sé en que afecta, pero es que po lo demás es el mismo php.ini, y ya me quedo sin ideas de la causa del problema que estoy teniendo.
Me podéis echar una mano por favor? Gracias de antemano.
Jaime19... | autentificacion web php usando usuario mysql en phpmyadmin
| 26/5/2011 |
al entrar en la pagina de validad de la clave me da el siguiente error, adjunto mas abajo el codigo porque soy incapaz de que funciones.
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /homez.373/administy/www/intranet.php on line 20
Warning: Cannot modify header information - headers already sent by (output started at /homez.373/administy/www/intranet.php:8) in /homez.373/administy/www/intranet.php on line 26
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /homez.373/administy/www/intranet.php on line 30
<?php
//--- Conecto a la base de datos
$conn = mysql_connect("------","----------","------------" );
//--- Selecciono la base
mysql_select_db("---------",$conn);
//--- Genero la consulta
$sql_query = "select * from tabla where CLAVE='" . $_POST["email"] . "' and usr_pass='" . $_POST["cCLAVE"] . "'";
//--- Ejecuto la consulta
$sql_resul = mysql_query($sql_query, $conn);
//--- Verifico
if(mysql_num_rows($sql_resul) != 0){
session_start();
session_register("autenticado");
$autenticado = "SI";
header("Location: documentos_de_usuarios.php");
}else{
header("Location: index.php?error=si");
}
//--- Libero los recursos
mysql_free_result($sql_resul);
//--- Cierro la conexion
mysql_close($conn);
?>
maraet | Estructurar registro de usuarios.
| 27/5/2011 |
Estimados.
Alguien me puede explicar como se relaciona todo esto.
O sea yo leí las diez partes de "Sistema de autentificación PHP" y entiendo la utilidad de cada cosa, pero no logro saber como entrelazar todo...o como se debe estructurar todo el lenguaje para que me ande el sistema de usuarios.
Alguien me puede pasar un instructivo, una idea algo que me ayude a desenvolverme para poder iniciar un registro de usuarios.
Desde ya gracias y si alguien prefiere indicarme algo por mail aquí se los dejo.
mar21_aet@hotmail.com
Saludos cordiales!
tengo una pag en html y php... que ingresa por medio de un formulario de login, pero no puedo hacer que no apareza los url de la pag web que cualquiera los pueda ver no mas los que ya esten registrado en una base de datos en el servidor...una base de datos sql...ayudaaaa
JoelAR | Error en la consulta
| 04/8/2011 |
Estimados,
en mi prueba del código se conecta correctamente a la base de datos, pero al realizar la consulta filtrada me arroja siempre 0 filas.
saludos,
Joel
PD: trabajo con localhost (AppServ en XP)
| Para Jose Guzman
| 15/8/2011 |
[quote]Jose Guzman dijo:
Problemas con el Codigo
Por: Jose Guzman
Buenos sus comentarios con respecto al codigo publicado sobre la autenticacion de usuarios para tener acceso al modulo principal del sistema..
Mi pregunta es la siguiente para que unos de ustedes me ayude con este codigo que es similar al que aparece publicado pero no me funciona..
if($_POST['button']=='Aceptar'){ // Variables...
if(!empty($_POST['usuario']) and !empty($_POST['iclave'])) {
include "../WebCFG/CNC-SucreNE.php"; // Conexion....
// Busqueda de Informacion....
$sql =mysql_query("SELECT * FROM usuario WHERE usuario ='$usuario' and iclave ='$iclave'");
if(!Empty($sql)){ // Verifica el registro...
header("location:http://localhost/WebSucreNE/WebPHP/WebSucreNE.php"); }
else {
header("location:http://localhost/WebSucreNE/MainMenu.php");
exit;
}
}
}
header("location:http://localhost/WebSucreNE/MainMenu.php");
Return TRUE;
}
?>
[/quote]
Especifica por favor exactamente que es lo que no te funciona. Es decir, que mensaje de error sale ? (en caso de haber uno).
De todos modos y juzgando solamente el código que escribiste, te indico que le sobra una llave de cierre "}", en este caso es la última.
Revisa y lo indicas por esta vía.
drsatan | Problema con la autentificacion
| 13/7/2012 |
Estimados mismo problema que los demas participantes.
No logro realizar que los usuarios dentro de la base de datos ingresen a sus paginas correspondientes, por ejemplo cada usuario tiene un tipo de dato int que es privilegio ya sea 1,2,3, etc .
La idea es que dependiendo de este numero se logre abrir la pagina que yo asigne.
Ejemplo : privilegio 1 son los administradores y al ingresar user & pass se abra el portal de administradores y así con los demás usuarios.
Ahora e estado viendo varios códigos que ustedes han posteado acá y no logro realizarlo.
Como debo realizarlo sinceramente estoy medio perdido y necesito sacar esto a flote.
Saludos.
Euge_BM | CONSULTA DE PHP
| 01/10/2012 |
Hola buenos dias. Les escribo para saber si alguien me puede ayudar con esto.
Tengo un scrip de validacion a una pagina segura, que en el servidor local funciona perfecto, el usuario valida y la pagina segura da la bienvenida con el nombre de cada usuario porque me toma el id. Mi problema es el siguiente, yo subi esta web a un hosting el cual la parte de msql donde creo las bases tiene un nombre de usuario y el php myadmin tiene otro nombre diferente.
Mi scrip conecta, y se puede ver en la url cuando hace la validacion, pasa a la pagina segura y directamente me devuelve al login con error.
Es por esta linea del script que no conecta:
<?php
/*
Newton2.0
*/
//Inicializar una sesion de PHP
session_start();
//Validar que el usuario este logueado y exista un UID
if ( ! ($_SESSION['autenticado'] = 'SI' && isset($_SESSION['uid'])) )
{
//En caso de que el usuario no este autenticado, crear un formulario y redireccionar a la
//pantalla de login, enviando un codigo de error
?>
<form name="formulario" method="post" action="index.php">
<input type="hidden" name="msg_error" value="2">
</form>
<script type="text/javascript">
document.formulario.submit();
</script>
<?php
}
//Conectar BD
include("conectar_bd.php");
conectar_bd();
//Sacar datos del usuario que ha iniciado sesion
$sql = "SELECT nombre,usuario
FROM users
WHERE usuario = '".$_SESSION['uid']."'";
$result =mysql_query($sql);
$nombreUsuario = "";
//Formar el nombre completo del usuario
if( $fila = mysql_fetch_array($result) )
$nombreUsuario = $fila['nombre'];
//Cerrrar conexion a la BD
mysql_close($conexio);
?>