首页 > 解决方案 > 加载页面时未定义的索引

问题描述

我遇到了一个问题,即在单独加载页面时变量变得未定义......所以。

我的首页有一个地址表格,当填写地址并单击“获取报价”时,它将带您到另一个页面,该地址$_POST['address']在新输入的值中使用。所以value="<?php echo $_POST['address']; ?>"

我的问题是,在不使用首页表单的情况下加载报价页面时,它会给我错误

<br /><b>Notice</b>:  Undefined index: address in <b>C:\xampp\htdocs\offer\index.php</b> on line <b>228</b><br />Address        

这是有道理的。所以我试图通过将其放入来修复它value=

<?php
                                                 $carryover = $_POST['address'] or empty($carryover); 
                                                 if(empty($carryover)) {
                                                    echo 'Enter Address';
                                                 } else {
                                                    echo $carryover;
                                                 }

                                                 ?>

它完全没有这样做。

头版形式:

<form method="post" action="/offer/index.php" name="front" id="front">
                                <div class="form-group">
                                    <input type="text" id="autocomplete" onFocus="geolocate()" name="address" id="address" value="" placeholder="123 main st" required>
                                    <button type="submit" class="theme-btn btn-style-nine"><span class="txt">Get your offer</span></button>
                                </div>
                            </form>

                             

报价页面上的表格 2(地址也被结转):

<form class="multisteps-form__form" action="finish.php" id="wizard" method="POST" enctype="multipart/form-data">
    <div class="col-lg-8">
                                            <div class="form-input-inner position-relative has-float-label" >
                                                <input type="text" name="address" id="address" placeholder="Address" value="<?php
                                                 $carryover = $_POST['address']; 
                                                 if(empty($carryover)) {
                                                    echo 'Address';
                                                 } else{
                                                    echo $carryover;
                                                 }

                                                 ?>

                                                 " class="form-control" required>
                                                <label>Address</label>
                                                <div class="icon-bg text-center">
                                                    <i class="fas fa-home"></i>
                                                </div>
                                            </div>
                                        </div>
</form

标签: php

解决方案


未定义索引通知会在您阅读时发生,因此您$_POST['address']之后编写的任何代码都不会影响通知。

检查 $carryover 是否为空为时已晚,您需要检查 $_POST 索引本身是否为空。

代替:

                                             $carryover = $_POST['address']; 
                                             if(empty($carryover)) {
                                                echo 'Enter Address';
                                             } else {
                                                echo $carryover;
                                             }

你需要使用:

                                             if(empty($_POST['address']) {
                                                echo 'Enter Address';
                                             } else {
                                                $carryover = $_POST['address']; 
                                                echo $carryover;
                                             }

推荐阅读