2

現在、Coldfusionコーディングを少し学んでおり、古いPHP Webサイト全体を洗練されたColdfusionコードに変換していますが、数行のPHPでスタックしているため、これらをどのように変換すればよいかわかりません。コードの行を適切なColdfusionコードに変換します。

function access()   
{   
  $accesscode = $_GET["accesscode"];
  $time = (int)$_GET["time"];        
  $ip = $_GET["ip"];                

  // Time variable must be identical 
  if( time() < $time )  
      {  
      die("Locale time is ". (time()-$time) ."sec. is not correct.");  
      }  

 // Check client IP
  if( $ip <> $_SERVER["REMOTE_ADDR"] )  
      {  
      die("Client IP ".$_SERVER["REMOTE_ADDR"]." is not identical as ".$ip." used."); 
      }  

  // Time > 10 minutes is no access
  for ($c=0;$c<=3;$c++)   
    {   
    $t = substr(strftime("%Y%m%d%H%M", time()-($c*600)),0,11);   
    $hash = md5($ip. "9709f31be0". $t);   
    if( $hash == $accesscode ) return true;  
    }  

return false;  
}  

if (!access())      
{   
  die ("Access denied..");   
}   
Echo "Access approved.";  

これらのコード行を変換する方法について誰かが私にいくつかのヒントを与えるのを手伝ってくれるなら、私は非常に素晴らしいでしょう。

よろしくお願いします、

4

1 に答える 1

5

あなたがそれを行うことができるいくつかの方法...しかし、私はphpについてあまり知らないので、私はいくつかの仮定をしなければなりませんでした。

<cffunction name="access" access="public" returntype="struct">
  <cfargument name="accesscode" type="string" required="yes">
  <cfargument name="time" type="string" required="yes">
  <cfargument name="ip" type="string" required="yes">

  <cfset var temp = StructNew()>
  <cfset temp.time = Now()>
  <cfset temp.errormsg = "">

  <cfif temp.time lt arguments.time>
     <cfset temp.errormsg = "(your error message here)">
  </cfif>

  <cfif cgi.remote_addr neq arguments.ip>
     <cfset temp.errormsg = "(your error message here)">
  </cfif>

  <cfloop index="temp.c" from="0" to="3">
     <!--- not entirely sure what you were doing in here --->
  </cfloop>


  <cfreturn temp>

</cffunction>

<cfset result = access(accesscode="something", time="something", ip="something")>

<cfif result.errormsg neq "">
   <!--- access denied --->
</cfif>
于 2012-10-03T14:09:27.100 に答える