Cakephp本地会话逻辑

时间:2013-05-20 16:59:34

标签: php session cakephp

如果在会话中检查customer_id,我有一个简单的方法。

<?php if($this->Session->read('customer_id')){ ?>
    <?php echo $this->element('watchlist'); ?>      
<? } else { ?>
    <?php echo $this->element('recently_sold'); ?>              
<?php } ?>

这很简单,但是当我访问该页面时,customer_id为null,并且两个元素都不显示。当我登录时,显示元素。这里的逻辑真的很奇怪,我不知道从哪里开始。我尝试检查null并使用is_numeric,但仍然是相同的结果。有没有人在这样的本地环境会议上遇到任何问题?

由于

1 个答案:

答案 0 :(得分:2)

您的PHP设置是否识别PHP 短标记 <? ... ?>而不是<?php ... ?>

如果没有,那么你的} else {语句将不被识别为PHP,因此当if语句为真时,两个echo都会发生(你应该看到“&lt;?} else {?&gt ;“如果仔细观察,请在源代码中以文本形式打印出来。”

就像@Chris Hendy上面说的那样,无缘无故地打开和关闭PHP标签令人困惑。

不应使用短标签,因为它们是服务器设置,并且大多数服务器默认情况下不启用它们。从PHP 5.4开关上有短标签,区别在于“echo short tag”