0

我不断收到“注意:未定义的索引:...”我想我知道为什么我只是不知道如何解决它。我有一个 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';
?>
4

1 回答 1

0

Notice: Undefined index:当您访问未设置的数组键时,您会得到。

考虑到您的标题脚本,我认为这就是您收到通知的地方。

您可以尝试像这样避免它:

$moznost = isset($_SESSION['moznost']) ? $_SESSION['moznost'] : -1;

这里如果moznost没有设置,你会得到-1.


顺便说一句:
将英语和斯洛文尼亚语结合起来并不是一个好习惯(如果我猜对了)。
如果您将所有代码保留为英文,您会做得最好,只翻译用户实际可见的内容。

于 2013-08-03T22:18:24.507 回答