在ColdFusion中使用PHP:如何转换或实现

Tre*_*ell -1 php coldfusion

我被要求建立一个"你是不是超过21岁?" 在酿酒厂的网站上弹出.我通常用PHP编写代码,团队很难获得他们网站的登录凭据.我想,当我等待时,我会在我的网站上编码,当他们让我访问时,我可以把它放到新网站上(你可以看到我的网站上的弹出窗口是什么样的).幸运的是当他们让我访问该网站时,它是使用ColdFusion构建的,我不知道如何使用.我已经做了一些关于如何使用CF的初步研究,但是我不愿意为这个项目学习一种全新的语言.我已经在下面包含了我的代码,是否有人能够1)向我展示如何在CF环境中实现PHP代码或2)帮助我将下面的代码转换为CF. 谢谢你的帮助!

在标题中:

此代码只是查看URL中的'over21'变量是否设置为1,或者前一个会话是否设置了'over21'变量.如果"重定向"设置为1,则会发送到google.com.

<?php if($_GET['redirect'] == 1){
    header("Location: http://google.com");
}?>

<?php
session_start();

if(!isset($_SESSION['over21']) || (isset($_GET['over21']))){
    if($_GET['over21']==1){
        $_SESSION['over21'] = 1;
    } elseif($_GET['over21']!=1){
        $_SESSION['over21']=0;
    } else {
        $_SESSION['over21']=0;
    }
} elseif($_GET['over21']){
    $_SESSION['over21'] = $_GET['over21'];
}
?>
Run Code Online (Sandbox Code Playgroud)

在身体里:

<?php if(!isset($_SESSION['over21']) || ($_SESSION['over21']==0)){?>
    <div class="splash">
        <div class="splash-bg">
            <form method="get">
                <button class="yes-button" type="submit" name="over21" value="1" />
                <button class="no-button" type="submit" name="redirect" value="1" onclick="alert('Please come back and visit us when you are 21.')" />
            </form>
        </div>
    </div>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)

Ada*_*ron 6

我不会为你编写代码(那里的乐趣在哪里)?这里有一些拼图:

  • <cfscript></cfscript>不包含代码块<?php ?>
  • 而不是$_GET,在URL上传递的params通过URL范围引用,例如:URL.redirect;
  • 无需将HTTP标头设置为重定位到其他URL; 使用location("http://google.com")
  • 不需要关联数组表示法; 只是点符号通常有效(按照之前的说法)
  • 而不是isset(),使用structKeyExists(),例如:structKeyExists(session, "over21")
  • session 也是一个范围,所以只需对其变量使用点符号,例如: session.over21
  • 其余if()块的脚本语法在CFML中是相同的,包括变量赋值和布尔运算符.
  • 一个人无法开始这样的会议; 它需要配置@应用程序级别(我相信PHP仍然没有使用的概念).您是否在祖先目录中的此目录中有Application.cfc(或旧学校:Application.cfm)?如果是这样......呃......好好阅读Application.cfc上的文档.这里没有重复它们.

至于HTML位,使用CFML标签而不是脚本:

<cfif condition>
    <!-- mark-up here -->
</cfif>
Run Code Online (Sandbox Code Playgroud)

condition会主要是我按照上面,除了运营商是不同的.EQ因为==,OR||

这可能是一个想法,然后在codereview上弹出你的代码,所以ppl可以给它一次.