2017-01-16 2 views
0

У меня есть два веб-сайта, каждый из которых имеет собственное доменное имя. При загрузке я выполняю php-файл, который используется на обоих сайтах и ​​имеет ту же функциональность.Условие If-else дает мне ошибки в 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'; 

?> 

На каждом из этих двух сайтов, которые я установил переменную сеанса, но в приведенном выше коде, кажется, не работает, как я ожидаю, что это.

Я что-то не хватает?

+0

Удалить точки с запятой от if и else, если скобки и проверить значения переменной сеанса. – Bhavin

+0

Все может быть выполнено с помощью 'echo file_get_contents ('http: // localhost/images /'. $ _SESSION [" template "]. '/'. Strtolower ($ _ REQUEST [" cmdAction "]). '.php'). ; '. Также 'isset ($ _ SESSION [" template "])' & 'isset ($ _ REQUEST [" cmdAction "])' требуется. –

ответ

1

удалить точку с запятой из if() и else if() заявления, а также добавить скобки при использовании вложенной если еще, потому что это делает кто-то, чтобы понять легче и выглядит лучше

<?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

После анализа кода я редактировал свой ответ. Следующий код будет делать точно так же, как ваш код, но требует гораздо меньше кода.

<?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'; 
} 
?> 
Смежные вопросы