Foros del Web » Programando para Internet » PHP »

usar variables de sesion y crear bandera (como lo hago?)

Estas en el tema de usar variables de sesion y crear bandera (como lo hago?) en el foro de PHP en Foros del Web. Amigos tengo un problema con el manejo de variables de session mi problema es: en la pagina 1 ingreso el nombre de un usuario a ...
  #1 (permalink)  
Antiguo 24/11/2010, 23:47
 
Fecha de Ingreso: julio-2010
Ubicación: mexico DF
Mensajes: 34
Antigüedad: 13 años, 9 meses
Puntos: 0
Exclamación usar variables de sesion y crear bandera (como lo hago?)

Amigos tengo un problema con el manejo de variables de session mi problema es:

en la pagina 1 ingreso el nombre de un usuario a buscar en la variable $nabus, en la pagina 2 busco y muestro los resultados de mi busqueda $nabus por ultimo en la pagina 3 hago la modificacion del usuario pero resulta que si decido no modificar y regresar a la pagina 2 ya no recibe la variable $nabus por lo que me muestra errores y a todos los usuarios de mi tabla, entonces quisiera guardar la variable $nabus en una variable de session asi podre ir a la pagina y regresar sin problema solo con llamarla no tendre problemas, para ello pense en poner una bandera en la cual si vale 0 cree la variable de session de $nabus, pero si vale 1 solo llame a la variable de session antes creada, para cambiar la bandera de 0 a 1 la pondre en la pantalla 3 y le modificare el valor asi cuando regrese a la pagina 2 no valdra 0 y llamare a la varible de session aqui mis codigos.

***pagina 1 (buscador)

<?php
session_start();
if ($_SESSION["usuario"])
{
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>..::Consultas::..</title>
<script language="javascript" type="text/javascript" src="js/funciones.js"></script>

<style type="text/css">
<!--
.Estilo1 {color: #FFFFFF}
-->
</style>
</head>
<body background="img/contabilidad.JPG" onLoad="limpiar()">
<form name="form" method="post" action="muestrabusqueda1.php">
<h3 class="Estilo1" style="text-decoration:blink">ESCRIBE EL NOMBRE DEL ALUMNO A CONSULTAR</h3>
<hr />
<p>
<input name="nabusqueda" type="text" />
</p>
<p>
<input type="button" value="Enviar" title="Enviar" onClick="validar()">
<input name="" type="reset" value="Borrar" />
Código HTML:
<input type="hidden" name="vars" value="0"/> 
</p>
<a href="Menu_alumnos.php" title="regresar">
<img src="img/Regresar.png" width="50" height="50" border="0" />
</a>
</form>
</body>
</html>
<?php
}
else
{
echo "<script type='text/javascript'>
alert('favor de loguearse');
window.location='index.php';
</script>";
}
?>

******pagina 2 (muestra el resultado de la busqueda y crea la variable)

<?php
session_start();
if (isset($_SESSION["usuario"]))
{
?>
<?php require_once('Connections/cn.php'); ?>
<?php



Código PHP:
if($_POST['vars']==0)
{
$_SESSION['alumnobus']=$_POST['nabusqueda'];
$_SESSION['flag']==0;

//$=$_SESSION['busca'];
//echo $busalum;

$nombreb=$_SESSION['alumnobus'] ;
mysql_select_db($database_cn, $cn);
$query_consulta = "SELECT * FROM alumnos WHERE alumnos.nombre like'%$nombreb%'";
$consulta = mysql_query($query_consulta, $cn) or die(mysql_error());
$row_consulta = mysql_fetch_assoc($consulta);
$totalRows_consulta = mysql_num_rows($consulta);

?>
<html>
<head>
<title>BUSQUEDA</title>
<h3 align="justify" class="Estilo1" >Busqueda de :<?php echo $nombreb ?></h3>
<style type="text/css">
<!--
.Estilo1 {color: #FFFFFF}
-->
</style>
<script language="javascript" type="text/javascript" src="js/funciones.js"></script>
</head>

<body background="img/contabilidad.JPG">
<table border="1">
<tr style="background-color:#0099FF">
<td valign="top" align="center" width="10" class="Estilo1"><strong>ID</strong></td>
<td valign="top" align="center" width="300" class="Estilo1"><strong>Nombre</strong></td>
<td valign="top" align="center" width="200" class="Estilo1"><strong>Carrera</strong></td>
<td valign="top" align="center" width="70" class="Estilo1"><strong>Semestre</strong></td>
<td valign"top" align="center" width="150" class="Estilo1"><strong>Plantel</strong></td>
<td valign="top" align="center" width="100" class="Estilo1"><strong>Matricula</strong></td>
<td valign="top" align="center" width="80" class="Estilo1"><strong>Funciones</strong></td>
<?php do { ?>
<tr>
<td class="Estilo1" align="center"><strong><?php echo $row_consulta['ID']; ?></strong></td>
<td class="Estilo1" align="center"><strong><?php echo $row_consulta['nombre']; ?></strong></td>
<td class="Estilo1" align="center"><strong><?php echo $row_consulta['carrera']; ?></strong></td>
<td class="Estilo1" align="center"><strong><?php echo $row_consulta['semestre']; ?></strong></td>
<td class="Estilo1" align="center"><strong><?php echo $row_consulta['plantel']; ?></strong></td>
<td class="Estilo1" align="center"><strong><?php echo $row_consulta['matricula']; ?></strong></td>
<td width="55" align="center" valign="top">
<a href="modifial.php?ID=<?php echo $row_consulta['ID'];?>" title="Modificar Datos de <?php echo $row_consulta['nombre'];?> ">
<img src="img/modificar.bmp" width="24" height="24" border="0">
</a>
<a href="adminpagos.php?ID=<?php echo $row_consulta['ID'];?>" title="Registrar Pago">
<img src="img/pago.bmp" width="24" height="24" border="0">
</a>
<a href="javascript:void(0)" title="Eliminar Alumno" onClick="eliminar_al('<?php echo $row_consulta['ID'];?>')">
<img src="img/eliminar.png" width="24" height="24" border="0">
</a>
<a href="hispag.php?ID=<?php echo $row_consulta['ID'];?>" title="Historial de pagos">
<img src="img/hispag.png" width="24" height="24" border="0">
</a>
</td>
</tr>
<?php } while ($row_consulta = mysql_fetch_assoc($consulta)); ?>
</table>
<a href="busqueda1.php" title="regresar">
<img src="img/Regresar.png" width="50" height="50" border="0" />
</a>
</body>
</html>
<?php
}
else
{
echo "<script type='text/javascript'>
alert('Usted no está logueado');
window.location='index.php';
</script>";
}
?>



******pagina 3 (modifico la inf del usuario y tambien la variable a valor 1)

<?php
session_start();
//si el user no inició sesion chauuu
if (!$_SESSION["usuario"])
{echo "<script type='text/javascript'>
alert('Usted no esta logueado');
window.location='index.php';
</script>";}

Código PHP:
if($_SESSION['flag']==0)
{
$bandera=$_SESSION['flag'];
$_SESSION['flag']==1;
echo 
$bandera;

?>
<html>
<head>
<title>..::Administracion de pago::..</title>
<style type="text/css">
<!--
.Estilo1 {color: #FFFFFF}
-->
</style>
<script language="javascript" type="text/javascript" src="js/funciones.js"></script>

</head>
<body background="img/contabilidad.JPG">

<?php require_once ('Connections/cn.php');?>
<?php
//conexion
mysql_select_db($database_cn, $cn);

//recuperamos las variables
$valor=$_GET['ID'];

//evitamos problemas con caracteres especiales
mysql_query("SET NAMES 'utf8'");

//consulta
$consulta=mysql_query("select * from pagos where ID_alumno='$valor'");

//cuantas entradas hay?
$total=mysql_num_rows($consulta);

// si no hay consultas mostramos el if
if($total==0)
{
?>
<form action="recibeadminpagos.php" method="post" name="form1">
<table width="360" border="0">
<td><span class="Estilo1"><strong>Promedio semestre anterior</span>:</strong></td>
<td><input type="text" name="psa"/></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>Total a pagar</span>:</strong></td>
<td><input type="text" name="total"/></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>Concepto de pago:</span></strong></td>
<td><select name="conceptopago">
<option value="inscripcion">Inscripcion</option>
<option value="cene">Colegiatura Enero</option>
<option value="cfeb">Colegiatura Febrero</option>
<option value="cmar">Colegiatura Marzo</option>
<option value="cabr">Colegiatura Abril</option>
<option value="cmay">Colegiatura Mayo</option>
<option value="cjun">Colegiatura Junio</option>
<option value="cjul">Colegiatura Julio</option>
<option value="cago">Colegiatura Agosto</option>
<option value="csep">Colegiatura Septiembre</option>
<option value="coct">Colegiatura Octubre</option>
<option value="cnov">Colegiatura Noviembre</option>
<option value="cdic">Colegiatura Diciembre</option>
<option value="BIPN">BECA IPN</option>
<option value="BSEP">BECA SEP</option>
<option value="BTON">BECATON</option>
</select></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>Periodo de pago</strong></span></td>
<td><select name="periodopago">
<option value="normal">1-5</option>
<option value="sancion+">6-20</option>
<option value="sancion+">21-ultimo dia del mes</option>
</select></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>Cantidad:</strong></span></td>
<td><input type="text" name="cantidad"/></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>F.R:</strong></span></td>
<td><input type="text" name="facorec"/></td>
</tr>
</table>
<p>
<input type="hidden" name="ID" value="<?php echo $valor; ?>" />
<input type="button" value="Enviar" title="Enviar" onClick="validar()">
<input type="reset" value="Limpiar" title="borrar"/>
</p>
<a href="muestrabusqueda1.php" title="regresar">
<img src="img/Regresar.png" width="50" height="50" border="0" />
</a>
</form>
<?php
}
?>

</body>
</html>

**********************

creo que mi idea esta correcta pero tambien que no lo estoy haciendo bien ya que me sigue sacando errores de que en la pagina 2 no tiene la variable a buscar,bueno es algo complicado pero espero que me puedan ayudar o por lo menos que me hayan entendido, sain mas muchas GRACIAS y espero su ayuda chau......:par tido:
  #2 (permalink)  
Antiguo 25/11/2010, 05:10
Avatar de tersipodes  
Fecha de Ingreso: noviembre-2010
Mensajes: 23
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: usar variables de sesion y crear bandera (como lo hago?)

Hola,

Te dejo tu código algo depurado para conseguir lo que quieres. Vas bien encaminado pero falta que utilices correctamente el paso de información para realizar unas o otras acciones. No necesitas en absoluto los flags, puesto que lo único que debes hacer es actualizar la variable de sesión que contiene el nombre del alumno cuando realices una nueva búsqueda.

Modificando un poco el código, cuando realices una nueva búsqueda, se actualiza (o crea, depende) la variable de sesión $_SESSION['alumnobus']. Cuando le des a cualquiera de las opciones que tienes para los alumnos, esta información no se pierde. Cuando vuelvas a la página donde muestra tu búsqueda, continuará teniendo el valor anterior, por lo que no pasa absolutamente nada. Si realizaras una segunda búsqueda, en ese caso, el if puesto, actualizaría el valor de esta variable, y ya está. No es necesario realizar tanto control de paso de datos en tu caso.

Aquí te dejo tu código pegado con algunos comentarios. Espero que te sea de ayuda.



***pagina 1 (buscador)

<?php
session_start();
if ($_SESSION["usuario"])
{
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>..::Consultas::..</title>
<script language="javascript" type="text/javascript" src="js/funciones.js"></script>

<style type="text/css">
<!--
.Estilo1 {color: #FFFFFF}
-->
</style>
</head>
<body background="img/contabilidad.JPG" onLoad="limpiar()">
<form name="form" method="post" action="muestrabusqueda1.php">
<h3 class="Estilo1" style="text-decoration:blink">ESCRIBE EL NOMBRE DEL ALUMNO A CONSULTAR</h3>
<hr />
<p>
<input name="nabusqueda" type="text" />
</p>
<p>
<input type="button" value="Enviar" title="Enviar" onClick="validar()">
<input name="" type="reset" value="Borrar" />
<input type="hidden" name="vars" value="0"/>
</p>
<a href="Menu_alumnos.php" title="regresar">
<img src="img/Regresar.png" width="50" height="50" border="0" />
</a>
</form>
</body>
</html>
<?
//NO HACE FALTA QUE HABRAS EL CÓDIGO PHP CON <?php DESPUES DE LA PRIMERA VEZ
//CON QUE PONGAS <? SERÍA SUFICIENTE.
}
else
{
echo "<script type='text/javascript'>
alert('favor de loguearse');
window.location='index.php';
</script>";
}
?>

******pagina 2 (muestra el resultado de la busqueda y crea la variable)

<?php
session_start();
if (isset($_SESSION["usuario"]))
{
require_once('Connections/cn.php');



if($_POST['vars']!=null)
{
$_SESSION['alumnobus'] = $_POST['nabusqueda'];

}


$nombreb = $_SESSION['alumnobus'] ;
mysql_select_db($database_cn, $cn);
$query_consulta = "SELECT * FROM alumnos WHERE alumnos.nombre like'%$nombreb%'";
$consulta = mysql_query($query_consulta, $cn) or die(mysql_error());

?>
<html>
<head>
<title>BUSQUEDA</title>
<h3 align="justify" class="Estilo1" >Busqueda de :<?php echo $nombreb; ?></h3>
<style type="text/css">
<!--
.Estilo1 {color: #FFFFFF}
-->
</style>
<script language="javascript" type="text/javascript" src="js/funciones.js"></script>
</head>

<body background="img/contabilidad.JPG">
<table border="1">
<tr style="background-color:#0099FF">
<td valign="top" align="center" width="10" class="Estilo1"><strong>ID</strong></td>
<td valign="top" align="center" width="300" class="Estilo1"><strong>Nombre</strong></td>
<td valign="top" align="center" width="200" class="Estilo1"><strong>Carrera</strong></td>
<td valign="top" align="center" width="70" class="Estilo1"><strong>Semestre</strong></td>
<td valign"top" align="center" width="150" class="Estilo1"><strong>Plantel</strong></td>
<td valign="top" align="center" width="100" class="Estilo1"><strong>Matricula</strong></td>
<td valign="top" align="center" width="80" class="Estilo1"><strong>Funciones</strong></td>

<?
//ES MEJOR UTLIZAR EL WHILE QUE EL DO-WHILE, PUESTO QUE SI NO HA ENCONTRADO NADA
//NO MOSTRARÁ NINGUNA FILA. SI UTILIZAS EL DO-WHILE, SIEMPRE MOSTRARÁ ALGO
//AUNQUE SEAN ERRORES

while ($row_consulta = mysql_fetch_assoc($consulta)) { ?>
<tr>
<td class="Estilo1" align="center"><strong><? echo $row_consulta['ID']; ?></strong></td>
<td class="Estilo1" align="center"><strong><? echo $row_consulta['nombre']; ?></strong></td>
<td class="Estilo1" align="center"><strong><? echo $row_consulta['carrera']; ?></strong></td>
<td class="Estilo1" align="center"><strong><? echo $row_consulta['semestre']; ?></strong></td>
<td class="Estilo1" align="center"><strong><? echo $row_consulta['plantel']; ?></strong></td>
<td class="Estilo1" align="center"><strong><? echo $row_consulta['matricula']; ?></strong></td>
<td width="55" align="center" valign="top">
<a href="modifial.php?ID=<? echo $row_consulta['ID'];?>" title="Modificar Datos de <?php echo $row_consulta['nombre'];?> ">
<img src="img/modificar.bmp" width="24" height="24" border="0">
</a>
<a href="adminpagos.php?ID=<? echo $row_consulta['ID'];?>" title="Registrar Pago">
<img src="img/pago.bmp" width="24" height="24" border="0">
</a>
<a href="javascript:void(0)" title="Eliminar Alumno" onClick="eliminar_al('<? echo $row_consulta['ID'];?>')">
<img src="img/eliminar.png" width="24" height="24" border="0">
</a>
<a href="hispag.php?ID=<? echo $row_consulta['ID'];?>" title="Historial de pagos">
<img src="img/hispag.png" width="24" height="24" border="0">
</a>
</td>
</tr>

<? } ?>

</table>
<a href="busqueda1.php" title="regresar">
<img src="img/Regresar.png" width="50" height="50" border="0" />
</a>
</body>
</html>

<?
}
else
{
echo "<script type='text/javascript'>
alert('Usted no está logueado');
window.location='index.php';
</script>";
}
?>



******pagina 3 (modifico la inf del usuario y tambien la variable a valor 1)

<?php
session_start();
//si el user no inició sesion chauuu
if (!$_SESSION["usuario"])
{echo "<script type='text/javascript'>
alert('Usted no esta logueado');
window.location='index.php';
</script>";}

/* NO SE NECESITAN LOS FALGS
if($_SESSION['flag']==0)
{
$bandera=$_SESSION['flag'];
$_SESSION['flag'] = 1;
echo $bandera;
}
*/
?>
<html>
<head>
<title>..::Administracion de pago::..</title>
<style type="text/css">
<!--
.Estilo1 {color: #FFFFFF}
-->
</style>
<script language="javascript" type="text/javascript" src="js/funciones.js"></script>

</head>
<body background="img/contabilidad.JPG">

<?
require_once ('Connections/cn.php');

//conexion
mysql_select_db($database_cn, $cn);

//recuperamos las variables
$valor=$_GET['ID'];

//evitamos problemas con caracteres especiales
mysql_query("SET NAMES 'utf8'");

//consulta
$consulta=mysql_query("select * from pagos where ID_alumno='$valor'");

//cuantas entradas hay?
$total=mysql_num_rows($consulta);

// si no hay consultas mostramos el if
if($total==0)
{
?>
<form action="recibeadminpagos.php" method="post" name="form1">
<table width="360" border="0">
<td><span class="Estilo1"><strong>Promedio semestre anterior</span>:</strong></td>
<td><input type="text" name="psa"/></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>Total a pagar</span>:</strong></td>
<td><input type="text" name="total"/></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>Concepto de pago:</span></strong></td>
<td><select name="conceptopago">
<option value="inscripcion">Inscripcion</option>
<option value="cene">Colegiatura Enero</option>
<option value="cfeb">Colegiatura Febrero</option>
<option value="cmar">Colegiatura Marzo</option>
<option value="cabr">Colegiatura Abril</option>
<option value="cmay">Colegiatura Mayo</option>
<option value="cjun">Colegiatura Junio</option>
<option value="cjul">Colegiatura Julio</option>
<option value="cago">Colegiatura Agosto</option>
<option value="csep">Colegiatura Septiembre</option>
<option value="coct">Colegiatura Octubre</option>
<option value="cnov">Colegiatura Noviembre</option>
<option value="cdic">Colegiatura Diciembre</option>
<option value="BIPN">BECA IPN</option>
<option value="BSEP">BECA SEP</option>
<option value="BTON">BECATON</option>
</select></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>Periodo de pago</strong></span></td>
<td><select name="periodopago">
<option value="normal">1-5</option>
<option value="sancion+">6-20</option>
<option value="sancion+">21-ultimo dia del mes</option>
</select></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>Cantidad:</strong></span></td>
<td><input type="text" name="cantidad"/></td>
</tr>
<tr>
<td><span class="Estilo1"><strong>F.R:</strong></span></td>
<td><input type="text" name="facorec"/></td>
</tr>
</table>
<p>
<input type="hidden" name="ID" value="<? echo $valor; ?>" />
<input type="button" value="Enviar" title="Enviar" onClick="validar()">
<input type="reset" value="Limpiar" title="borrar"/>
</p>
<a href="muestrabusqueda1.php" title="regresar">
<img src="img/Regresar.png" width="50" height="50" border="0" />
</a>
</form>

<?
}
?>

</body>
</html>

Etiquetas: variables
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 13:27.