0

我在文件中有以下文本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łąd w stałej ustawień P2_PAGE_CLOSED"

条件语句有错误吗?它应该什么都不显示!我对该代码进行了三遍分析,但什么也没看到。

4

2 回答 2

1

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

于 2013-10-07T17:51:22.050 回答
1

Because the first condition is evaluating to true, we can logically assume that P2_PAGE_CLOSED != "true" is evaluating to true, which means that there must be an issue with the include_once method that is causing the define calls to not be executed (assuming there are no issues with the if statements).

Also, it might be helpful to turn on PHP's more verbose error handling.

于 2013-10-07T18:19:51.627 回答