Foros del Web » Programando para Internet » PHP »

Atentificar User por medio de Tables

Estas en el tema de Atentificar User por medio de Tables en el foro de PHP en Foros del Web. Hola, quisiera saber quien me ayuda con este script que estoy "tratando" de armar para la Autentificación de User pero con Databases, etc..., en los ...
  #1 (permalink)  
Antiguo 23/07/2002, 15:17
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 15 años, 5 meses
Puntos: 0
Atentificar User por medio de Tables

Hola, quisiera saber quien me ayuda con este script que estoy "tratando" de
armar para la Autentificación de User pero con Databases, etc..., en los comentarios aclaro más cosas sobre este script:

<?
//Conexion con la base de datos
mysql_connect("localhost","root&quo t;,"");

/*Ejecuto la sentencia SQL de selecion y la guardo en la variable
$consulta, toma en cuenta que tengo una tabla de nombre "miembros"
donde tengo dos campos con los nombres "usuario" y "password", las
variables "$user_name" y "passwd" las saque de un formulario que me
redireccionara a este script en php*/

$consulta = "select * from miembros where usuario = \"$user_name\" and password =
\"$passwd\"";

/* bien, esa $consulta de arriba nose si esta bien, por eso te pongo
esta otra en forma de comentario para que me digas si cual de las dos
seria la correcta
// $consulta=mysql_db_query("prueba"," select * from miembros where
usuario = \"$user_name\" and password = \"$passwd\"");
toma en cuenta que "prueba" es mi database donde esta la tabla
"miembros". Bien ahora lo que sigue son las condiciones segun la
$consulta */

if ( $consulta != $user_name And $passwd) { //aqui quiero decir si no son las variables
echo "No se puede conectar al servidor, favor contacte al administrador por <a
href=\"mailto:[email protected]\& quot;>[email protected]</a>.\n";
exit; //que lo saque del script y le muestre el echo.
}

if ($consulta == $user_name And $passwd) {
echo "en esta condición quedría que me arroje la pagína con acceso Restringido";
}

?>


... se entiende?, quien se anima a aclararme las lagunas, tengo muchos ejemplos de esto, pero quiero hacer algo que yo pueda entender.

Gracias por tu ayuda...

herohat
RedHat Linux/GNU
-Menosprecian a Unix/Linux quienes ignoran su poder-
  #2 (permalink)  
Antiguo 23/07/2002, 17:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Atentificar User por medio de Tables

Si quieres ver un ejemplo mas .. implementado usando Mysql para la gestion de usuarios y sessiones para el seguimiento del mismo ..

<a href='ir.asp?http://phpcluster.host.sk/scripts/autentificator/' target='_blank'>http://phpcluster.host.sk/scripts/autent...</a>
El codigo esta ampliamente comentado .. jeje y el auto soy yo :P

Si quieres seguir con tu codigo .. adelante, pero postea los errores o dudas concretas que tienes ..

Un saludo,
  #3 (permalink)  
Antiguo 23/07/2002, 18:15
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 15 años, 5 meses
Puntos: 0
Re: Atentificar User por medio de Tables

gracias, pero es que quiero algo que pueda manejar yo y entenderlo :), y los problemas que tengo con el script?, simple, no funca... actualmente tengo el script con esta sintaxis luego de leer y alguna que otra ayuda.

&lt;?
//Conexion con la base de datos
mysql_connect(&quot;localhost&quot;,&quot;root&quo t;,&quot;&quot;);

//Ejecutamos la sentencia SQL de Selecion
/*$consulta = &quot;select * from miembros where usuario='$user_name' and password='$passwd'&quot;;*/
/*$consulta=mysql_db_query(&quot;prueba&quot;,&quot ;select * from miembros where usuario='$user_name' and password='$passwd'&quot;);*/
$consulta=mysql_db_query(&quot;prueba&quot;,&quot; select * from miembros where usuario = \&quot;${user_name}\&quot; and password = \&quot;${passwd}\&quot;&quot;);
$result=mysql_fetch_array($consulta)

/*if ($result['usuario']!=$user_name &amp;&amp; $result['passwd']!=$passwd) {*/
if (!$result['usuario']==$user_name &amp;&amp; $result['passwd']==$passwd) {
echo &quot;No se puede conectar al servidor, favor contacte al administrador por &lt;a
href=\&quot;mailto:[email protected]\& quot;&gt;[email protected]&lt;/a&gt;.\n&quot;;
exit;
}

if ($result['usuario']==$user_name &amp;&amp; $result['passwd']==$passwd) {
echo &quot;en esta condición quedría que me arroje la pagína con acceso Restringido&quot;;
}

?&gt;
lo que esta entre /* y */ son con las opciones que he probado, y en todos casos me sale el error:

Parse error: parse error in f:\siteprofamilia\construcion\herohat\pruebas\logi n.php on line 18

la linea 18 son:
/*if ($result['usuario']!=$user_name &amp;&amp; $result['passwd']!=$passwd) {*/
if (!$result['usuario']==$user_name &amp;&amp; $result['passwd']==$passwd) {

//hay dos pues hay una comentada de prueba...

Gracias...
  #4 (permalink)  
Antiguo 23/07/2002, 18:29
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 15 años, 5 meses
Puntos: 0
Re: Atentificar User por medio de Tables

Despues de responder y leer lo escrito, note que me faltaba ; al terminar la linea
$result=mysql_fetch_array($consulta)

bien, resulta que lo coloque y ahora cuado intento entrar, si dejo las variables del formulario user_name y passwd vacias, me muestra la condición que busco, osea.
&quot;en esta condición quedría que me arroje la pagína con acceso Restringido&quot;, si le pongo solo el user_name y dejo el passwd vacio, me arroja &quot;&quot; osea, la pagina en blanco, si pongo un user_name y un passwd equivocados me sale la condición 1,
&quot;No se puede conectar al servidor, favor contacte al administrador por &lt;a
href=\&quot;mailto:[email protected]\& quot;&gt;[email protected]&lt;/a&gt;.&quot; y por ultimo si pongo el user_name y passwd correcto, me muestra la pagina en blanco nueva vez...
  #5 (permalink)  
Antiguo 24/07/2002, 08:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Re: Atentificar User por medio de Tables

Hola,

Antes de mostrarte un par de fallos que veo en tu codigo, un consejo que creo que vendra muy bien a muchos. Antes de ponerte a teclear codigo como un poseso, ANALIZA lo que quieres hacer y desglosalo en partes. Despues, ponlo por escrito, usando diagramas de flujo o pseudocodigo o lo que sea para ver el DISEÑO que has hecho. Por ultimo, REVISA todo otra vez y REPITE el proceso hasta que lleges a una solucion que creas que es correcta. Entonces sera el momento en que puedas empezar a &quot;picar&quot; codigo, y si has hecho lo anterior bien veras que que el codigo te sale mas rapido y mejor.

Ahora, los fallos que te veo en el codigo. Te advierto que solo le he mirado por encima, o sea, que puede haber mas.

Primero, en tu codigo estas usando $result['passwd'] cuando por lo que se ve en tu consulta de BD el campo en la tabla se llama password, con lo que deberias estar usando $result['password']. Quizas estes preguntando como puede ser tan tonto PHP como para no avisarte de esto, pero la verdad es que posiblemente TU tengas configurado PHP para que NO te avise para este tipo de errores.

Segundo, estas haciendo la consulta para que te devuelva el registro que tenga el usuario y password que le has pasado, ¿verdad?. Entonces, ¿para que comprobar si los campos devueltos por la consulta son distintos a los que les has pasado, si le has obligado a que sean iguales?. Este fallo es de DISEÑO. ANALIZA la situacion. Si le has pasado un usuario y/o password incorrectos, ¿que devuelve tu consulta?. Piensa un poco. Te has dado cuenta, ¿verdad?. NO DEVUELVE NINGUN REGISTRO. Con lo que para comprobar esta situacion NO DEBES mirar si el usuario y/o password devueltos coinciden con los que has pasado, sino que DEBES comprobar si te ha devuelto algun registro.

Otro consejo para finalizar. Deja de teclear codigo ahora mismo y coge papel y lapiz y ponte a DISEÑAR lo que quieres hacer.

Espero no haberte ofendido, y que te sirva de algo mi contestacion.


Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 24/07/2002, 10:00
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 15 años, 5 meses
Puntos: 0
Re: Atentificar User por medio de Tables

Uf, je, me toco un profesor un poco &quot;exijente?&quot; nah, che gracias por tus consejos en verdad estan muy buenos para cualquiera en expecial para mi que soy quien tiene el drama, pero recordate, esos errores que cometi y sigo cometiendo es por causa de ser nuevo en esto, nadie nace aprendiendo eh, todo se logra de a poquito, y con respecto a lo de analizar lo que quiero hacer, si eso lo hice pero por lo visto lo que no hice bien fue revisar el codigo ;), pero toma en cuenta que me pase más de ocho horas ayer con ese drama y al final del día fue que saque esos últimos toques al código y saque eso, nada supongo que fue cansanció pero tomare tu consejo y lo pondre en práctica, pero Ojo, hay cosas que por más que analice no podre resolver yo solo. Gracias por tu ayuda.
  #7 (permalink)  
Antiguo 24/07/2002, 13:33
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 15 años, 5 meses
Puntos: 0
Re: Atentificar User por medio de Tables

Hola nueva vez, (espero no se aburran). Esta vez traigo buenas noticias, gracias al consejo de mi profesor, pude hacer lo que queria, nose si es la mejor forma y si es lo mas seguro por eso y para que vean al final que hice para solucionarlo, aquí les dejare el links donde pueden testiar este codigo y me gustaria que digan su opinion,

http://www.profamilia.org.do/herohat/pruebas/login.php

hay esta el source y lo demas, pueden usar el user &quot;profamilia&quot; y pass &quot;profam&quot; para que testen... gracias a todos.
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 13:19.