114 lines
4.1 KiB
Plaintext
114 lines
4.1 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: shorturl.asp
|
|
Description: Redirect naar een bookmark url
|
|
Parameters: u Bookmark die in de bookmark tabel moet zitten.
|
|
Dit moet de eerste parameter zijn als er nog meer komen
|
|
k Een integer keywaarde die plat achter de bookmark_query wordt geplakt
|
|
-- Optionele parameter(s): die worden allemaal blind
|
|
doorgegeven naar het volgende scherm
|
|
Context: Vanuit root
|
|
Note: Welbeschouwd is dit gewoon een url-shortener
|
|
http://sgf12/Facilitor5iWork/?u=J448UIrR43
|
|
Het is verleidelijk de u= parameter ook door te geven maar
|
|
dat is in tegenspraak met het betekenisloos zijn van de u-param
|
|
Als je dat wilt moet je maar BOOKMARK's gebruiken
|
|
*/
|
|
ANONYMOUS_Allowed = 1;
|
|
%>
|
|
<!-- #include file="../Shared/common.inc"-->
|
|
<%
|
|
var u = getQParam("u");
|
|
var keyparam = getQParamInt("k", -1);
|
|
// For flexiblity reasons: Literal or runtime parameter(s), just pass through...
|
|
var rest = String(Request.ServerVariables("QUERY_STRING")); // Request.ServerVariables("QUERY_STRING") is url-encoded,
|
|
// dat is hier safer dan Request.QueryString
|
|
// Strip eventuele leading &fac_id=XXXX er ook af.
|
|
rest = rest.substring(rest.indexOf("u=")).substring(("u="+u).length+1);
|
|
|
|
var sql = "SELECT fac_bookmark_path,"
|
|
+ " fac_bookmark_query,"
|
|
+ " prs_perslid_key_auth,"
|
|
+ " fac_bookmark_unauth_url,"
|
|
+ " fac_bookmark_expire,"
|
|
+ " fac_bookmark_refreshtime"
|
|
+ " FROM fac_bookmark"
|
|
+ " WHERE fac_bookmark_id = " + safe.quoted_sql(u);
|
|
var oRs = Oracle.Execute(sql);
|
|
if (oRs.Eof)
|
|
{
|
|
shared.simpel_page(L("lcl_fac_bookmark_unknown"));
|
|
}
|
|
if (oRs("fac_bookmark_expire").Value != null)
|
|
{
|
|
var expire = new Date(oRs("fac_bookmark_expire").Value);
|
|
if (expire <= new Date)
|
|
{
|
|
shared.simpel_page(L("lcl_fac_bookmark_expired"));
|
|
}
|
|
}
|
|
|
|
var url = oRs("fac_bookmark_path").Value;
|
|
var refresher = oRs("fac_bookmark_refreshtime").Value;
|
|
|
|
if (oRs("prs_perslid_key_auth").Value)
|
|
{
|
|
Session("fallback_user_key") = oRs("prs_perslid_key_auth").Value; // wordt opgepikt door loginTry.asp
|
|
}
|
|
else
|
|
Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp
|
|
|
|
var params = oRs("fac_bookmark_query").Value;
|
|
if (params)
|
|
{
|
|
if (keyparam > -1)
|
|
{
|
|
rest = rest.substring(("k="+keyparam).length+1);
|
|
params += keyparam;
|
|
}
|
|
if (rest)
|
|
params += "&" + rest;
|
|
}
|
|
else
|
|
{
|
|
if (rest)
|
|
params = rest;
|
|
}
|
|
oRs.Close();
|
|
|
|
// Als getQParam maar dan uit een string. Altijd null als niet gevonden
|
|
// Let op: de query mag niet (meer) URL-escaped zijn
|
|
function getSParam (key, query)
|
|
{
|
|
var nn = 1;
|
|
var params = query.split("&");
|
|
for (var i in params)
|
|
{
|
|
var xx = params[i].split("=");
|
|
if (xx[0].toUpperCase() == key.toUpperCase() && xx.length > 1)
|
|
{
|
|
return String(xx[1]);
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
if (params)
|
|
url = url + "?" + params;
|
|
|
|
// Als de bookmark een refreshrate heeft ingesteld wordt automatisch gerefreshed
|
|
// Voorkom recursie met norefresh
|
|
// Testen op referrer=refresher.asp is mij niet stabiel genoeg
|
|
if (refresher > 0 && getQParamInt("norefresh",0) == 0)
|
|
{
|
|
theURL = "appl/shared/refresher.asp?url=" + Server.URLencode("/?norefresh=1" + transitQS()) + "&refreshrate=" + refresher;
|
|
}
|
|
else
|
|
var theURL = protectQS.create(url);
|
|
Response.Redirect(theURL);
|
|
%>
|
|
|