条件语句出错

时间:2013-10-07 17:49:07

标签: php conditional-statements

我在文件settings.php中有以下文字:

etc... //USTAWIENIA PODSTAWOWE 
define("P2_PAGE_CLOSED", "true"); // przerwa techniczna - prawidłowe wartości = true lub false
define("P2_PAGE_CLSTXT", "Przepraszamy za utrudnienia - strona tymczasowo nieczynna"); //opis wyświetlany w przypadku przerwy technicznej
define("P2_PAGE_BGCOLOR", ""); //inny niż biały kolor tła - należy zapisać w postaci heksadecymalnej (musi zawierać # !)
define("P2_PAGE_TITLE", "Portal Uczniowski 2.0 - {title}"); // tytuł strony - {title} = nazwa aktualnie przeglądanej strony
define("P2_PAGE_INDEX", "true"); // czy strona ma być indeksowna przez wyszukiwarki internetowe - prawidłowe wartości = true lub false
define("P2_PAGE_KEYWORDS","portal uczniowski 2.0"); // słowa kluczowe dla wyszukiwarki - może pozostać puste w przypadku gdy wartość pola P2_PAGE_INDEX jest równa false
define("P2_PAGE_DESC","Portal Uczniowski"); // opis strony w wyszukiwarce - - może pozostać puste w przypadku gdy wartość pola P2_PAGE_INDEX jest równa false
define("P2_PAGE_ONLYREG", "true"); //tylko zarejstrowani użytkownicy mogą odwiedzić stronę - prawidłowe wartości = true lub false
// etc...

我有一个函数(在文件core.inc中),它验证了settings.php的正确性:

function core_validateSettings()
{
include_once("settings.php");

if(P2_PAGE_CLOSED != "false" && P2_PAGE_CLOSED != "true") { echo "Błąd w stałej ustawień P2_PAGE_CLOSED"; return false;}
if(P2_PAGE_INDEX != "false" && P2_PAGE_INDEX != "true") { echo "Błąd w stałej ustawień P2_PAGE_INDEX"; return false;}
if(P2_PAGE_ONLYREG != "false" && P2_PAGE_ONLYREG != "true") { echo "Błąd w stałej ustawień P2_PAGE_ONLYREG"; return false;}
if(P2_SEC_HOTLINK != "false" && P2_SEC_HOTLINK != "true") { echo "Błąd w stałej ustawień P2_SEC_HOTLINK"; return false;}
if(P2_SEC_REQMAIL != "false" && P2_SEC_REQMAIL != "true") { echo "Błąd w stałej ustawień P2_SEC_REQMAIL"; return false;}
if(P2_SEC_RECPASS != "false" && P2_SEC_RECPASS != "true") { echo "Błąd w stałej ustawień P2_SEC_RECPASS"; return false;}

if(!is_int(P2_SEC_MINPASS)) { echo "Błąd w stałej ustawień P2_SEC_MINPASS"; return false;} 
if(!is_int(P2_SEC_MAXPASS)) { echo "Błąd w stałej ustawień P2_SEC_MAXPASS"; return false;} 
if(!is_int(P2_SEC_FLOGIN)) { echo "Błąd w stałej ustawień P2_SEC_FLOGIN"; return false;} 

return true;
}

我不知道为什么,但是我的程序的结果(在index.php中我只实现了该功能)是

  

“BłądwstałejustawieńP2_PAGE_CLOSED”

条件语句中是否有错误?它应该什么都不显示!我分析了那段代码三次,但我没有看到任何东西。

2 个答案:

答案 0 :(得分:1)

我假设你不希望你的条件是互斥的。如果是这样,你需要删除它们的返回值,因为它们会跳出整个函数,从而跳过后续的条件。

答案 1 :(得分:1)

因为第一个条件是评估true,我们可以逻辑地假设P2_PAGE_CLOSED != "true"正在评估为true,这意味着include_once方法必定存在问题define调用未执行(假设if语句没有问题)。

此外,打开PHP的more verbose error handling

可能会有所帮助