【问题标题】:PHP Multi-page Order FormPHP 多页订购单
【发布时间】:2012-03-19 09:30:39
【问题描述】:

在过去的几天里,这个问题给我带来了很大的压力。我正在尝试设置一个与基于 Typo3 的 CMS 一起使用的多页订单。但是,我发现将会话变量从一个页面传递到另一个页面存在巨大困难。会话代码是正确的。然而,我怀疑我没有按照 CMS 规则手册执行此操作。所以:

我的订单有 4 页。 4 个 .php 文件和 4 个 .tpl 文件。

<form method="post" action="/index.php?puid=3&pageid=176">

    <input type="radio" name="rubrik" onchange="toggleDiv('show',0);toggleDiv('check',0)" value="kfz" />KFZ

    <br></br>
    <input name="rubrik" id="immo" onchange="toggleDiv('show',1);toggleDiv('check',1)" type="radio" value="immobilien" class="static" />Immobilien
        <input type="image" action="/index.php?puid=3&pageid=176" value="submit" src="/images/weiter.png" alt="Submit" style="float:right; margin-right:275px; margin-bottom:50px; margin-bottom:50px; margin-left:25px; text-align:left;" ></input>
</form>

这是我的第一个表格。在 page1.tpl 中。 page2.php 开头是这样的:

<?php   

    session_start();
    $_SESSION['Rubrik wahl'] = 'rubrik';

    if (isset($_POST['rubrik'])){
    $_SESSION['rubrik']=$_POST['rubrik'];
    }

虽然在 page.tpl 我有:

<form method="post" action="/index.php?puid=3&pageid=177">
            <textarea name="inhalt1" cols="40" rows="8" style="width:618px; height:200px;" onKeyDown="textCounter(document.inhalt.inhalt1,document.inhalt.counter,180)" onKeyUp="textCounter(document.inhalt.inhalt1,document.inhalt.counter,180)" ></textarea> 
            <input type="hidden" name="rubrik" value="<?php echo 'rubrik';?>"></input>  
    <br></br><br></br><br></br>     
    <input type="image" action="/index.php?puid=3&pageid=177" value="submit" src="/images/weiter.png" alt="Submit" style="margin-bottom:50px; margin-left:25px; text-align:left; float:right; margin-right:275px; margin-bottom:50px;"></input>

            </form> 

现在为什么“rubrik”变量不能从一个页面传递到另一个页面?

【问题讨论】:

  • 如果您调用自己的页面 (page2.php),您描述的问题超出了 TYPO3 的范围。看起来您正在为页面使用自己的变量(puidpageid)。如何在 TYPO3 中包含 PHP 文件?
  • 生产 CMS 的公司 redFACT 刚刚告诉我,在页面上运行会话是不可能的,因为它是静态的。这可能吗?
  • 取决于你在做什么。如果你绕过 TYPO3 API,那么你就会遇到这类问题。通常 TYPO3 的内容是缓存的,您必须告诉 TYPO3 可能的参数,因此 TYPO3 可以注意为每个参数组合在缓存中存储不同的版本。同样如前所述,您没有使用正常的 get 参数(站点的 id 和什么是 puid?)。除非您告诉我们您真正想要存档的内容以及您目前正在做什么,否则我们可能会为您提供帮助。有多个表单扩展允许您在没有 PHP 的情况下设置表单。

标签: php session session-variables typo3


【解决方案1】:

你是对的。你不这样做,你应该用 TYPO3 做。

但我想,你只是没有使用 TYPO3。 redFact 是由网络机构newsagency 构建的商业 CMS。 TYPO3 本身就是一个开源 CMS,它是由 active community 构建的,而不是由单个公司构建的。

所以,首先检查一下,如果您使用的是 TYPO3,如果是,请购买一本书或查看TERAPI 中的一些扩展。

看看$GLOBALS['TSFE']->fe_user->getKey、setKey 和 $GLOBALS['TSFE']->storeSessionData()

我猜,你会读德语(你的按钮叫做“weiter”)。所以有很多德国的TYPO3书籍。只需购买其中一些并开始使用 API。我知道 Dmitry Dulepov 的一本不错的英文书《Typo3 Extension Development》,即使是 2008 年的,它仍然适用于初学者。

【讨论】:

  • redFACT 实际上是一个基于 Typo3 的 CMS。它是经过大量修改的基本 Typo3。所以适用于 Typo3 的大部分规则都是不可能的。但是,它允许您在预定义类之外定义某些参数。但我不明白为什么它不允许在 .php 文件中启动和运行会话。
  • 如果可以的话,安装扩展kickstarter并写一个插件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 2011-06-10
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多