$securelinktypes[clienttask]=1; $securelinktypes[document]=1; $securelinktypes[clientnegotiation]=1; function securelink_create($type,$id,$interval,$createdfor) { securelinktype_check($type); $code =securelink_generatecode(); while (!$securelinkid ) { $securelinkid = securelink_insert($type,$id,$code,$interval,$createdfor); //d(created_securelinkid,$securelinkid); } return $securelinkid; } function securelink_insert($type,$id,$code,$interval,$createdfor) { securelinktype_check($type); $sql .=" insert into tblsecurelink (securelinkcreatedby,securelinkcode, {$type}id, securelinkexpireinterval, securelinkcreatedfor) values (".loginid().",'".db_col($code)."',$id,".db_tick($interval).",".db_tick($createdfor).")"; //d($sql); db_exec($sql,1); $id = db_lastid(securelink); //ddie(id,$id); return $id; } function securelink_expire($code) { $sql .=" update tblsecurelink set securelinkexpireddate = case when coalesce(securelinkexpireddate, now())>=now() then now()-interval '1 sec' else securelinkexpireddate end where securelinkcode = ".db_tick($code) ; //d($sql); db_exec($sql,1); return $id; } function securelink_generatecode() { return md5(time().loginid().rand(01111111,9999999999999)); } function securelinktype_check($type) { global $securelinktypes; if(!$securelinktypes[$type]) ddie("invalid type $type"); } function securelink_click_bycode($code) { $sql .=" insert into securelinkclick (securelinkclickip, securelinkid) values select '".$_SERVER[REMOTE_ADDR]."', securelinkid from tblsecurelink where securelinkcode = ".db_tick($code); db_exec($sql); //ddie(id,$id); return $qry; } function securelink_getall_bytypeid($type,$id) { $sql .="select * ,case when expiredays is null then 'Never' when expired=1 then 'Expired' else expiredays||' days' end as expiredate from ( select * , case when coalesce(securelinkexpireddate,coalesce(securelinkcreateddate+securelinkexpireinterval, now()+interval '5 second')) <= now() then 1 else 0 end as expired , coalesce(securelinkexpireddate,coalesce(securelinkcreateddate+securelinkexpireinterval, null))::date-now()::date as expiredays from tblsecurelink )tbl where {$type}id = ".db_number($id)." order by expired , expiredate desc" ; // d($sql); $qry = db_query($sql); //ddie(id,$id); return $qry; } function securelink_display_bytypeid($type,$id, $canadd=1) { if (!loginid()){ return;} $all = securelink_getall_bytypeid($type,$id); $out.="
| Expires | Created By | Created For | Link | foreach($all as $row) { $singlequote="'"; $style=''; $jqtext = "javascript:void( $('#securelink_".$type."_div').parent().load('securecontent.php?expiretype=$type&id=$id&code=$row[securelinkcode]')) "; $expirenow=""; if($row[expired]) $style = " color:red; "; else $expirenow = "Expire Now | "; $out.="
|---|---|---|
| ".$row[expiredate]." | ".get_login_info($row[securelinkcreatedby])." | $row[securelinkcreatedfor] |
| Link: | $expirenow | |