Foros del Web » Programando para Internet » PHP »

Control de envio con variable SESSION

Estas en el tema de Control de envio con variable SESSION en el foro de PHP en Foros del Web. Buenos días, Quisiera saber como puedo controlar si una varible de sesión tiene un valor. Supongo que algo parecido al isset pero con variable $_SESSION. ...
  #1 (permalink)  
Antiguo 26/07/2005, 03:23
 
Fecha de Ingreso: junio-2005
Mensajes: 79
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Control de envio con variable SESSION

Buenos días,

Quisiera saber como puedo controlar si una varible de sesión tiene un valor.

Supongo que algo parecido al isset pero con variable $_SESSION.


Este es mi problema.. ya que no puedo controlar el valor de $_SESSION['anade']

-----------------------------------------------------------------------

if (isset($_POST['claves'])){
if (isset($_SESSION['anade']==1)){ //NO FUNCIONA
echo 1;
}
else{
echo 0;
}
}


------------------------------

if (isset($_POST["Retener"])){
$_SESSION['anade']=0;
if (isset($_POST['claves']))
{
$claves = $_POST['claves'];

$esta=mysql_query("select estado from trabajos where peticion='$claves[0]'" ,$conexion) or die("La consulta falló: " . mysql_error());
$row=mysql_fetch_row($esta);
if ($row[0] == "EN CURSO"){
$_SESSION['anade']=1;
$_SESSION['notear']=$claves[0];

$reten = mysql_query("update trabajos set estado='RETENIDO' where peticion='$claves[0]'" ,$conexion) or die("La consulta falló: " . mysql_error());
}
else
{
echo "El trabajo no puede ser Retenido ya que no esta en curso";
$_SESSION['anade']=0;
}
}
}

----------------------------------------------------------------------


Gracias por la ayuda


Un saludo
  #2 (permalink)  
Antiguo 26/07/2005, 03:29
cartucho
Invitado
 
Mensajes: n/a
Puntos:
lo tienes mal puesto, sería así:

if (isset($_SESSION['anade'])==1){
}

aunque con ponerlo así ya valdría

if (isset($_SESSION['anade'])){
}

saludos
  #3 (permalink)  
Antiguo 26/07/2005, 03:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
De hecho lo correcto es lo segundo: if(isset(algo)) ...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 26/07/2005, 03:44
 
Fecha de Ingreso: junio-2005
Mensajes: 79
Antigüedad: 12 años, 6 meses
Puntos: 1
Uhum..

Pero con ello puedo controlar si la variable tiene un 1 ó un 0? o únicamente me controla si contiene un valor o no?


Muchas gracias por responder
  #5 (permalink)  
Antiguo 26/07/2005, 04:08
cartucho
Invitado
 
Mensajes: n/a
Puntos:
la funcion isset solo evalua si la variable ha sido establecida, es decir, si contiene algun valor. Si quieres controlar el contenido debes hacer algo así:

if (isset($_SESSION['anade']) && $_SESSION['anade']==1 ){
//si $_SESSION['anade']) establecida y su valor es 1
}

saludos
  #6 (permalink)  
Antiguo 26/07/2005, 04:44
 
Fecha de Ingreso: junio-2005
Mensajes: 79
Antigüedad: 12 años, 6 meses
Puntos: 1
Desacuerdo

Así me funciona perfectamente, gracias.

Por otro lado..

Tengo una web donde al hacer click en un botón se abre un popup para añadir una nota (Si su estado es en curso). El problema esta en que la variable coge el valor despues de que se envia la página.. por lo que la ventana popup no se abre hasta que se refresca la pagina con el nuevo valor ¿Sabeis como puedo detener el envio de una página? o alguna idea?

Adjunto el código...

<script>
function abrir(URL,nota){
if (nota==1){
window.open(URL,"",'width=300,height=300,left=320, top=200,toolbar=0,scrollbars=0,statusbar=0,menubar =0,resizable=0');
}
}
</script>

--------------------------------------------------------------------------

<input name="Retener" type="submit" id="Retener" value="Retener" onclick="abrir('anadenota.php',<? if (isset($_SESSION['anade']) && $_SESSION['anade']==1){
echo 1;
}
else{
echo 0;
}?> );">

--------------------------------------------------------------------------

if (isset($_POST["Retener"])){
$_SESSION['anade']=0;
if (isset($_POST['claves']))
{
$claves = $_POST['claves'];

$esta=mysql_query("select estado from trabajos where peticion='$claves[0]'" ,$conexion) or die("La consulta fall&oacute;: " . mysql_error());
$row=mysql_fetch_row($esta);
if ($row[0] == "EN CURSO"){
$_SESSION['anade']=1;
$_SESSION['notear']=$claves[0];
$reten = mysql_query("update trabajos set estado='RETENIDO' where peticion='$claves[0]'" ,$conexion) or die("La consulta fall&oacute;: " . mysql_error());
}
else
{
echo "El trabajo no puede ser Retenido ya que no esta en curso";
$_SESSION['anade']=0;
}
}
}

--------------------------------------------------------------------------


Gracias y un saludo
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 20:42.