我不断收到“注意:未定义的索引:...”我想我知道为什么我只是不知道如何解决它。我有一个 html 表单页面,其中包含所有这些“if”语句,仅在需要时向用户显示消息。我将这个 html 页面包含在一个控制器 php 页面上,该页面具有 $_SESSION 变量,这些变量从我处理数据库操作的后端 php 脚本中获取变量。
因此,为了更容易理解,这里是我正在构建的页面的逻辑流程:HTML(表单页面将数据发送到)---> PHP(处理数据库等的页面,然后将用户重定向到) - --> PHP(向用户显示数据的控制器页面,此处包含html页面)---> HTML(带有表单的原始页面现在向用户显示正确的数据)
但是,每当没有实现 html 中的 if 或 else 语句时,我都会收到有关该变量未定义索引的通知......下面是我的 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';
?>