coldfusion 8 - Stripping Out the File Name in the URL -


i'm working on final version of script i've been working on week or so. got working liking except last 1 variable finalscriptpath maps table columnscriptpath, strip page name out of url path path "www.example.com/products/2015/example.cfm render "products\2015" folder structure. see included snip.sample of code result here code far:

!---function named endrequestfunc testing safely on cf server---> <!---rename function onrequeststart , place in application.cfm file before running live---> <cffunction name="endrequestfunc" access="public" returntype="string"> <!---variable declared , set empty---> <cfset referer_path_and_file = ""> <cfset referer_path = ""> <cfset referer_file_name = ""> <cfset script_path_and_file = ""> <cfset script_path = ""> <cfset script_file_name = "">  <cfif cgi.http_referer neq ''>   <!--- of fail if there no referer, instance, if bookmark page --->   <!--- cgi.http_referer may contain url parameters, let's strip --->   <cfset referer_path_and_file = listfirst(cgi.http_referer, "?")>   <!--- let's path, stripping out web server info --->   <cfset referer_path = listdeleteat(cgi.http_referer, listlen(cgi.http_referer, "/"), "/")>   <cfset referer_path = replacenocase(referer_path, "https", "", "all")>   <cfset referer_path = replacenocase(referer_path, "http", "", "all")>   <cfset referer_path = replacenocase(referer_path, "://machine1.fss.com", "", "all")>   <cfset referer_path = replacenocase(referer_path, "://www_dev.fss.com", "", "all")>   <cfset referer_path = replacenocase(referer_path, "://www.fss.com", "", "all")>   <cfset referer_path = replacenocase(referer_path, "://10.11.2.60/", "", "all")>   <cfset referer_path = referer_path & "/">   <cfset referer_path = replacenocase(referer_path, "/", "\", "all")>   <!--- let's remove file name --->   <cfset referer_file_name = listlast(referer_path_and_file, "/")>   <!--- , leaves these variables set --->  <!--- referer_path_and_file = "#referer_path_and_file#"<br />   referer_path = "#referer_path#"<br />   referer_file_name = "#referer_file_name#"<br />   <br />---> </cfif>  <!--- cgi.script_name not include url parameters ---> <cfset script_path_and_file = listfirst(cgi.script_name, "\")> <!--- let's path, stripping out web server info ---> <cfset script_path = getdirectoryfrompath(getcurrenttemplatepath())> <cfset script_path = replacenocase(script_path, "c:\inetpub\wwwroot\clients\fss.com\www_dev", "", "all")> <cfset script_path = replacenocase(script_path, "c:\inetpub\wwwroot\clients\fss.com\www", "", "all")> <!--- let's remove file name ---> <cfset script_file_name = listlast(script_path_and_file, "/")> <!--- , leaves these variables set---> <!---script_path_and_file = "#script_path_and_file#"<br /> script_path = "#script_path#"<br /> script_file_name = "#script_file_name#"<br />---> <!---<!---cfc test query--->    <cfquery name="qrytest" datasource="fss_dev" > insert tblcfmpagerequest(pagename)      values            ('mypage.cfm')    </cfquery>--->  <!---directory stripping , modifier block goes here---> <!---set cgi system variables---> <cfset currentheader = cgi.http_referer > <cfset currentscriptpage = cgi.script_name >  <!---set currentscriptpage command line directory string , delcare new variable "reversescriptpage"---> <cfset reversescriptpage = rereplace(#currentscriptpage#, "/", "\","all")> <!---set reversescriptpage value newly format command line directory structure---> <cfset newscriptpage = listsetat(#reversescriptpage#, 1, "#reversescriptpage#") > <cfset lastscriptpage = listfirst(#newscriptpage#, "/") > <!---added 5/11/2015--->  <cfset  finalscriptpage = listsetat(#lastscriptpage#, 1, "#lastscriptpage#") > <cfset finalscriptpath = rereplace(#finalscriptpage#, "/", "\","all") >   <!---cgi.http_header formatting block---> <!---this block retrieves http header value, strips http formatting---> <!---currentheader variable truncated listlast assigned variable headerfilename---> <cfset headerfilename = listlast(#currentheader#,"/")> <!---currentheader url string has "/" replaced "\" characters set variable reverseheaderurl---> <cfset reverseheaderurl = rereplace(#currentheader#, "/", "\","all")> <!---reverseheaderurl stripped of known http type formattings , ip formattings---> <cfif cgi.http_referer neq ''> <cfset reverseheaderurl = listdeleteat(cgi.http_referer, listlen(cgi.http_referer, "/"), "/")>   <cfset reverseheaderurl = replacenocase(reverseheaderurl, "https", "", "all")>   <cfset reverseheaderurl = replacenocase(reverseheaderurl, "http", "", "all")>   <cfset reverseheaderurl = replacenocase(reverseheaderurl, "://machine1.fss.com", "", "all")>   <cfset reverseheaderurl = replacenocase(reverseheaderurl, "://www_dev.fss.com", "", "all")>   <cfset reverseheaderurl = replacenocase(reverseheaderurl, "://www.fss.com", "", "all") >   <cfset reverseheaderurl = replacenocase(reverseheaderurl, "://machine1.fss.com", "", "all")>   <cfset reverseheaderurl = replacenocase(reverseheaderurl, "://10.11.2.60/", "", "all")>   <cfset reverseheaderurl = replacenocase(reverseheaderurl, ":\\dev.fss.com\", "", "all")> <!---added line 5/11/2015--->   <!---the end result formatted c:\\ command line format , stored in new variable newheaderurl--->  <cfset newheaderurl = listsetat(#reverseheaderurl#, 1, "#reverseheaderurl#") > <cfset finalheaderurl = rereplace(#newheaderurl#, "/", "\","all")> </cfif>     <!---queries table requested record--->     <cfquery name="qrygetpagerecord" datasource="fss_dev" dbname="fss_dev">     select referrerpage     tblcfmpagerequest     referrerpage = '#referer_file_name#' , scriptname = '#script_file_name#'     </cfquery>     <!---conditional check record count equal 0--->     <cfif qrygetpagerecord.recordcount eq 0>     <!---<cfset httpreferer = listlast('http://www.fss.com/index.cfm?uid=testvalue',"/")>     <cfset listfirst(httpreferer,"?")>--->     <!---variable declared scriptname , set equal cgi.script_name --->     <!---value truncated actual file name through function listlast() --->     <cfquery name="setnewrecord" datasource="fss_dev" dbname="fss_dev">     insert tblcfmpagerequest (referrerpage, referrerpath, scriptname, scriptpath)     values (<cfqueryparam cfsqltype="cf_sql_varchar" value="#referer_file_name#">,             <cfqueryparam cfsqltype="cf_sql_varchar" value="#finalheaderurl#">,              <cfqueryparam cfsqltype="cf_sql_varchar" value="#script_file_name#">,              <cfqueryparam cfsqltype="cf_sql_varchar" value="#finalscriptpath#">)   </cfquery>     </cfif> </cffunction> 

found solution after trial , error working code block in particular. below solution worked strip out file name, leaving path.

<cfif cgi.path_info neq ''>   <cfset script_path_and_file = listfirst(cgi.path_info, "?")>  <cfset script_path = listdeleteat(cgi.path_info, listlen(cgi.path_info, "/"), "/")>   <cfset script_path = replacenocase(script_path, "https", "", "all")>   <cfset script_path = replacenocase(script_path, "http", "", "all")>   <cfset script_path = replacenocase(script_path, "://machine1.fss.com", "", "all")>   <cfset script_path = replacenocase(script_path, "://www_dev.fss.com", "", "all")>   <cfset script_path = replacenocase(script_path, "://www.fss.com", "", "all")>   <cfset script_path = replacenocase(script_path, "://10.11.2.60/", "", "all")>   <cfset script_path = script_path & "/">   <cfset script_path = replacenocase(script_path, "/", "\", "all")> <cfset script_file_name = listlast(script_path_and_file, "/") > </cfif>  <cfset script_path = getdirectoryfrompath(getcurrenttemplatepath())> <cfset script_path = replacenocase(script_path, "c:\inetpub\wwwroot\clients\fss.com\www_dev", "", "all")> <cfset script_path = replacenocase(script_path, "c:\inetpub\wwwroot\clients\fss.com\www", "", "all")> <cfset script_path = replacenocase(script_path, "c:\inetpub\wwwroot\", "", "all")> <cfset script_file_name = listlast(script_path_and_file, "/")>      <cfquery name="setnewrecord" datasource="fss_main_dev" dbname="fss_dev">     insert tblcfmpagerequest (referrerpage, referrerpath, scriptname, scriptpath)     values (<cfqueryparam cfsqltype="cf_sql_varchar" value="#referer_file_name#">,             <cfqueryparam cfsqltype="cf_sql_varchar" value="#finalheaderurl#">,              <cfqueryparam cfsqltype="cf_sql_varchar" value="#script_file_name#">,              <cfqueryparam cfsqltype="cf_sql_varchar" value="#script_path#">)   </cfquery>  </cffunction> 

Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -