Foros del Web » Programando para Internet » PHP »

Consulta sobre sesiones

Estas en el tema de Consulta sobre sesiones en el foro de PHP en Foros del Web. Hola,como puedo indicar en una sesion,que todo lo que se realize en ella,sea relacionado con el usuario,que esta en el sistema,me explicare mejor con un ...
  #1 (permalink)  
Antiguo 10/03/2006, 23:12
jak
 
Fecha de Ingreso: septiembre-2005
Mensajes: 39
Antigüedad: 18 años, 7 meses
Puntos: 0
Consulta sobre sesiones

Hola,como puedo indicar en una sesion,que todo lo que se realize en ella,sea relacionado con el usuario,que esta en el sistema,me explicare mejor con un ejemplo:

En mi base de datos ingrese a dos vendedores:
Código:
Vendedor1
Vendedor2
ahora cada vendedor ingresara clientes ,y siguiendo el ejemplo ,este seria el caso:


Vendedor1:ingreso al cliente
Código:
Empresa1
Empresa2
y el siguiente vendedor,ingreso sus clientes:

Código:
Empresa3
Empresa4
por la cual la relacion quedaria de esta manera:

Código:
Vendedor1:
Empresa1
Empresa2
Código:
Vendedor2:
Empresa3
Empresa4
Ahora cuando el vendedor1,ingrese al sistema e inicie su sesion y realize una consulta,en el listbox deberia aparecer:
Código:
Empresa1
Empresa2
Y en el caso de que el vendedor2,ingrese al sistema e inicie sesion,y luego realize una consulta solo deberia aparecer:
Código:
Empresa3
Empresa4
Es aqui donde tengo el problema,ya que al iniciar sesion con el vendedor1,y luego realizar una consulta,en el listbox,me aparece:
Código:
Empresa1
Empresa2
Empresa3
Empresa4
Y si realizo el mismo procedimiento con el vendedor2,sucede lo mismo.

Esto no deberia suceder,ya que el vendedor1,solo ingreso al cliente:Empresa1 y Empresa2.y no ha Empresa3 y Empresa4.

Ahora mi consulta es la siguiente,dentro de una sesion,¡¿como puedo solucionar este problema y conseguir lo que describo en el ejemplo?
O debo realizar algo,en el momento que ingreso un cliente,
Gracias

Aqui posteo el codigo que tengo para iniciar mi sesion:
Código:
<?php

//datos que se reciben desde el login.php
$rut    =$_POST["rut"];
$clave = $_POST["clave"];

//conecto con la base de datos
$conn = mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("ventas",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM password WHERE pass_rut_persona='$rut' and usu_password='$clave'";

//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es válido

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";


/*Este switch lo utilizo,para recibir los valores desde el php de login,en el cual se registra un vendedor o cliente*/

   switch($_POST["valor"])
    {
   case 1:
include ("/wamp/www/sistema_ventas/portales/portal_vendedor/portal.php");
   break;
      }

    }else {
    //si no existe le mando otra vez a la portada
    header("Location:/sistema_ventas/logins/login_vendedor.php?errorusuario=si");

    }
mysql_free_result($rs);
mysql_close($conn);
// header ("Location: /sistema_ventas/portales/portal_vendedor/portal.php");
?>


Este es el modelo de mi base de datos,y lo posteo,para que se me entienda la duda que tengo o si necesito realizar alguna modificacion,para conseguir lo que necesito.
  #2 (permalink)  
Antiguo 10/03/2006, 23:49
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 1
podrias hacer que al momento en que un vendedor ingresa los datos de la empresa, tambien se ingrese quien fue el vendedor registrante de esa empresa (cliente). Deberías hacer en la tabla de vendedores un campo de ID. Entonces cuando un vendedor de X ID se conecte, haces que muestre los resultados de la tabla clientes donde el ID registrante sea el mismo del que inicio sesison.
  #3 (permalink)  
Antiguo 10/03/2006, 23:58
jak
 
Fecha de Ingreso: septiembre-2005
Mensajes: 39
Antigüedad: 18 años, 7 meses
Puntos: 0
gracias nachoo por responder.

Pero en la tabla vendedores,mi clave primaria es el rut,o te refieres a que deba agregar otro campo ID y luego enviarlo desde el login php,hacia mi archivo,en donde inicio la sesion,pero en el php que inicio la sesion,como deberia dejar mi sentencia sql,para que el ID registrante o rut en mi caso sea el mismo del que inicio sesion?,ya que esta parte me tiene algo confundido.
gracias.
  #4 (permalink)  
Antiguo 11/03/2006, 00:13
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 1
Agrega el campo "id" en usuarios. Es mas facil cuando cada usuario tiene su propio id. Y tambien, en la tabla de clientes agrega un campo que se llame por ejemplo "idvendedor".
Bien, cuando te logueas como vendedor, luedo de que hiciste el session_start() agrega una variable global de session que sea $_SESSION[id]
Entonces, en la parte del logueo cuando inicias sesion quedaria:
Código PHP:
<?
//vemos si el usuario y contraseña es válido

if (mysql_num_rows($rs)!=0){
    
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    
session_start();
    
$_SESSION[id]= $rs[id];
    
session_register("autentificado");
    
$autentificado "SI";
?>
Esto lo que hace es asignarle el id a la sesion que comienza.

Ahora, cuando entraste como usuario y queres que te muestre los clientes que agrego este vendedor, en la consulta a la BD de clientes agrega al final WHERE idvendedor = '$_SESSION[id]'

No se si se entiende, algo asi podrias hacer, cualquier cosa, mostrame el codigo que hace la consulta de las empresas registradas.

Saludos!
  #5 (permalink)  
Antiguo 11/03/2006, 03:15
Avatar de laaccaal  
Fecha de Ingreso: julio-2003
Ubicación: Murcia
Mensajes: 147
Antigüedad: 20 años, 9 meses
Puntos: 1
Para no modificar mucho tu trabajo podrias usar tu "session_register('autentificado')" como un array;

session_start();
session_register("autentificado");

$autentificacion["autentificacion"]="si";
$autentificacion["user"]=$rut;

Espero que te sea util.

Nota: verifica la veracidad de datos que recibes en tu Post porque al campo de usuario podrian agregarle sql que funcione en el query de verificacion de usuario.

bye
__________________
Album Fotos
Blog MisApuntes
  #6 (permalink)  
Antiguo 11/03/2006, 21:36
jak
 
Fecha de Ingreso: septiembre-2005
Mensajes: 39
Antigüedad: 18 años, 7 meses
Puntos: 0
gracias nacho00 y laaccaal,por responder,pero esto realizo en mi php,donde valido la sesion.

nacho00 estos cambios realize,y tambien agrego el codigo,para consultar clientes.
Tambien ese campo idvendedor,que agregare a la tabla cliente,lo debo dejar como foranea o primaria,y en realidad ese campo,sera para relacionar la tabla de vendedores con la tabla clientes,estoy en lo correcto?
gracias
Código PHP:
<?php
$id    
=$_POST["id"];
$clave $_POST["clave"];

//conecto con la base de datos
$conn mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("ventas",$conn);

/*Sentencia SQL para buscar un usuario con esos datos,si los datos son correctos podra acceder al sistema,si son incorrecto sera enviado al login*/

$ssql "SELECT * FROM password WHERE id='$id' and usu_password='$clave'";

//Ejecuto la sentencia
$rs mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es válido

if (mysql_num_rows($rs)!=0){
    
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    
session_start();
    
$_SESSION[id]=$rs[id];
    
session_register("autentificado");
    
$autentificado "SI";
   
// header ("Location: /sistema_ventas/portales/portal_vendedor/portal.php");

   
switch($_POST["valor"])
    {
   case 
1:

   include (
"/wamp/www/sistema_ventas/portales/portal_vendedor/portal.php");
   break;
      }

    }else {
    
//si no existe le mando otra vez a la portada
    
header("Location:/sistema_ventas/logins/login_vendedor.php?errorusuario=si");

    }
mysql_free_result($rs);
mysql_close($conn);
// header ("Location: /sistema_ventas/portales/portal_vendedor/portal.php");
?>
Aqui realizo la consulta,para mostrar los clientes que pertenezcan solo al vendedor,que los ingreso.Pero al momento de realizar la consulta,en el listbox,no me muestra ningun valor,por lo que veo no llega el valor que tiene esta variable '$_SESSION[id]' a la pagina de consulta de cliente.
Cual puede ser el problema?, o como hago,para que llegue el valor de esa variable a la pagina de consulta.

Código PHP:
  
<html>
 <head>
 <LINK REL="stylesheet" TYPE="text/css" HREF="/sistema_ventas/estilo/estilo.css">
 <SCRIPT src="/sistema_ventas/validaciones/cliente/validacion.js"></SCRIPT>
 <title>pedido-ingreso</title>


</head>
<table cellspacing="2" cellpadding="2" align=center border=1 align=center>
<FORM name=formu action="proceso.php" method="POST">

<?php

include("/wamp/www/sistema_ventas/conexion/conexion.php");

$sSQL="select cli_rut_empresa as Rut,cli_nom_empresa as Empresa,
       cli_comuna as Comuna

       from
     
      cliente,

      where   idvendedor = '$_SESSION[id]'"
;

$result=mysql_db_query("ventas",$sSQL);

echo 
"<tr>
<td>
Nombre Empresa * :
</td>"
;

echo 
"<td><select name='nombre'>";



$row=mysql_fetch_array($result);

while (
$row=mysql_fetch_array($result))
{

echo 
"<option value=".$row['id'].">"." ".$row['Empresa']." ".$row['Comuna']."</option>";
}

mysql_free_result($result);
echo 
"</select>";
mysql_close();
?>
<?php
echo "
     </td>
    </tr>"
;?>

Última edición por jak; 11/03/2006 a las 23:34
  #7 (permalink)  
Antiguo 12/03/2006, 01:33
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 1
Proba agregando esta consulta a la BD. Ya que cuando hace mysql_num_rows solo cuenta la cantidad de registros y no toma los datos de esos registros. Entonces, intenta agregando esta consulta si la que realizaste es correcta:

Código PHP:
<?
//Consulta para tomar el ID
$resultadomysql_query("SELECT * FROM password WHERE id = '$id'",$conexion);
$rowmysql_fetch_array($resultado);
?>

El codigo quedaria algo asi...


Código PHP:
<?php
$id    
=$_POST["id"];
$clave $_POST["clave"];

//conecto con la base de datos
$conn mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("ventas",$conn);

/*Sentencia SQL para buscar un usuario con esos datos,si los datos son correctos podra acceder al sistema,si son incorrecto sera enviado al login*/

$ssql "SELECT * FROM password WHERE id='$id' and usu_password='$clave'";

//Ejecuto la sentencia
$rs mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es válido

if (mysql_num_rows($rs)!=0){

//Consulta para tomar el ID
$resultadomysql_query("SELECT * FROM password WHERE id = '$id'",$conexion);
$rowmysql_fetch_array($resultado);

    
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    
session_start();
    
$_SESSION[id]=$row[id];
    
session_register("autentificado");
    
$autentificado "SI";
   
// header ("Location: /sistema_ventas/portales/portal_vendedor/portal.php");

   
switch($_POST["valor"])
    {
   case 
1:

   include (
"/wamp/www/sistema_ventas/portales/portal_vendedor/portal.php");
   break;
      }

    }else {
    
//si no existe le mando otra vez a la portada
    
header("Location:/sistema_ventas/logins/login_vendedor.php?errorusuario=si");

    }
mysql_free_result($rs);
mysql_close($conn);
// header ("Location: /sistema_ventas/portales/portal_vendedor/portal.php");
?>
Con esto vas a poder pasar el valor de la variable id a la otra pagina y ese pagina va a poder tomarlo.
  #8 (permalink)  
Antiguo 12/03/2006, 17:57
jak
 
Fecha de Ingreso: septiembre-2005
Mensajes: 39
Antigüedad: 18 años, 7 meses
Puntos: 0
Hola,aun no puedo enviar el valor del id a todas las paginas de mi sistema,para realizar lo que deseo,con el inicio de sesion,de cada vendedor,ya que el valor del id,solo llega a la pagina de comprobacion del login.

En esta pagina de comprobacion del login,he realizado lo que me dices.
Código PHP:
<?php
$id    
=$_POST["id"];
$clave $_POST["clave"];

//conecto con la base de datos
$conn mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("ventas",$conn);

/*Sentencia SQL para buscar un usuario con esos datos,si los datos son correctos podra acceder al sistema,si son incorrecto sera enviado al login*/

$ssql "SELECT * FROM password WHERE id='$id' and usu_password='$clave'";

//Ejecuto la sentencia
$rs mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es válido

if (mysql_num_rows($rs)!=0){

//Consulta para tomar el id
$resultadomysql_query("SELECT * FROM password WHERE id='$id'",$conn);
$rowmysql_fetch_array($resultado);

    
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    
session_start();

    
$_SESSION['id']=$row['id'];
    
session_register("autentificado");
    
$autentificado "SI";


   switch(
$_POST["valor"])
    {
   case 
1:

   include (
"/wamp/www/sistema_ventas/portales/portal_vendedor/portal.php");
   break;
      }

    }else {
    
//si no existe le mando otra vez a la portada
    
header("Location:/sistema_ventas/logins/login_vendedor.php?errorusuario=si");

    }
mysql_free_result($rs);
mysql_close($conn);

?>
Ha esta pagina,redirecciono desde el switch,en caso que el usuario que ingreso id y password sea correcto.Esta pagina portal.php,esta divida en tres partes,una es un menu al izquierdo en donde selecciono las opciones de mi sistema,la parte principal es donde aparecen las opciones,y en la parte de arriba una imagen.

Código:
<HTML>
<HEAD>
<TITLE>Sistema de pedidos</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="/sistema_ventas/estilo/estilo.css">
</HEAD>
        <frameset rows="100,*" framespacing="0" border="0" frameborder="0">
            <frame name="logo" src="/sistema_ventas/portales/portal_vendedor/imagen.HTML" scrolling="no" noresize>
        <frameset cols="150,*" border=0>
                <frame name="menu" src="/sistema_ventas/portales/portal_vendedor/menu.php" scrolling="yes" noresize target="principal">
            <frame name="principal" src="/sistema_ventas/vendedor/ingreso_cliente/vendedor_ingreso_cliente.php">

</frameset>

</frameset>


<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">esta pagina utiliza marcos pero su explorador no los admite</p>
<p align="center">sitio dise�do para ser visto en Internet Explorer 5.5 o
posterior</p>


</HTML>
Esta es la pagina menu.php,coloque el enlaze con el cual ingreso a la pagina de consulta.
Código:
<table border="1" bordercolor=red cellspacing="1" width="100%" height="100%">
<tr><td width="100%" align="center" valign="middle" height="70">
<H3>MENU</H3></td></tr>
<tr><td width="100%" align="center" valign="middle2 height="70">


<H4>Cliente</H4>
<a href="/sistema_ventas/vendedor/ingreso_cliente/consulta_cliente.php" target="principal">Consultar clientes</a>


Esta pagina la selecciono desde el menu.php,el cual aparece en portal.php,aqui realizo la consulta,para mostrar los clientes que fueron ingresados por el vendedor que inicio la sesion.Pero al momento de realizar la consulta,en el listbox,no me muestra ningun valor,por lo cual no llega el valor que tiene esta variable '$_SESSION[id]' a la pagina de consulta de cliente.

Que debo hacer,para que llegue el valor de la variable id a esta pagina?


Tambien agregue el archivo seguridad.php,para mantener la seguridad de la sesion en todas las paginas de mi sistema,mas abajo agrego el codigo de seguridad.php.

La consulta que realizo funciona correctamente,ya que la probe con el phpmyadmin,tambien agregue el campo id del vendedor a mi tabla cliente,asi que mi problema es que no llega el valor del id a esta pagina.

Código PHP:
<?php
include("/wamp/www/sistema_ventas/sesion/seguridad.php");
?>

 <html>
 <head>
 <LINK REL="stylesheet" TYPE="text/css" HREF="/sistema_ventas/estilo/estilo.css">
 <SCRIPT src="/sistema_ventas/validaciones/cliente/validacion_ingreso_pedido.js"></SCRIPT>
 <title>pedido-ingreso</title>


</head>
<table cellspacing="2" cellpadding="2" align=center border=1 align=center>
<FORM name=formu action="pedido_proceso_ingreso.php" method="POST"
 onSubmit="return verificar(this);">

 <?php

include("/wamp/www/sistema_ventas/conexion/conexion.php");

$sSQL="select cli_id_empresa as id,cli_nom_empresa as Empresa,
       cli_comuna as Comuna

       from
       cliente C,
       vendedor U

  where

  C.id ='$_SESSION[id]'
  and V.id='$_SESSION[id]'"
;


$result=mysql_db_query("ventas",$sSQL);


echo 
"<tr>
<td>
Nombre Empresa * :
</td>"
;

echo 
"<td><select name='nombre'>";



$row=mysql_fetch_array($result);

while (
$row=mysql_fetch_array($result))
{

echo 
"<option value=".$row['id'].">"." ".$row['Empresa']." ".$row['Comuna']."</option>";
}

mysql_free_result($result);
echo 
"</select>";
mysql_close();
?>
<?php
echo "
     </td>
    </tr>"
;?>
seguridad.php
Código PHP:
<?
//Inicio la sesión
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
        
//si no existe, envio a la página de autentificacion
        
header("Location: /sistema_ventas/index.php");
        
//ademas salgo de este script
        
exit();
}
?>
Gracias.

Última edición por jak; 12/03/2006 a las 18:03
  #9 (permalink)  
Antiguo 12/03/2006, 22:27
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 1
jak, controla varias cosas.
Fijate que la consulta a la BD que te hicer este correctamente hecha. Otra cosa, en la validacion cambia:

session_register("autentificado");
$autentificado = "SI";

por:
$_SESSION[autentificado]= "SI";

Tambien... te acordaste de hacer que se inserte el id del vendedor en la tabla del cliente? Osea, cuando X vendedor registra X cliente en la tabla del cliente se agregue en la columna "idvendedor" el id del vendedor. Te acordas que en mi primer mensaje te dije que hagas un campo "id" para los vendedores y uno que sea "idvendedor" para los clientes? En la sentencia que usas para agregar los datos, acordate de poner que tambien se agregue el id del vendedor en el campo "idvendedor"

Otra cosa, que hace esta consulta?
Código PHP:
<?
$sSQL
="select cli_id_empresa as id,cli_nom_empresa as Empresa,
       cli_comuna as Comuna

       from
       cliente C,
       vendedor U

  where

  C.id ='$_SESSION[id]'
  and V.id='$_SESSION[id]'"

?>
ahi en la ultima parte de la consulta, el where deberia ser solamente que consulte a la columna "idvendedor" de la tabla de clientes. osea "c.idvendedor='$_SESSION[id]'"

Fijate estas cosas y avisame.

Sino, ya a lo que podemos recurrir, es a pasar el id por cookies o por el metodo GET.
  #10 (permalink)  
Antiguo 12/03/2006, 23:38
jak
 
Fecha de Ingreso: septiembre-2005
Mensajes: 39
Antigüedad: 18 años, 7 meses
Puntos: 0
Hola nachooo y gracias por la ayuda.
Este es mi nuevo modelo de la base de datos,en donde utilizo el idvendedor e idcliente,tambien la en la tabla cliente tengo el campo idvendedor,el cual se relaciona con la tabla usuarios,en donde tendre a los vendedores.ese idvendedor en la tabla usuarios es clave primaria y en la tabla cliente foranea.

Este es el modelo.



Este es el codigo de comprobacion del login,al cual le agregue lo que me dices $_SESSION['autentificado']= "SI".
Código PHP:
<?php
$id    
=$_POST["id"];
$clave $_POST["clave"];

//conecto con la base de datos
$conn mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("ventas",$conn);

/*Sentencia SQL para buscar un usuario con esos datos,si los datos son correctos podra acceder al sistema,si son incorrecto sera enviado al login*/

$ssql "SELECT * FROM password WHERE id_vendedor='$id' and usu_password='$clave'";

//Ejecuto la sentencia
$rs mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es válido

if (mysql_num_rows($rs)!=0){

//Consulta para tomar el rut
$resultadomysql_query("SELECT * FROM password WHERE id_vendedor='$id'",$conn);
$rowmysql_fetch_array($resultado);

    
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    
session_start();

    
$_SESSION['id']=$row['id'];
    
session_register("autentificado");
   
$_SESSION['autentificado']= "SI";
     switch(
$_POST["valor"])
    {
   case 
1:

   include (
"/wamp/www/sistema_ventas/portales/portal_vendedor/portal.php");
   break;
      }

    }else {
    
//si no existe le mando otra vez a la portada
    
header("Location:/sistema_ventas/logins/login_vendedor.php?errorusuario=si");

    }
mysql_free_result($rs);
mysql_close($conn);

?>

Esta consulta la utilizo,para mostrar los clientes que fueron registrados por el vendedor que inicio la sesion,y esta parte where C.id ='$_SESSION[id]'
and U.id='$_SESSION[id]'",es para relacionar la tabla cliente con la tabla usuarios(esta tendra los vendedores),ya que idvendedor en la tabla cliente es foranea.Tambien lo realizo de esta forma,ya que al dejar el where C.id ='$_SESSION[id]',de esta manera me muestra los registros con doble informacion,por ejemplo:si el vendedor 1:tiene a la empresa:lacteos,carniceria,al realizar la consulta de esa forma muestra:lacteos,lacteos,carniceria,carniceria,y no se porque sera,y por esta razon utilizo el where de esa manera,en donde relaciono las dos tablas,de esa forma la consulta funciona correctamente,ya que probe agregando un id a la tabla usuarios y el otro a la tabla cliente con el id del vendedor,y luego en la misma consulta deje el where C.id ='123'
and U.id='123'",de esa manera,osea con los datos directos que estan en la base de datos y la consulta la hizo sin problemas y mostro los clientes que registro dicho vendedor.Por lo cual el problema que tengo es porque no llega el valor del idvendedor que tengo en la sesion,hacia esta pagina.

El idvendedor lo agrego a las dos tablas.

Como debo hacerlo con GET o cookies para traspasar el valor del id,a las paginas que lo necesiten?

Código PHP:
<? 
$sSQL
="select id_cliente as id,cli_nom_empresa as Empresa, 
       cli_comuna as Comuna 

       from 
       cliente C, 
       usuarios U 

  where 

  C.id ='$_SESSION[id]' 
  and V.id='$_SESSION[id]'"
;  
?>
  #11 (permalink)  
Antiguo 13/03/2006, 00:24
jak
 
Fecha de Ingreso: septiembre-2005
Mensajes: 39
Antigüedad: 18 años, 7 meses
Puntos: 0
nacho004 muchas gracias por la ayuda,ya logre solucionar el problema que tenia con tus consejos,lo solucione agregando esto a mis paginas php,en las cuales,debe mostrar solo los clientes ingresados por el vendedor a cargo:


Este es el script de comprobacion de login
Código PHP:
<?php 
$id    
=$_POST["id"]; 
$clave $_POST["clave"]; 

//conecto con la base de datos 
$conn mysql_connect("localhost","root",""); 
//selecciono la BBDD 
mysql_select_db("ventas",$conn); 

/*Sentencia SQL para buscar un usuario con esos datos,si los datos son correctos podra acceder al sistema,si son incorrecto sera enviado al login*/ 

$ssql "SELECT * FROM password WHERE id_vendedor='$id' and usu_password='$clave'"

//Ejecuto la sentencia 
$rs mysql_query($ssql,$conn); 

//vemos si el usuario y contraseña es válido 

if (mysql_num_rows($rs)!=0){ 

//Consulta para tomar el rut 
$resultadomysql_query("SELECT * FROM password WHERE id_vendedor='$id'",$conn); 
$rowmysql_fetch_array($resultado); 

    
//usuario y contraseña válidos 
    //defino una sesion y guardo datos 
    
session_start(); 

    
$_SESSION['id']=$row['id']; 
    
session_register("autentificado"); 
   
$_SESSION['autentificado']= "SI"
     switch(
$_POST["valor"]) 
    { 
   case 
1

   include (
"/wamp/www/sistema_ventas/portales/portal_vendedor/portal.php"); 
   break; 
      } 

    }else { 
    
//si no existe le mando otra vez a la portada 
    
header("Location:/sistema_ventas/logins/login_vendedor.php?errorusuario=si"); 

    } 
mysql_free_result($rs); 
mysql_close($conn); 

?>
Pagina de consultas de clientes,le agregue estas lineas al principio de la pagina:
<?php
session_start();
echo $_SESSION['autentificado'];
?>
con la cual inicio la sesion del cliente que inicio su sesion en el sistema,entonces quedaria asi
Código PHP:
<?php
session_start
();
echo 
$_SESSION['autentificado'];
?>
<?php 
include("/wamp/www/sistema_ventas/sesion/seguridad.php"); 
?> 

 <html> 
 <head> 
 <LINK REL="stylesheet" TYPE="text/css" HREF="/sistema_ventas/estilo/estilo.css"> 
 <SCRIPT src="/sistema_ventas/validaciones/cliente/validacion_ingreso_pedido.js"></SCRIPT> 
 <title>pedido-ingreso</title> 


</head> 
<table cellspacing="2" cellpadding="2" align=center border=1 align=center> 
<FORM name=formu action="pedido_proceso_ingreso.php" method="POST" 
 onSubmit="return verificar(this);"> 

 <?php 

include("/wamp/www/sistema_ventas/conexion/conexion.php"); 

$sSQL="select cli_id_empresa as id,cli_nom_empresa as Empresa, 
       cli_comuna as Comuna 

       from 
       cliente C, 
       usuarios U 

  where 

  C.id ='$_SESSION[id]' 
  and U.id='$_SESSION[id]'"



$result=mysql_db_query("ventas",$sSQL); 


echo 
"<tr> 
<td> 
Nombre Empresa * : 
</td>"


echo 
"<td><select name='nombre'>"



$row=mysql_fetch_array($result); 

while (
$row=mysql_fetch_array($result)) 


echo 
"<option value=".$row['id'].">"." ".$row['Empresa']." ".$row['Comuna']."</option>"


mysql_free_result($result); 
echo 
"</select>"
mysql_close(); 
?> 
<?php 
echo 
     </td> 
    </tr>"
;?>
  #12 (permalink)  
Antiguo 13/03/2006, 15:45
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 1
Ahh bien! estaba por decirte que tenias que poner session_start() al comienzo de todo, pero vi que llamabas a seguridad.php y este lo incluia, pense que lo tomaria pero no era asi. Ese session_atart() es para continuar (cuando se haya iniciado ya) una sesion, entonces te continua el valor de la variable id.

Espero que funcione muy bien el sitio!

Saludos!
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 09:14.