修改用于短标记解析的服务器信息

问题描述:

我在下面的代码中解析错误。我可以用更多的组合形式或更好的方式编写这些代码吗?修改用于短标记解析的服务器信息

 <?php if((!isset($_SESSION["userkey"])) || (!isset($_SESSION["username"])) || (!isset($_SESSION["userauthorisation"])) ) 
     { ?> 
      <div id="loginbox" > 
       <form id="loginform" name="loginform" style="margin:0px; background:#000;"> 
        XYZ FORM 
       </form> 
      </div> 
     <? } ?> 

如果我用<?php ?>虽然问题解决了。但是,我可以修改我的服务器信息,例如<? ?>,它不会给我错误的短标记。我正在使用XAMPP服务器。

你会得到什么错误?

也许你应该使用完整的PHP代码中的最后一行:

<?php if((!isset($_SESSION["userkey"])) || (!isset($_SESSION["username"])) || (!isset($_SESSION["userauthorisation"])) ) 
    { ?> 
     <div id="loginbox" > 
      <form id="loginform" name="loginform" style="margin:0px; background:#000;"> 
       XYZ FORM 
      </form> 
     </div> 
    <?php } ?> 
+0

是的我在最后一行得到解析错误。可能是我没有使用PHP完整标记...我如何修改我的phpinfo信息,以便它不会给我错误 ?>?我正在修改我的问题 –

+1

+1可能是正确的答案。还要注意,整个if语句可以更整齐地写成:if(!isset($ _ SESSION [“userkey”],$ _SESSION [“username”],$ _SESSION [“userauthorisation”])){'仍然意味着一样。 – DaveRandom

+0

@RahulSingh你正在寻找的选项是['short_open_tag'](http://php.net/manual/en/ini.core.php)。你必须在php.ini中修改它 - 它不能**在运行时用'ini_set()'来控制。但是,只需使用完整的 DaveRandom

有没有语法错误,但你可能不得不从<?切换到<?php

有太多“ )' - 括号 - 我想通过你复制粘贴,错误

行应该是

if(!isset($_SESSION["userkey"]) || !isset($_SESSION["username"]) || !isset($_SESSION["userauthorisation"]) ) 

你在哪一行得到解析错误?

只是一个说明;围绕isset()函数的paranthesis不是必需的;这会做; (例如,在一个视图)

if(!isset($_SESSION['userkey']) || !isset(...)) 
{ 
.... 
} 

此外,如果你写在HTML的“环境”你PHG代码,通常的做法是使用替代语法;

<?php if(!isset($_SESSION['userkey']) || ...): ?> 
    your html 
<?php endif; ?> 
+0

伟大的新语法对我来说肯定会使用它。我如何为ifelse链式语句编写它? –

+0

确实回复我的两个问题? –

+1

基本相同:' html morehtml html的最后部分'与循环相同:'循环这个,

即。 ' – giorgio

要回答新近更新的问题,你需要做的是改变short_open_tag在php.ini指令1

只需打开您的php.ini文件,搜索short_open_tag(它将被设置为0)并将其值更改为1

但是,只使用完整的<?php标签会更好,因为这会使您的代码更具可移植性。你有什么理由不能这样做?

要回答新近更新的问题,你需要做的是改变short_open_tag在php.ini指令1

只需打开您的php.ini文件,搜索short_open_tag(它将被设置为0)并将其值更改为1

但是,只使用完整的<?php标签会更好,因为这会使您的代码更具可移植性。你有什么理由不能这样做?