$session_life) { $_SESSION = array(); session_destroy(); $pag = $_SERVER['SERVER_NAME']."/navidad/salir.php?expired=1"; header("Location: http://".$pag); exit(); } }else{ $_SESSION = array(); session_destroy(); $pag = $_SERVER['SERVER_NAME']."/navidad/salir.php?expired=1"; header("Location: http://".$pag); exit(); } $_SESSION["n_timeout"] = time(); if(!isset($_SESSION["n_sgi_administrador"]) || !$_SESSION["n_sgi_administrador"]){ header("Location: ../main.php?error=0"); exit(); } $pag = "../participantes.php"; try { $pdo->beginTransaction(); //obtiene navidad $stmt = $pdo->prepare('Select * from fs_navidad()'); if(!$stmt->execute()){ header("Location: ../index.php?error=5"); exit(); } $navidad_rs = $stmt->fetch();//$navidad_rs["Navidad_activa"] || $navidad_rs["Navidad_id"] $stmt->closeCursor(); //obtiene actuales $usrArr = array(); $usrAsignaArr = array(); $stmt = $pdo->prepare('Select * from fs_navidadusuario(:nav, NULL, true)'); $stmt->bindParam(":nav", $navidad_rs["Navidad_id"]); if($stmt->execute()){ $usr_rs = $stmt->fetchAll(); foreach($usr_rs as $usr){ $usrArr[] = array("de"=>$usr["NavidadUsuario_id"], "para" =>"", "rand"=>rand()); } }else{ $pdo->rollback(); header("Location: ".$pag."?error=0"); exit(); } $stmt->closeCursor(); //Revuelve usort($usrArr, function ($item1, $item2) { return $item2['rand'] <=> $item1['rand']; }); //Organiza intercambio for($i=0; $iprepare('Select * from fd_navidadtarjeta(:nav)'); $stmt->bindParam(":nav", $navidad_rs["Navidad_id"]); if($stmt->execute()){ $stmt->closeCursor(); $stmt = $pdo->prepare('Select * from fi_navidadtarjeta(:de, :para)'); foreach($usrArr as $usr){ //Inserta intercambios $stmt->bindParam(":de", $usr["de"]); $stmt->bindParam(":para", $usr["para"]); if(!$stmt->execute()){ $pdo->rollback(); //print_r($stmt->errorInfo()); header("Location: ".$pag."?error=0"); exit(); } } }else{ $pdo->rollback(); header("Location: ".$pag."?error=0"); exit(); } $stmt->closeCursor(); $pdo->commit(); header("Location: ".$pag."?ok=0"); } catch(PDOException $e) { $pdo->rollBack(); header("Location:".$pag."?error=0"); //print_r($e); } ?>