Foros del Web » Programando para Internet » PHP »

Pasar el id de un usuario

Estas en el tema de Pasar el id de un usuario en el foro de PHP en Foros del Web. Buenas tardes: A ver si alguien puede ayudarme en lo siguiente: Tengo una página mediante la cual los usuarios tienen que acceder a documentos que ...
  #1 (permalink)  
Antiguo 23/06/2008, 10:12
 
Fecha de Ingreso: agosto-2005
Mensajes: 70
Antigüedad: 18 años, 8 meses
Puntos: 0
Pasar el id de un usuario

Buenas tardes:

A ver si alguien puede ayudarme en lo siguiente:

Tengo una página mediante la cual los usuarios tienen que acceder a documentos que se encuentran en carpetas que se han creado con el id de usuario.

A través de un panel interno el administrador sube los archivos a dichas carpetas y los elimina.

Cómo puedo pasar el id de cada usuario desde la página de acceso, para que luego se puedan listar los archivos de cada carpeta y mas tarde mostrarlos en pantalla.

El código de la página de acceso es el siguiente:


El formulario:

Código PHP:

<? 
$usuario 
$_POST['usuario'];
$contrasena $_POST['contrasena'];

if(!isset(
$_POST['usuario'])&&!isset($_POST['contrasena']))
{
?> 
<div id="general">            
    <div id="cabecera">        
    <form name="form1" method="post" action="restringido/validar.php">
    <div class="Estilo11"><label for="usuario">USUARIO:</label>
     ********<input name="usuario" type="text" class="Estilo12" id="usuario" size="16" /></div>
    <div class="Estilo11"><label for="contrasena">CONTRASEÑA:</label>
    <input name="contrasena" type="password" class="Estilo12" id="contrasena" size="16" />
    <input type="submit" name="submit" value="Enviar" class="Estilo12" /></div>     
    </form>

<?
}
?>
La validación:

Código PHP:

<? 
//conecto con la base de datos
include ("../includes/config.php");
include (
"../includes/funciones.php");
$cnx =conectar();

//Sentencia SQL para buscar un usuario con esos datos
$sql "SELECT * FROM usuarios WHERE usuario='$usuario' and contrasena='$contrasena'"
$res=mysql_query($sql) or die("Error en el servidor");
if(
mysql_num_rows($res) > 0){ 
//        Si los datos con correctos .... 
   
       //        Inicio la sessión (o la recupero si está definida)
    
session_start(); 
    
session_register("control_sitio");
    
$control_sitio $_SESSION['control_sitio']; 
    
    
//        asigno el valor de OK a la variable de control
    
$control_sitio["estado"] = "OK";     
    
    
//        Guardo el nombre de usuario ingresado
    
$control_sitio["usuario"] =$_POST["usuario"];
    
    
//        Recupero la URL desde donde originalmente se produjo el error de ingreso
    
$url $control_sitio["URL_ACCESO"];
    
    
//        Guardo nuevamente en la sessión ...y redirecciono a la página desde donde 
    //        el usuario intentó ingresar originalmente
    
$_SESSION['control_sitio']=$control_sitio
    
header ("Location: documento.php"); 
}else { 
    
//        Esto es si los datos no son correctos
    
header("formulario.php"); 

?>
Mil gracias.
  #2 (permalink)  
Antiguo 23/06/2008, 10:14
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Pasar el id de un usuario

hola.

porque no los colocas en variables de session de esa manera tienes acceso a ellos donde los necesites.?

SALUDOS:::
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 23/06/2008, 10:25
 
Fecha de Ingreso: agosto-2005
Mensajes: 70
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Pasar el id de un usuario

Por favor:
Podría explicarmelo con algún ejemplo?

Gracias
  #4 (permalink)  
Antiguo 23/06/2008, 10:27
 
Fecha de Ingreso: marzo-2004
Ubicación: España
Mensajes: 185
Antigüedad: 20 años, 1 mes
Puntos: 19
Respuesta: Pasar el id de un usuario

hola lyra le te ha dicho lo que necesitas, viendo tu respuesta tu no has hecho el script que no has mostado. sui lo ahs hehco ut sabrás lo que son las variables de sesion y como crearlas, si no lo has hecho tu, busca un tutorial de sesiones en php, hay miles, un saludo
__________________
Escape Room -

Ios Games
  #5 (permalink)  
Antiguo 25/06/2008, 05:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 70
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Pasar el id de un usuario

Hola cybersersupremo:

Como me dijiste me puse a mirar lo de las variables de sesión y el código resultante es el que os muestro a continuación.

Código PHP:
Esto me lista los archivos de cada cliente y funciona. Lo único que el href para ver el documento no le llega el "$param". Me da el siguiente mensaje:

The requested URL [B]/presupuestos//prueba.pdf [/B]was not found on this server. Es que no lee la carpeta del usuario. 

Qué me falta?

<?
include ("../includes/config.php");
include (
"../includes/funciones.php");
$cnx =conectar();

$sql="SELECT id,usuario FROM usuarios";
$res mysql_query($sql,$cnx) or die (mysql_error());

while(
$fila mysql_fetch_array ($res)){
 if(
$fila["usuario"]== $control_sitio["usuario"]){ 
  
$param $fila["id"];
  echo 
"$param";     // Hasta aquí llega el param y lo imprime.
  
function leerDirectorio($cual
 {
  
$directorio opendir($cual);
  while (
$item_del_directorio readdir($directorio))
   {
    
$archivos[] = $item_del_directorio;
   }
  
  
closedir($directorio);
  return 
$archivos;
 }
 

function 
generarReporte($directorio)
{
//  Leo los archivos del directorio
 
$archivos_en_directorio leerDirectorio($directorio);
 
//  bucle para listar el contenido
 
 
 
foreach($archivos_en_directorio as $archivo)
 {
  if(
$archivo != "." && $archivo != ".." && $archivo != "Thumbs.db" && $archivo != "_notes")
  {
 
//Para cada vuelta del bucle
  
echo "<br>\n";
  
  echo 
"<a href='../presupuestos/$param/$archivo'  target='_blank'  class='Estilo5'>Presupuesto: $archivo</a>"// Aquí está el problema.
  
echo "<br>\n";
  
  }
 }

}

}
}
mysql_free_result($res);
mysql_close($cnx);
 

generarReporte("../presupuestos/$param");

?>
Gracias
  #6 (permalink)  
Antiguo 25/06/2008, 07:26
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Pasar el id de un usuario

Intenta De Esta Forma:

Cita:
Echo "<a Href=\"../presupuestos/\".$param.\"/\".$archivo.\" Target=\"_blank\" Class=\"estilo5\">presupuesto: $archivo</a>";
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #7 (permalink)  
Antiguo 25/06/2008, 11:29
 
Fecha de Ingreso: agosto-2005
Mensajes: 70
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Pasar el id de un usuario

Hola:

He probado la instrucción que me dices y me da el siguiente error:

Forbidden
You don't have permission to access /presupuestos/ on this server.

Saludos,
lyra
  #8 (permalink)  
Antiguo 25/06/2008, 12:12
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Pasar el id de un usuario

Revisaste el codigo html de la pagina a ver que genera?
Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #9 (permalink)  
Antiguo 25/06/2008, 13:18
 
Fecha de Ingreso: agosto-2005
Mensajes: 70
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Pasar el id de un usuario

Este es todo el código de la página:

Código PHP:

<?
//        Incluyo el mecanismo de control 
$URL $_SERVER['PHP_SELF']; 
include 
"controlSession.php";
?>
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<link href= "../estilos.css" rel="stylesheet" type="text/css" />

</head>
	
<body>
<div id="generalclien">			
<div id="contenidoclien">
<h1>Área de clientes</h1><br />

<p>Click en los enlaces para ver los presupuestos</p>


Código PHP:

<?
include ("../includes/config.php");
include (
"../includes/funciones.php");
$cnx =conectar();

$sql="SELECT id,usuario FROM usuarios";
$res mysql_query($sql,$cnx) or die (mysql_error());

while(
$fila mysql_fetch_array ($res)){
 if(
$fila["usuario"]== $control_sitio["usuario"]){ 
  
$param $fila["id"];
  echo 
"$param";
  
function 
leerDirectorio($cual
 {
  
$directorio opendir($cual);
  while (
$item_del_directorio readdir($directorio))
   {
    
$archivos[] = $item_del_directorio;
   }
  
  
closedir($directorio);
  return 
$archivos;
 }
 

function 
generarReporte($directorio)
{
//  Leo las imágenes del directorio
 
$archivos_en_directorio leerDirectorio($directorio);
 
//  bucle para listar el contenido
 
 
 
foreach($archivos_en_directorio as $archivo)
 {
  if(
$archivo != "." && $archivo != ".." && $archivo != "Thumbs.db" && $archivo != "_notes")
  {
 
//Para cada vuelta del bucle
  
echo "<br>\n";
  
  echo 
"<a href=\"../presupuestos/\".$param.\"/\".$archivo.\" target=\"_blank\" class=\"estilo5\">presupuesto: $archivo</a>";
  echo 
"<br>\n";
  
  }
 }

}

}
}
mysql_free_result($res);
mysql_close($cnx);
 
//esto te lista los ficheros del directorio
 
generarReporte("../presupuestos/$param");

?>

Código HTML:
<h2><a href="salir.php">Cerrar Sesión</a></h2>
</div>
</div> 
</body>
</html> 

Saludos
  #10 (permalink)  
Antiguo 26/06/2008, 10:24
 
Fecha de Ingreso: agosto-2005
Mensajes: 70
Antigüedad: 18 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Pasar el id de un usuario

Hola:

Encontré la solución. Por si a algien le sirve, es esta:


Código PHP:

//Para cada vuelta del bucle
  
echo "<br />\n";
  
$camino $directorio."/".$archivo;
  echo 
"<a href='$camino' target='_blank' class='Estilo5'>Presupuesto: $archivo</a>";
  echo 
"<br />\n"
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 11:49.