Foros del Web » Programando para Internet » PHP »

Manejo de Tipos de Usuario

Estas en el tema de Manejo de Tipos de Usuario en el foro de PHP en Foros del Web. digamos que pues yo tengo una tabla de permisos a usuarios llamada:permisos y tengo otra pues que se llama tipos de usuario, ahora bien un ...
  #1 (permalink)  
Antiguo 24/06/2006, 10:38
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Manejo de Tipos de Usuario

digamos que pues yo tengo una tabla de permisos a usuarios llamada:permisos
y tengo otra pues que se llama tipos de usuario, ahora bien un tipo de usuario puede tener varios permisos, mi pregunta es si queda de esta forma:

tipo usuario permiso
admin agregar activo
admin editar activo
coord agregar activo
coord agregar grupos


claro yo manejo estos con codigos, pero mi pregunta es como manejo esto teniendo en cuenta que agregar activo representa una opcion del menu de una pagina.


en el ejemplo, si el que entro fue un administrador solo se le va a presentar la opcion de agregar activo y editar activo y asi con los demas.

estoy un poco enrredado con ello, podrian explicarme como manejar esto???, como lohago con php???
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #2 (permalink)  
Antiguo 24/06/2006, 10:56
 
Fecha de Ingreso: mayo-2006
Mensajes: 11
Antigüedad: 17 años, 10 meses
Puntos: 0
lo mas facil seria tener una sola tabla con varias columnas por ejemplo: una columna que se llame usuario, otra pass, otra tipo y despues los permisos con valores booleanos, como ejemplo ke en la columna del permiso para agregar tenga solo 0 o 1, si es 1 significa que tiene el permiso, eso lo lees con un if en php y haces las opciones.

Saludos.
  #3 (permalink)  
Antiguo 27/06/2006, 07:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio existen muchas formas de "normalizar" tu "modelo de datos" ... La opción que plantea bertoski es sencilla de implementar sobre todo cuando no hay perspectivas de crecimiento de tu aplicación (de más secciones/apliacciones o scripts que dar permisos a tus usuarios ..)

Si quiers algo más "versatil" (de 1 secciones a establecer permisos a N) .. podrías usar un modelo de datos tipo:

id_usuario
nombre
blablabla

permisos_aplicacion
id_permiso_aplicacion
id_aplicacion
id_usuario
permiso

aplicaciones
id_aplicacion
nombre
blablab

Si te fijas .. hay una tabla para los usaurios, otra para las aplicaciones y una tercera (en relación N-N) que relaciona los usuarios y las aplicaciones.

En tus scripts por ese "ID_aplicación" u otro campo/forma detectas que script estás ejecutando (o aplicación) y de ahí consultas a tu BBDD por el Usuario activo (supongo que usaras sesiones para tal fin y/o cookies).


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 27/06/2006, 08:55
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Usuarios

me parece buena las dos opciones comentadas. bueno ya estoy manejando esto con sesiones.

primero que todo, hay un formulario donde pido el nombre del usuario,la contraseña y el codigo de la empresa.

en donde recibo estos parametros es decir en la otra pagina, hago una consulta de si esa empresa existe, la recorro con un while.

despues si existe pregunto si el nombre de usuario, contraseña y codigo de empresa pertenecen a un usuario valido, si es asi, despues pregunto que tipo de usuario es.

despues a variables de session asigno pues el nombre de usuario,contraseña y codigo de empresa.

y despliego la pagina segun que tipo de usuario es.

tengo problemas al manejar la seguridad y es que tengo dos grandes problemas.

1. cuando estoy haciendo operaciones en la pagina y me devuelvo con el boton de atras hasta la principal y despues le doy adelante, pues me sale una pagina en blanco de internet explorer pidiendome y que actualice, cuando yo actualizo se entra sin haber tenido en cuenta que digite el nombre de usuario, la contraseña y el codigo de la empresa.

2. estoy en las paginas realizando operaciones y por un momento pues decido irme a tomar un cafe que pues por un poco pereza me quedo 30 min, como hago para caducar o cerrar la sesion al stilo forosdelweb que despues de un tiempo de inactividad se sale del sistema y te dice que coloques de nuevo el nombre de usuario y contraseña, es decir que se valla a la pagina principal.

para la segunda opcion, pues he leido algo sobre las cookies, pero no he decido por esta opcion pues algunos usuarios no tienen activadas las cookies, pienso que es mejor manejarlo del lado del servidor.

pues les agradeceria que me orientaran un poco. mi codigo es el siguiente:


Código PHP:
<?php
$usuario
=$_POST['usuario'];
$contrasena=$_POST['contrasena'];
$empresa=$_POST['emp'];

$linka mysql_connect("localhost""root");
mysql_select_db("general",$linka);


$resulta=mysql_query("select gen_basedatos,emp_codigo from empxbase where emp_codigo='$empresa'" ,$linka);

while ( (
$datos2 mysql_fetch_array($resulta)) ) {
$empresa2=$datos2["gen_basedatos"];
$codempresa=$datos2["emp_codigo"];

}


$link mysql_connect("localhost""root");
mysql_select_db("general",$link);

$resultado=mysql_query("select u.usu_nombre,u.usu_clave,e.emp_codigo from usuario u,empresas e where u.usu_nombre='$usuario' and u.usu_clave='$contrasena' and e.emp_codigo='$codempresa'" ,$link);


$items=mysql_affected_rows($link);


if(
$items>="1")
{


session_start(); 
$_SESSION["autentificado"]= "SI"
$_SESSION["ba"]=$empresa2;
$_SESSION["usu"]="$usuario";



$l mysql_connect("localhost""root");
mysql_select_db("general",$l);

$r=mysql_query("select t.tpu_codigo from tipousuario t,usuario u where u.usu_nombre='$usuario' and t.tpu_codigo=u.tpu_codigo" ,$l);

while ( (
$rf mysql_fetch_array($r)) ) {

if (
$rf["tpu_codigo"]==1)
{

//Aqui comienza la pagina que se le muestra a Master
?>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Sistema de informacion para la administracion y mantenimiento de activos (SIMA)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<frameset rows="80,*" cols="*" frameborder="yes" border="1" framespacing="1" bordercolor="#000000">
  <frame src="header.php" name="topFrame" scrolling="NO" noresize >
  <frameset rows="*" cols="229,*" framespacing="0" frameborder="NO" border="0" bordercolor="#C0C0C0">
    <frame src="linkm.php" name="leftFrame" scrolling="NO" noresize>
    <frame src="body.php" name="mainFrame">
  </frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>


<?

//cierre del primer if osea de master

//Aqui comienza la pagina que se le muestra a Directivo

if ($rf["tpu_codigo"]==2)
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Sistema de informacion para la administracion y mantenimiento de activos (SIMA)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<frameset rows="80,*" cols="*" frameborder="yes" border="1" framespacing="1" bordercolor="#000000">
  <frame src="header.php" name="topFrame" scrolling="NO" noresize >
  <frameset rows="*" cols="229,*" framespacing="0" frameborder="NO" border="0" bordercolor="#C0C0C0">
    <frame src="linkd.php" name="leftFrame" scrolling="NO" noresize>
    <frame src="body.php" name="mainFrame">
  </frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>


<?

//cierre del if tipo de usuario 2

//Aqui comienza la pagina que se le muestra a Administrador

if ($rf["tpu_codigo"]==3)
{

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Sistema de informacion para la administracion y mantenimiento de activos (SIMA)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<frameset rows="80,*" cols="*" frameborder="yes" border="1" framespacing="1" bordercolor="#000000">
  <frame src="header.php" name="topFrame" scrolling="NO" noresize >
  <frameset rows="*" cols="229,*" framespacing="0" frameborder="NO" border="0" bordercolor="#C0C0C0">
    <frame src="linka.php" name="leftFrame" scrolling="NO" noresize>
    <frame src="body.php" name="mainFrame">
  </frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>

<?
//cierre del tipo de usuario 3

//Aqui comienza la pagina que se le muestra a Coordinador

if ($rf["tpu_codigo"]==4)
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Sistema de informacion para la administracion y mantenimiento de activos (SIMA)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<frameset rows="80,*" cols="*" frameborder="yes" border="1" framespacing="1" bordercolor="#000000">
  <frame src="header.php" name="topFrame" scrolling="NO" noresize >
  <frameset rows="*" cols="229,*" framespacing="0" frameborder="NO" border="0" bordercolor="#C0C0C0">
    <frame src="linkc.php" name="leftFrame" scrolling="NO" noresize>
    <frame src="body.php" name="mainFrame">
  </frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>


<?

//cierre del if tipo de usuario 4

//Aqui comienza la pagina que se le muestra a Clientes

if ($rf["tpu_codigo"]==5)
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Sistema de informacion para la administracion y mantenimiento de activos (SIMA)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<frameset rows="80,*" cols="*" frameborder="yes" border="1" framespacing="1" bordercolor="#000000">
  <frame src="header.php" name="topFrame" scrolling="NO" noresize >
  <frameset rows="*" cols="229,*" framespacing="0" frameborder="NO" border="0" bordercolor="#C0C0C0">
    <frame src="linku.php" name="leftFrame" scrolling="NO" noresize>
    <frame src="body.php" name="mainFrame">
  </frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>


<?

//cierre del if tipo de usuario 5


//cierre del while de tipo de usuario
//cierre del if de identificacion del tipo de usuario
else
{
?>
<SCRIPT LANGUAGE="javascript"> 
location.href = "index2.php"; 
alert('El Usuario o Contraseñas Digitadas son Incorrectos!!!');
</SCRIPT>

<?
}
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria

Última edición por Cluster; 27/06/2006 a las 09:11
  #5 (permalink)  
Antiguo 27/06/2006, 09:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
1) Ese tipo de problemas se originan cuando dejas el flujo del código tras una ejecución en la misma página.

Es decir .. si tu tienes un proceso X donde recibes variables externas al script (desde un formulario .. por ejemplo) debes redireccionar al terminar ese proceso a otro script (o a si mismo en otro proceso).
Código PHP:
// proceso PHP .. insercción de datos en tus BBDD .. etc ..
header ("Location: pagina.tal");
exit; 
(no lo hagas con javascript!!!)

Cita:
2. estoy en las paginas realizando operaciones y por un momento pues decido irme a tomar un cafe que pues por un poco pereza me quedo 30 min, como hago para caducar o cerrar la sesion al stilo forosdelweb que despues de un tiempo de inactividad se sale del sistema y te dice que coloques de nuevo el nombre de usuario y contraseña, es decir que se valla a la pagina principal.
PHP define el tiempo de vida de una sesión en forma general a toda sesión generada por el servidor bajo la directiva: session.gc_maxtimelife (suele ser 24 minutos= 1440 segundos) y va en conjunto con la forma de propagar del SID en tu aplicación: cookies o URL (pues las cookies que PHP genera tambien tienen su tiempo de expiración). El "control" de esa sesión es a nivel general como veras (no independiente por sesión creada).

Si tu validas la existencia de tus variables de sesión puedes ver cuando se acabó dicho tiempo en la próxima iteracción con el servidor:
Código PHP:
if (empty($_SESSION['ba'])){
  
header ("Location: login.php");
  exit;

Este tipo de validaciones no se vé en tu código donde las haces .. es decir, no se vé donde usas esas variables de sesión (por lo menos en ese script .. no sé si lo harás en los scripts que llamas en tus iframes/frames a su vez .. debes hacer ese tipo de validación también ahí . .en esos scripts).

Cita:
para la segunda opcion, pues he leido algo sobre las cookies, pero no he decido por esta opcion pues algunos usuarios no tienen activadas las cookies, pienso que es mejor manejarlo del lado del servidor.
Creo que no te has dado cuenta . .pero si tu no propagas el SID en el URL manualmente o usas session.use_trans_sid = ON (en tu php.ini) estás propagando el SID en cookies!!!!.

Es un "mito" que las sesiones no usan cookies. Es cierto que los "valores" de tus variables de sesión se almacenan en el servidor .. pero el "SID" (Identificador único de sesión) que es parte fundamental del funcionamiento de las sesiones en PHP se puede propagar por el URL o por Cookies (por Cookies es lo recomendable por seguridad vs a que un usuario tuyo no acepte una cookie que povenga de tu sitio de confianza).



Por otro lado .. en general se ven algunos detallitos de programación en forma incorrecta. Por script deberías conectar una vez a tus BBDD y seleccionar la BBDD no hacerlo várias veces. Si sólo te conectas a una misma BBDD simpre .. no es necesario "re-conectarte" constantemente ni seleccionar la misma BBDD una y otra vez a lo largo del script.

Estas variables:
$_SESSION["autentificado"]= "SI";
$_SESSION["ba"]=$empresa2;
$_SESSION["usu"]="$usuario";

sobre todo la que dice "autentificado" .. no tiene sentido ese consumo de esa variable cuando ya propagas en la misma sesión otras dos o más variables siempre. Es decir, en tus validaciones usa esa variable "ba" o la otra por su existencia (no es necesario una variable más para validar si la sesión existe).


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 27/06/2006, 14:11
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
atras y adelante

muy bien cluster, pues utilice el header como recomendacion y funciono, pero pues todavia sigo con la duda de como no dejar que se devuelvan con los botones de atras y adelante es decir:

estoy en mi pagina index, digito mi nombre de usuario y contraseña y codigo de empresa, bueno, si todo esta correcto muestro una pagina dependiendo del tipo de usuario.

nota: la autenticacion la hago en la segunda pagina y no en la misma que se encuentra en formulario que seria con php_self.

ahora bien ya estoy logeado y estoy haciendo mis operaciones, bueno pues si yo me devuelvo hacia detras hasta el formulario index(el del formulario) y despues le doy adelante pues me sale la pantalla esa que dice que ha caducado y que pues de actualizar, yo actualizo con F5 y pues ingresa sin haber colocado ni el usuario,ni la contraseña ni el codigo de la empresa, que hago en ese caso??.

bueno a lo que tu me decias las variables de sesion la utilizo en otros formularios y pues en los otros yo utilizo la sesion si autentificado es igual a si lo deja pasar si no se va a principal, el problema es con este formulario.

por fa pegame una ayudadita maestro.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #7 (permalink)  
Antiguo 27/06/2006, 14:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa este mensaje sobre el tema de caducidad de tus páginas:

http://www.forosdelweb.com/f18/problema-con-sesiones-ii-404990/

Cita:
bueno a lo que tu me decias las variables de sesion la utilizo en otros formularios y pues en los otros yo utilizo la sesion si autentificado es igual a si lo deja pasar si no se va a principal, el problema es con este formulario.
Mi comentario al respecto sólo hacía referencia a que defines una variable de sesión que según mi punto de vista no tiene sentido pues ya defines otras variables de sesión que siempre propagas en una variable de sesión .. por ende esa variable estaría de más ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 28/06/2006, 07:43
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Sonrisa mensajes de error

Bueno, ahora si que estuve leyendo he interpretando un poco tu atentificador que pues esta muy bueno, sobre todo la parte donde cierra la sesion me parace de las mejores que he visto, si no es la mejor y aun mejor en español.

ahora bien se me presenta un problema y es que yo trabajo con marcos, uno arriba, uno a la izquierda y un mainframe que es donde se despliega contenido.

cuando quiero mostrar los mensajes de error en el lado izquierdo no puedo hacerlo. por esto:

Header ("Location: index2.php?error_login=2");

donde index2 es la pagina toda compuesta de estos tres marcos, en la barra de direcciones me sale el error pero el mensaje no me sale del lado izquierdo.

si yo cambio por esta linea:

Header ("Location: link2.php?error_login=2");

pues me redirecciona al lado izquierdo me muestra en todo el explorador la pagina y sale el error, que puedo hacer alli???

hay alguna forma de mandar a la pagina index2.php y que ese error login lo capture link2.php para que salga alli el mensaje por ejemplo: el nombre de usuario es incorrecto.

bueno espero su colaboracion.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #9 (permalink)  
Antiguo 28/06/2006, 07:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tendrías que manejar el tema con redireccionamientos en javascript para poder indicar el "target" (el frame) al que apuntaras el proceso .. Realmente no es lo más seguro.

La otra cosa que puedes hacer es trabajar con los "target" del formulario de login que uses .. apuntarlo al frame que corresponda y ahí tomar el código que evalua si existe la variable "error_login" para procesar su mensaje de error.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 28/06/2006, 08:46
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
si yo estuve pensando lo mismo, pero es que no se implementar un target dentro del header, por recomendacion tuya ya no redirecciono con javascript, sino con el header, bueno yo quiero mandar el mensaje de error al marco que esta en la parte izquierda este se llama link2.php y la general se llama index2.php ahora bien hago esto:

Header ("Location: link2.php?error_login=2");

pero donde va el target alli??

podria hacer algo como esto:

Header ("Location: link2.php?error_login=2 target='leftFrame'");

como implementaria algo parecido???

PD: se que es algo ilogico por que el uno es javascript y lo otro php, pero como haria esto??
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #11 (permalink)  
Antiguo 28/06/2006, 09:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No, .. no es un "target" dentro del header() entre otras cosas por qué la función header() te permite enviar cabeceras HTTP y dentro del protocolo HTTP no está considerado "frames" pues eso es cosa integramente controlada por HTML y de como se ejecutan las páginas en el cliente (navegador) .. sino en tu formulario (definición)

<form action="nose.php" method="post" target="nombre_frame">
etc ...

Y lo otro es que uses javasacript para redireccionar, .. (en tu código de ejemplo por ahí hacías una redireccion en javacript .. si tienes dudas al respecto consulta en el foro de Javascript)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 28/06/2006, 10:42
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
no toma valor el GET

lo que pasa es que cuando el hace la comprobacion en la pasa lo siguiente:

<?
// Mostrar error de Autentificación.
include ("aut_mensaje_error.inc.php");
if (isset($_GET['error_login'])){
$error=$_GET['error_login'];
echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Error: $error_login_ms[$error]";
}
?>

esto es parte del frame izquierdo aqui tambien estan los input text donde se digitan el nombre de usuario,la contraseña y el codigo de la empresa, bueno en la otra pagina yo aplico esto:

Header ("Location: index2.php?error_login=2");

pero resulta que ese valor esta llegando a la pagina general no a la que hace referencia a link2.php.

si yo coloco:

Header ("Location: link2.php?error_login=2");

pues si me llegan los valores y hasta me dice que el nombre de usuario es invalido, pero ocupa pues todo el internet explorer y no como parte de un frame de la pagina index2.php

trato de hacer algo con javascript pero no logro conseguir los resultados deseados.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #13 (permalink)  
Antiguo 28/06/2006, 11:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, Ok .. bueno .. creo que irremediablemente tendras que redireccionar con javascript para poder definir el target al que redireccionas o recargas tal frame con tal URL .. (consulta en el foro de Javascript)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 28/06/2006, 11:24
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Sonrisa con script

bueno hice lo siguiente para mostrar el mensaje aunque no es lo mas optimo:

<script>
alert("El Usuario Digitado es Incorrecto");
document.location ="index2.php";
</script>

pues cuando ingresa un usuario que no corresponde, que no esta en la base de datos(en la tabla mejor) pues bien le manda un alert y despues que uno presiona en el boton el pues redirecciona a principal.

mi principal es index2.php

yo lo queria hacer de la otra forma, pero mientras es una buena solucion y ya le he probado la seguridad y vale, por que no se totea!!, jejjejejje, ni tiene falla de seguridad, hablando de esto, sabes algo de sql injection y de como arreglar esta falla a la hora de validar los datos hay algo que ayude alguna funcion en php que ayude a mejorar esta parte, he oido acerca de meter solo entre comillas simples los datos en la consulta es algo riesgozo pues no se que cosa en sql se concatena con algo y deja entrar al sistema y otras cuestiones, que he de tener en cuenta????
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #15 (permalink)  
Antiguo 28/06/2006, 11:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
sabes algo de sql injection y de como arreglar esta falla a la hora de validar los datos hay algo que ayude alguna funcion en php que ayude a mejorar esta parte, he oido acerca de meter solo entre comillas simples los datos en la consulta y otras cuestiones, que he de tener en cuenta????
En principio para evitar posibles problemas de este estilo deberías usar en todo dato que ataque a tus consultas SQL la función:

Un ejemplo:

Código PHP:
$sql="SELECT FROM tabla WHERE campo ='".mysql_real_escape_string($_POST['variable'])."'"
Sobre todo con las variables "externas"

Te recomiendo la lectura de este documento que trata sobre seguridad en general (aplicada a PHP):

http://phpsec.org/projects/guide/

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 29/06/2006, 10:33
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Sonrisa eso estuvo genial!!!!!

bueno eso estuvo genial, ya todo me funciona perfecto.

y tambien lo de la funcion esta buena.

gracias cluster, como siempre,genio y maestro.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
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 07:10.