2013-08-06 30 views
0

我很難用isset()函數。究竟如何告訴php,只有當數據分配給我時,可以說$ _SESSION ['msg'];變量,只有激活它,使用它......到目前爲止,我收到了很多通告:未定義指數,該代碼不這樣做也:

if (isset($_SESSION['monster']) & 
isset($_SESSION['spol']) & 
isset($_SESSION['combat']) & 
isset($_SESSION['turns']) & 
isset($_SESSION['zmaga']) & 
isset($_SESSION['zguba']) & 
isset($_SESSION['cekini']) & 
isset($_SESSION['post'])) 

{ 
$monster = $_SESSION['monster']; 
$spol = $_SESSION['spol']; 
$combat = $_SESSION['combat']; 
$turns = $_SESSION['turns']; 
$zmaga = $_SESSION['zmaga']; 
$zguba = $_SESSION['zguba']; 
$cekini = $_SESSION['cekini']; 
$_POST = $_SESSION['post']; 
} 

的數據應該從asigned它重定向以前的網站,但該網站並不總是激活,所以我需要一個替代品。這就是爲什麼我問這個問題。

編輯與全碼:

session_start(); 

include 'razno.php'; 
include 'save.php'; 
include 'stats.php'; 

$igralec_ime = $_SESSION['username']; 
$monster = prikazi_borba($igralec_ime); 
$poskodbe = prikazi_stat('curhp', $igralec_ime); 

if (prikazi_stat('curhp', $igralec_ime) == 0) 
{ 
$moznost = 'Tvoje zdravje je resno ogroženo, vrni se domov!'; 
} 

else if (isset($_SESSION['monster']) && 
isset($_SESSION['spol']) && 
isset($_SESSION['combat']) && 
isset($_SESSION['turns']) && 
isset($_SESSION['zmaga']) && 
isset($_SESSION['zguba']) && 
isset($_SESSION['cekini']) && 
isset($_SESSION['post'])) 
{ 
$monster = $_SESSION['monster']; 
$spol = $_SESSION['spol']; 
$combat = $_SESSION['combat']; 
$turns = $_SESSION['turns']; 
$zmaga = $_SESSION['zmaga']; 
$zguba = $_SESSION['zguba']; 
$cekini = $_SESSION['cekini']; 
$_POST = $_SESSION['post']; 

} 

update_save($igralec_ime, 'gozd', $monster); 

include '../html/gozd.html'; 
?> 
+8

您正在使用按位AND &&而不是邏輯AND &&&'。 – Paulpro

+3

更容易,你可以使用'if(isset($ var1,$ var2,$ var3,...))',如果設置了所有的變量,它將返回'true'。 – ironcito

+0

謝謝,yea prob應該縮短我的代碼。雖然問題仍然存在,但我更新了我的問題 – Matic

回答

0

你會想和更換&:

if (isset($_SESSION['monster']) and isset($_SESSION['spol']) and isset($_SESSION['combat']) and isset($_SESSION['turns']) and isset($_SESSION['zmaga']) and isset($_SESSION['zguba']) & 
isset($_SESSION['cekini']) and isset($_SESSION['post'])) 

{ 
$monster = $_SESSION['monster']; 
$spol = $_SESSION['spol']; 
$combat = $_SESSION['combat']; 
$turns = $_SESSION['turns']; 
$zmaga = $_SESSION['zmaga']; 
$zguba = $_SESSION['zguba']; 
$cekini = $_SESSION['cekini']; 
$_POST = $_SESSION['post']; 
} 
+0

男士們感謝你們,儘管我仍然得到了「注意:未定義的變量:spol ...」,變量是不可見的,因爲它根本就不存在。也許我的問題可能是elswere?我使用完整代碼更新了我的問題 – Matic

+0

它是否包含在您的文件中(我過去遇到過問題)中定義了它?基於這個問題(http://stackoverflow.com/questions/2830334/how-can-i-see-a-variable-defined-in-another-php-file),您需要將這些變量設置爲$ GLOBALS ['var_name'] – Igor

+0

我沒有包含文件我將頁面重定向到一個新頁面,如果使用isset(),但現在有問題,但是沒有使用isset()。在我的重定向頁面上,它們確實被定義爲「$ _SESSION ['spol'] = $ spol;」。你知道可能是什麼問題嗎? – Matic

0

你應該在PHP看看logical operators。在很多編程語言(包括PHP)中,&'按位'和'運算符(不是邏輯)。既然你想要邏輯運算符,你需要使用&&and。還要看看其他PHP運營商,只是爲了熟悉它們並避免這樣的問題。

另外,如果您在if/then塊之外使用這些值,則應該考慮您的語句將爲false並將某些默認值分配給這些變量的情況。

+0

雖然現在應該設置所有東西,但仍然得到通知... – Matic

+0

糾正,他們只是不想得到設定我不知道爲什麼 – Matic

相關問題