Autor Tema: funcion session en PHP  (Leído 4539 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado annadiaz

  • Usuario Dedicado
  • ***
  • Mensajes: 104
  • Puntuación: 0
  • Sexo: Femenino
    • Ver Perfil
funcion session en PHP
« : 08 de julio de 2011, 11:51:15 am »
Buenas necesito, que me orienten como hacer atravez de una funcion ,habilitar y deshabilitar, el link  del menu, Login , nick (regusuario) , fin de session, en cada caso.. y en cada parte o session de la pagina, hasta ahora, se logra logearse y fin de session, lo que no encuentro es hacer que en caso de logear a un usuario , ejemplo en index.php salga login, y no salga el nick, y a su vez sale Fin de session,  y en caso de Fin de session sale en index.php sale login, y Fin de Session, quiero deshabilitar en cada caso,  Login en caso de que este logeado el usuario , y en caso de Fin de session entre index.php pero despues no salga Fin de Seccion...

Login Momentaneo

Código: [Seleccionar]
<?php
if (isset ($_POST[&#39;submit&#39;] )){
$data_root $_SERVER[DOCUMENT_ROOT];
include ($data_root "/site/sec/funciones.php");
$nick $_POST[&#39;nick&#39;];
$password $_POST[&#39;password&#39;];
//CREACION DE VARIABALES - INICIO DE SESION
$sql mysql_query("SELECT * FROM registro WHERE nick=&#39;$nick&#39; AND password=&#39;$password&#39;");
$login_check mysql_num_rows($sql);
//CREACION DE SESION
if($login_check 0){
while($row mysql_fetch_array($sql)){
$id $row["id"];
session_register(&#39;id&#39;);
$_SESSION[&#39;id&#39;] = $id;
$usuario $row["nick"];
session_register(&#39;usuario&#39;);
$_SESSION[&#39;usuario&#39;] = $usuario;
header("location: cuenta.php");
exit();
// close while
} else {
print &#39;<br /><br />No se pudo iniciar sesion, los datos no concuerdan <br /><br /><a href="login.php">Click aqui</a> para regresar a la pagina de inicio de sesion.&#39;;
exit();
}
}
// close if post
?>

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inicio de Sesion</title>
</head>

<body>
<table align="center" cellpadding="5">
<form action="login.php" method="post" enctype="multipart/form-data" name="logform" id="logform">
<tr>
<td width="46">Nick</td>
<td width="100"><input name="nick" type="nick" id="nick" size="14" maxlength="15"/></td>
</tr>
<tr>
<td>Clave</td>
<td><input name="password" type="password" id="password" size="14" maxlength="14" /></td>
</tr>
<tr>
<td><input name="submit" type="submit" value="Login" id="submit"/></td>
<td>Olvido su Clave</td>
</tr>
</form>
</table>
</body>
</html>

Logout redireccionando al index.php
Código: [Seleccionar]
<?php
session_start
();
session_destroy();
if(!
session_is_registered(&#39;id&#39;)){
$msg "Se ha Finalizado la sesión";
} else {
$msg "<h2>No se ha finalizado la sesión</h2>";
}
?>

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fin de Sesion</title>
</head>
<body>
<?php print $msg;  ?>
 <script type="text/javascript">
 location.href='http://localhost/site/index.php';
</script>
</body>
</html>

Cuenta.php
Código: [Seleccionar]
<?php

$data_root $_SERVER[DOCUMENT_ROOT];
include ($data_root "/site/sec/funciones.php");

if($pag!="") {
$plantilla $pag;
}

if($_GET[pag]!="") {
$plantilla $_GET[pag];
}

if($_POST[pag]!="") {
$plantilla $_POST[pag];
}

if(!($plantilla)) {
$plantilla "home";
}

?>

<?php
session_start
();
$menu_links "";
if (isset(
$_SESSION[&#39;id&#39;])) {
$userid $_SESSION[&#39;id&#39;];
$usuario $_SESSION[&#39;usuario&#39;];
//CREACION DEL MENU AUTOMATICO
//MENU USUARIOS REGISTRADOS
$menu_links = &#39;<a href="cuenta.php?id=&#39; . $userid . &#39;">&#39; . $usuario . &#39;</a> &bull; <a href="logout.php">Fin Sesion</a>&#39;;
} else {
//MENU USUARIOS NO REGISTRADOS
$menu_links = &#39;<a href="registro.php">Registrarse</a> &bull; <a href="login.php">Inicio de Sesion</a>&#39;;
header("location: index.php");
exit();
}
?>

<div>|<a href="index.php"> Home </a>|<a href="index.php" >Novedades</a> |<a href="nosotros.php"> &iquest;Qui&eacute;nes Somos? </a>|<a href="registro.php" target="_parent"> Reg&iacute;strate |</a><a href="contactenos.php">Cont&aacute;ctanos</a>|<?php  MENU
$menu_links2 
"";?>
<?php echo $menu_links?></div>MENU Login Logout y sus variables

Index.php
Código: [Seleccionar]
<?php

$data_root $_SERVER[DOCUMENT_ROOT];
include ($data_root "/site/sec/funciones.php");


if($pag!="") {
$plantilla $pag;
}

if($_GET[pag]!="") {
$plantilla $_GET[pag];
}

if($_POST[pag]!="") {
$plantilla $_POST[pag];
}

if(!($plantilla)) {
$plantilla "home";
}

?>

Html
<div> |<a href="index.php"> Home </a>|<a href="index.php" >Novedades</a> |<a href="nosotros.php"> &iquest;Qui&eacute;nes Somos? </a>|<a href="registro.php" target="_parent"> Reg&iacute;strate |</a><a href="contactenos.php">Cont&aacute;ctanos</a>|<a href="login.php">Login</a>|
<?php $menu_links2 "";?>Menu Login y Logout
<a href="logout.php">Fin Sesion</a></div>Menu Login y Logout
« Última Modificación: 08 de julio de 2011, 11:53:31 am por annadiaz »

Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 225
  • Puntuación: 9
  • Sexo: Masculino
    • Ver Perfil
Re:funcion session en PHP
« Respuesta #1 : 08 de julio de 2011, 01:43:40 pm »
Fijate en este trozo de codigo
Código: [Seleccionar]

while($row = mysql_fetch_array($sql)){
$id = $row["id"];
session_register('id');
$_SESSION['id'] = $id;
$usuario = $row["nick"];
session_register('usuario');
$_SESSION['usuario'] = $usuario;
header("location: cuenta.php");
exit();
} // close while


El while esta demas ya ke en tu DB no deberian haber dos users llamados igual ni con el mismo pass

En cuanto a lo otro es facil

debajo de
Código: [Seleccionar]
$_SESSION['usuario'] = $usuario; yo crearia esto
Código: [Seleccionar]
$_SESSION['logueado'] = 1;
y procederia de esta forma
Código: [Seleccionar]

if($_SESSION['logueado'] == 1 )
{
/*si esta logueado*/
echo "salir</br>panel de control";
}
else
{
/*si no lo esta*/
echo "login</br>registro";
}


Esta simple espero te sea de ayuda la idea es verificar si efectivamente la session creada indica ke el usuario esta autenticado, de alli pues puedes crear la funcion partiendo de esa logica
« Última Modificación: 08 de julio de 2011, 01:46:13 pm por el_santo »
Yo hablo php........!!!

Desconectado annadiaz

  • Usuario Dedicado
  • ***
  • Mensajes: 104
  • Puntuación: 0
  • Sexo: Femenino
    • Ver Perfil
Re:funcion session en PHP
« Respuesta #2 : 08 de julio de 2011, 03:33:52 pm »
Fijate en este trozo de codigo
Código: [Seleccionar]

while($row = mysql_fetch_array($sql)){
$id = $row["id"];
session_register('id');
$_SESSION['id'] = $id;
$usuario = $row["nick"];
session_register('usuario');
$_SESSION['usuario'] = $usuario;
header("location: cuenta.php");
exit();
} // close while


El while esta demas ya ke en tu DB no deberian haber dos users llamados igual ni con el mismo pass

En cuanto a lo otro es facil

debajo de
Código: [Seleccionar]
$_SESSION['usuario'] = $usuario; yo crearia esto
Código: [Seleccionar]
$_SESSION['logueado'] = 1;
y procederia de esta forma
Código: [Seleccionar]

if($_SESSION['logueado'] == 1 )
{
/*si esta logueado*/
echo "salir</br>panel de control";
}
else
{
/*si no lo esta*/
echo "login</br>registro";
}


Esta simple espero te sea de ayuda la idea es verificar si efectivamente la session creada indica ke el usuario esta autenticado, de alli pues puedes crear la funcion partiendo de esa logica

ok Mi duda es que si en cada pagina ejemplo index.php, catalogos.php , contactenos etc... en cada una hay que colocar este codigo :

Código: [Seleccionar]
<?php
if (isset ($_POST[&#39;submit&#39;] )){
$data_root $_SERVER[DOCUMENT_ROOT];
include ($data_root "/site/sec/funciones.php");
$nick $_POST[&#39;nick&#39;];
$password $_POST[&#39;password&#39;];
//CREACION DE VARIABALES - INICIO DE SESION
$sql mysql_query("SELECT * FROM registro WHERE nick=&#39;$nick&#39; AND password=&#39;$password&#39;");
$login_check mysql_num_rows($sql);
//CREACION DE SESION
if($login_check 0){
if($row mysql_fetch_array($sql)){
$id $row["id"];
session_register(&#39;id&#39;);
$_SESSION[&#39;id&#39;] = $id;
$usuario $row["nick"];
session_register(&#39;usuario&#39;);
$_SESSION[&#39;usuario&#39;] = $usuario;
header("location: cuenta.php");
exit();
// close if
} else {
print &#39;<br /><br />No se pudo iniciar sesion, los datos no concuerdan <br /><br /><a href="login.php">Click aqui</a> para regresar a la pagina de inicio de sesion.&#39;;
exit();
}
}
// close if post
?>

Y luego en cada menu como se haria para que no apareciera o apareciera, Login , Fin de Session etc, en cada caso.

Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 225
  • Puntuación: 9
  • Sexo: Masculino
    • Ver Perfil
Re:funcion session en PHP
« Respuesta #3 : 15 de julio de 2011, 12:49:39 pm »
tal cual como te respondi es lo ke kieres hacer, te mostre una forma de como hacerlo no el trabajo hecho tu lo adaptas a tus necesidades :-P
Yo hablo php........!!!