我經常收到「通知:未定義指數:......」我想我知道爲什麼我只是不知道如何解決它。我有一個html表單頁面,其中包含所有僅在需要時才向用戶顯示消息的「if」語句。我將這個html頁面包含在一個具有$ _SESSION變量的控制器php頁面上,該變量從我的後端php腳本獲取變量,該腳本處理數據庫操作。修復未定義指數
因此,爲了使其更容易明白這裏是我的邏輯爲我建立的頁面流量:HTML(表單頁面將數據發送到)---> PHP(用於處理數據庫等頁面..然後重定向用戶)---> PHP(控制器頁面顯示的數據給用戶,html頁面被包括在這裏)---> HTML(與原來的表格頁面現在顯示正確的數據到用戶)
但每當如果要不然在html中的語句沒有實現我得到一個關於該變量的未定義索引的通知...下面是我的html和控制器的PHP頁面。比方說,if(!$_POST and $poskodbe != '0')
語句實現,因爲沒有人點擊提交按鈕,精細一切都還好,但我得到通知我第二else if ($poskodbe == '0'){text($moznost);
其內容「通知:未定義指數:moznost」。爲什麼?
HTML:
<html>
<body>
<?php if(!$_POST and $poskodbe != '0') { ?>
<p>Presenetil<?php text($spol); ?> te je <?php text($monster); ?> !</p>
<form action='../php/gozd.php' method='post'>
<input type='submit' name='action' value='Napadi' /> ali
<input type='submit' name='action' value='Pobegni' />
<input type='hidden' name='monster' value= '<?php text($monster); ?>' />
</form>
<?php }
else if ($poskodbe == '0'){text($moznost); ?>
<p><a href='../php/start.php'>Odpravi se proti domu</a></p>
<?php }
else { ?>
<ul><?php foreach ($combat as $turns => $i) { ?>
<li> <p><strong><?php text($i['napadalec']); ?></strong>
<?php text(' napade '); ?><strong><?php text($i['branilec']); ?></strong>
<?php text(' in mu napravi poškodbe za ') ?><strong><?php text($i['damage']); ?></strong>
<?php text(' točk zdravja '); } ?> </p></li>
</ul>
<?php if(isset ($zmaga)) { ?>
<p>Pregnal si <strong><?php text($monster_ime); ?></strong>!
V naglici je za seboj pustil <strong><?php text($cekini); ?></strong> cekinov, ki jih seveda pobereš.</p>
<p><a href='../php/gozd.php'>Raziskuj dalje</a></p>
<?php } ?>
<?php if(isset ($zguba)) { ?>
<p>Podlegel si poškodbam <strong><?php text($monster_ime); ?></strong>.</p>
<?php } ?>
<p><a href='../php/start.php'>Odpravi se proti domu</a></p>
<?php } ?>
</body>
</html>
PHP:
<?php
session_start();
include 'razno.php';
include 'stats.php';
$monster = $_SESSION['monster'];
$spol = $_SESSION['spol'];
$poskodbe = $_SESSION['poskodbe'];
$moznost = $_SESSION['moznost'];
$combat = $_SESSION['combat'];
$turns = $_SESSION['poskodbe'];
include '../html/gozd.html';
?>
呀它斯洛文尼亞,感謝您的回答。我得到了我的控制器php是的通知。小心解釋爲什麼?我的變量是在我的主php中設置的,它將數據添加到$ moznost中......或者至少我認爲是這樣,無論如何,你對「set」有什麼意思? – Matic
那麼,如果你的$ _SESSION中沒有'moznost'鍵,你會得到這個通知。您可以嘗試通過在代碼中添加少量「echo」來確定通知的確切位置。例如,你可以在'包含'之後在'SessionRead'之後放置'echo';'/ html/gozd.html';' - 這樣,你會看到*發生了通知的地方。 – MightyPork
其實它可以發生在你的任何數組中,所以你還應該檢查'$ i ['napadalec']'和類似的行爲是不是你注意到的原因。 – MightyPork