If-else条件给我PHP错误

时间:2017-01-16 09:33:20

标签: php session-variables

我有两个网站,每个网站都有自己的域名。在加载时,我执行了一个在两个站点上使用的php文件,并具有相同的功能。

以下是该文件的代码:

<?php
echo    '1';
if ($_SESSION["template"]=="template1";)
{
    echo    '2';
    if ($_REQUEST["cmdAction"]=='A')
        echo file_get_contents('http://localhost/images/template1/a.php'); 
    else if ($_REQUEST["cmdAction"]=='B')
        echo file_get_contents('http://localhost/images/template1/b.php');
    else if ($_REQUEST["cmdAction"]=='C')
        echo file_get_contents('http://localhost/images/template1/c.php');
}

else if ($_SESSION["template"]=="template2";)
{
    echo    '3';
    if ($_REQUEST["cmdAction"]=='A')
        echo file_get_contents('http://localhost/images/template2/a.php'); 
    else if ($_REQUEST["cmdAction"]=='B')
        echo file_get_contents('http://localhost/images/template2/b.php');
    else if ($_REQUEST["cmdAction"]=='C')
        echo file_get_contents('http://localhost/images/template2/c.php');
}
else {

echo 'NO DATA';
}
    echo    '4';

?>

在这两个网站的每个网站上,我设置了一个会话变量,但在上面的代码中,它似乎并没有像我预期的那样工作。

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

if()else if()语句中删除分号,在使用嵌套if else时也添加括号,因为它可以让人更容易理解并且看起来更好

    <?php
    echo    '1';
    if ($_SESSION["template"]=="template1") 
    {
        echo    '2';
        if ($_REQUEST["cmdAction"]=='A')
        {
            echo file_get_contents('http://localhost/images/template1/a.php'); 
        } 
        else if ($_REQUEST["cmdAction"]=='B') 
        {
            echo file_get_contents('http://localhost/images/template1/b.php');
        } 
        else if { ($_REQUEST["cmdAction"]=='C') 
        {
            echo file_get_contents('http://localhost/images/template1/c.php');
        }
    } 
    else if ($_SESSION["template"]=="template2") 
    {
        echo    '3';
        if ($_REQUEST["cmdAction"]=='A') 
        {
            echo file_get_contents('http://localhost/images/template2/a.php'); 
        } 
        else if ($_REQUEST["cmdAction"]=='B') 
        {
            echo file_get_contents('http://localhost/images/template2/b.php');
        } 
        else if ($_REQUEST["cmdAction"]=='C') 
        {
            echo file_get_contents('http://localhost/images/template2/c.php');
        }
    }
    else {
        echo 'NO DATA';
    }
    echo    '4';
?>

答案 1 :(得分:1)

在审核完您的代码后,我编辑了我的答案。下面的代码与您的代码完全相同,但需要的代码很少。

<?php
if (isset($_SESSION['template']) && isset($_REQUEST['cmdAction'])) {
    echo file_get_contents('http://localhost/images/'.$_SESSION['template'].'/'.strtolower($_REQUEST['cmdAction']).'.php'); 
} else {
    echo 'NO DATA';
}
?>