un po' di modifiche
[brisk.git] / web / index_rd.php
index 994fe87..6dcb6e9 100644 (file)
@@ -17,6 +17,8 @@
  * not, write to the Free Software Foundation, Inc, 59 Temple Place -
  * Suite 330, Boston, MA 02111-1307, USA.
  *
+ * $Id$
+ *
  */
 
 require_once("brisk.phh");
@@ -44,7 +46,7 @@ function unrecerror()
   GLOBAL $is_page_streaming;
 
   $is_page_streaming = TRUE;
-  return (sprintf('the_end=true; document.location.assign("index.php");'));
+  return (sprintf('the_end=true; window.onunload = null; document.location.assign("index.php");'));
 }
 
 
@@ -64,6 +66,7 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
     // Aggiorna l'expire time lato server
     if  ($first_loop == TRUE) {
       if (($user = &get_user($bri, $sess, $idx)) == FALSE) {
+       unlock_data($sem);
        return (unrecerror());
       }
       log_auth($sess, "update lacc");
@@ -78,8 +81,9 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
     }
     unlock_data($sem);
   }
-  else
+  else {
     return (FALSE);
+  }
     
   if (($user = &get_user(&$bri, $sess, $idx)) == FALSE) {
     return (unrecerror());
@@ -96,6 +100,7 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
     $sem = lock_data();
     $bri = &load_data();
     if (($user = &get_user($bri, $sess, $idx)) == FALSE) {
+      unlock_data($sem);
       return (unrecerror());
     }
     if ($user->the_end) 
@@ -113,6 +118,7 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
     }
     else {
       log_rd2($sess, "TRANS NON ATTIVATO");
+      unlock_data($sem);
     }
   }
       
@@ -138,13 +144,12 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
     $new_stat =  $user->stat;
     $new_subst = $user->subst;
     $new_step =  $user->step;
-         
-    unlock_data($sem);
   }
   else {
     $sem = lock_data();
     $bri = &load_data();
     if (($user = &get_user($bri, $sess, $idx)) == FALSE) {
+      unlock_data($sem);
       return (unrecerror());
     }
     if ($cur_step < $user->step) {