Foros del Web » Programando para Internet » PHP »

PHP OO session_start(); para todas las páginas

Estas en el tema de session_start(); para todas las páginas en el foro de PHP en Foros del Web. Hola... Bueno yo tengo una página que usa usuario y clave, tengo un formulario 'formularioUsuario.php, donde recibe los datos, después en la página 'principal.php' los ...
  #1 (permalink)  
Antiguo 18/12/2012, 09:21
Avatar de andreamorante184  
Fecha de Ingreso: agosto-2012
Mensajes: 65
Antigüedad: 12 años, 2 meses
Puntos: 0
Pregunta session_start(); para todas las páginas

Hola...
Bueno yo tengo una página que usa usuario y clave, tengo un formulario 'formularioUsuario.php, donde recibe los datos, después en la página 'principal.php' los valida, solo que esta página elimina, modifica y guarda datos, pero cuando va a la página,
eliminar.php, guardar.php, modificar.php guarda pero ya no sé como declarar la session_star(); para que regrese de nuevo a la página principal.php
gracias
__________________
Andrea Morante
  #2 (permalink)  
Antiguo 18/12/2012, 09:26
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: session_start(); para todas las páginas

No me es muy clara la pregunta pero tratando de adivinar lo que deseas es que si no se ha logueado el usuario y alguien trata de ingresar a estas paginas redireccione a la pagina de formulario nuevamente?
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 18/12/2012, 09:28
Avatar de andreamorante184  
Fecha de Ingreso: agosto-2012
Mensajes: 65
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: session_start(); para todas las páginas

si pero también que quien este logueado no tenga que hacerlo para volver a pagina principal.php
__________________
Andrea Morante
  #4 (permalink)  
Antiguo 18/12/2012, 09:35
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: session_start(); para todas las páginas

Si uno desea entrar a una pagina para eliminar, editar, etc pues lo que se hace es ingresar los datos. Se validan los datos (generalmente se verifica que existan en una base de datos) y cuando se comprueba se crean unas variables de sesión las cuales les dara los permisos al usuario.

En los scripts que deseas usar lo primero que se hace es verificar si dichas variables de sesión existen. En caso negativo se hace un redireccionamiento al formulario.

No sobra decir que cuando el usuario sale del aplicativo o lleva un tiempo sin usarlo debe destruir esas variables de sesion para evitar que una persona sin permisos ingrese.

Cita:
si pero también que quien este logueado no tenga que hacerlo para volver a pagina principal.php
Lo siento, no lo entendi.
__________________
Blog de humor http://elcuasatar.net63.net/
  #5 (permalink)  
Antiguo 18/12/2012, 09:40
Avatar de andreamorante184  
Fecha de Ingreso: agosto-2012
Mensajes: 65
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: session_start(); para todas las páginas

Página principal.php
<?php include( "conexion.php" );
$link= Conectarse();
mysql_select_db( "login", $link );
function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS["Usuario"]) != "" && trim($HTTP_POST_VARS["Pass"]) != "")
{
$usuario = strtolower(htmlentities($HTTP_POST_VARS["Usuario"], ENT_QUOTES));
$password = $HTTP_POST_VARS["Pass"];
$result = mysql_query('SELECT * FROM login WHERE Usuario="'.$usuario.'"');

if($row = mysql_fetch_array($result))
{
if($row["Pass"] == $password)
{
$_SESSION["k_username"] = $row['Usuario'];
$_SESSION["nombre"] = $row['Nombre'];
}
else
{
echo 'Password incorrecto';
echo '<a href="login.php">Volver al Index</a></p>';
}
}
else{
echo 'Usuario no existente en la base de datos';
echo '<a href="login.php">Volver al Index</a></p>';
}
mysql_free_result($result);
}else{
echo 'Debe especificar un usuario y password';
echo '<a href="login.php">Volver al Index</a></p>';
}
mysql_close();
?>

esta página me funciona bien...
pero ahora dentro de esta yo traigo datos.... esta todo perfecto, solo que esos datos yo los quiero modificar, eliminar, o guardar, pero cuando llamo a las otras páginas no sé como llamar la session_star(); o que tengo que hacer en la otras páginas
__________________
Andrea Morante
  #6 (permalink)  
Antiguo 18/12/2012, 09:50
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: session_start(); para todas las páginas

Bueno, esto esta mas que obsoleto $HTTP_POST_VARS. Si lo has sacado de un ejemplo debe ser del año de cuando la tierra se estaba enfriando.
Cita:
pero ahora dentro de esta yo traigo datos.... esta todo perfecto, solo que esos datos yo los quiero modificar, eliminar, o guardar, pero cuando llamo a las otras páginas no sé como llamar la session_star(); o que tengo que hacer en la otras páginas
Bueno quiero tratar de ayudar pero tu redacción no me permite entender mucho. Si las variables de sesión se han creado adecuadamente simplemente crea una redirección a un menu donde puedas decirle borrar pagina, editar pagina, crear dato, elimnar datos, etc. Cada uno de los scripts deben tener un session_start() al principio para que puedas leer las variables de sesión que has creado y debes verificar en cada script que estas variables existen. En caso contrario que redireccione a la pagina de formulario ya que no tiene permisos para entrar.

Si deseas un ejemplo mejor explicado puedes buscarlo en la pagina de adam khoury donde no solo encuentras el script sino la explicación.

http://www.developphp.com/list_php.php

Por falta de tiempo no te puedo ayudar mas pero espero que mi explicación te ayude para poder solucionar tu problema.
__________________
Blog de humor http://elcuasatar.net63.net/
  #7 (permalink)  
Antiguo 18/12/2012, 09:58
Avatar de andreamorante184  
Fecha de Ingreso: agosto-2012
Mensajes: 65
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: session_start(); para todas las páginas

tengo otra página que se llama logout.php pero no sé como llamar a las otras para esta página
<?php
session_start();

$_SESSION["k_username"] = $row['Usuario'];
$_SESSION["nombre"] = $row['Nombre'];
header("location:validar_usuario.php");
exit;


?>
<SCRIPT LANGUAGE="javascript">
location.href = "principal.php";
</SCRIPT>
__________________
Andrea Morante
  #8 (permalink)  
Antiguo 18/12/2012, 10:29
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: session_start(); para todas las páginas

Bueno dije que no tenia tiempo pero igual veo que vas muy mal encaminada. Tu hiciste ese codigo de logout o lo copiaste de otro lado?

La idea de hacer un logout es destruir las variables de sesión y aquí nada de eso ocurre.

Por favor te lo pido por tu propio bien que revises los video tutoriales

How to Create A Basic Membership Website System Using PHP and MySQL Tutorial

How to Build Custom PHP and MySQL CMS Website Software

En el enlace que te mande busca esto y ahi los encontraras

PHP and MySQL Video Tutorials

Una vez que los veas y los entiendas estoy casi seguro que podras solucionar tu problema, no eches en saco roto mi recomendación.
__________________
Blog de humor http://elcuasatar.net63.net/
  #9 (permalink)  
Antiguo 18/12/2012, 12:19
Avatar de andreamorante184  
Fecha de Ingreso: agosto-2012
Mensajes: 65
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: session_start(); para todas las páginas

Pero mi pregunta es si envio a la página principal los datos no los puedo pasar a otra página a la vez?...
__________________
Andrea Morante
  #10 (permalink)  
Antiguo 18/12/2012, 13:55
Avatar de jcMouse  
Fecha de Ingreso: noviembre-2009
Ubicación: Bolivia
Mensajes: 116
Antigüedad: 15 años
Puntos: 9
Respuesta: session_start(); para todas las páginas

tu sistema tiene una estructura antigua ademas de que haces uso de de variables obsoletas como HTTP_POST_VARS, mi consejo :) por tu bien y la de tu sistema, planteate seriamente en actualizar a un nuevo modelo como la POO y MVC.

Por hacerte una analogía, tu sistema es como un edificio viejo lleno de ventanas y puertas por todo lado :) lo que necesitas es un almacén con una gran puerta y unas cuantas ventanas :)

se malo

:)
__________________
Problem?
Estoy aquí
Foro Code Army
  #11 (permalink)  
Antiguo 19/12/2012, 08:14
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: session_start(); para todas las páginas

Cita:
Pero mi pregunta es si envio a la página principal los datos no los puedo pasar a otra página a la vez?...
Creo que no tienes muy claro como funciona esto de las sesiones. Voy a colocar el ejemplo que pone el manual de PHP sobre session_start.

Código PHP:

<?php
// pagina1.php

session_start();

echo 
'Bienvenido a la página #1';

$_SESSION['color']  = 'verde';
$_SESSION['animal'] = 'gato';
$_SESSION['time']   = time();

// Trabajar si la cookie de sesión fue aceptada
echo '<br /><a href="pagina2.php">página 2</a>';

// O quizás pasar el id de sesión, si fuera necesario
echo '<br /><a href="pagina2.php?' SID '">página 2</a>';
?>
Como puedes ver se crean unas variables de sesión con unos ciertos valores. Si utilizamos estos valores deberian mantenerse en cualquier otra pagina. En este caso si se va a la pagina 2 deberian poder verse los valores de sesión.

Código PHP:

<?php
// pagina2.php

session_start();

echo 
'Bienvenido a la página #2<br />';

echo 
$_SESSION['color'];  // verde
echo $_SESSION['animal']; // gato
echo date('Y m d H:i:s'$_SESSION['time']);

// Puede querer usar SID aquí, como hicimos en pagina1.php
echo '<br /><a href="pagina1.php">página 1</a>';
?>
Las sesiones estan diseñadas para que conserves unos valores que necesitas usar a lo largo del uso de estas paginas. Obviamente el ejemplo del manual quizas no sea el uso mas practico pero si me parece el mas didáctico.

Cita:
por tu bien y la de tu sistema, planteate seriamente en actualizar a un nuevo modelo como la POO y MVC.
Si estoy de acuerdo que es necesario actualizarlo pero no me parece conveniente que use POO y MVC. Antes de hacer migrarse a la POO es importante que tenga claro los conceptos de variables de sesión (entre otros conocimientos) porque eso es como tratar de correr antes de aprender a caminar.

De verdad espero que te haya quedado claro el concepto y con todas las recomendaciones y los tutoriales puedas mejorar tu sistema (de hecho te diria que es obligatorio)
__________________
Blog de humor http://elcuasatar.net63.net/
  #12 (permalink)  
Antiguo 20/12/2012, 08:56
Avatar de andreamorante184  
Fecha de Ingreso: agosto-2012
Mensajes: 65
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: session_start(); para todas las páginas

ya lo hice; gracias a todos
Lo que hice fue crear una página intermedia que recibía los datos del formulario y después redirecciona a otra página ya en esa otra página lo que hago es
<?php include( "conexion.php" );
$link= Conectarse();
mysql_select_db( "login", $link );
mysql_select_db( "c", $link );
$n_H = $_GET['n'];


if (isset($_SESSION['u']))
{
echo ('<p> Usuario: ');
echo '<b>'.$n_H.'</b>';

}
else
{
echo '<p><a href="login.php">Login</a></p>';

}
echo "<a href='v_u.php?n=$n_H'>Regresar</a>";
Para lo que necesito me funciona espero poder hacerlo mejor adelante...
__________________
Andrea Morante

Etiquetas: formulario, páginas, todas, usuarios
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 03:15.