PHP 粘性表格

PHP Sticky Forms

我一直在为 php 做一个关于粘滞键的项目。这很简单。但是我遇到了一些错误...我正在使用 CodeLobster。

谁能帮我找出我在这方面的错误? 我已经找了 2 个小时了,我尝试了调试,但我真的不知道如何在这里使用它。

非常感谢。任何帮助将不胜感激

这就是我得到的:

输出应该是这样的:

<html><head><title>Empty Fields</title>
<body><div align="center">
    <h2>Validating Input</h2>
    <?php
        $errors = array();

        if(isset($_POST['submit'])){
            validate_input();

            if(count($errors) != 0){
                display_form();
            }
            else{
                echo "<b>OK! Go ahead and Process the form!</b><br/>";
            }

        }
        else{
            display_form();
        }

        function validate_input(){
            global $errors;

            if($_POST['name'] == ""){
                $errors['name'] = "<font color='red'>***Your name?***</font>";
            }

            if($_POST['phone'] == ""){
                $errors['phone'] = "<font color='red'>***Your phone?</font>";
            }
        }

        function display_form(){
            global $errors;
    ?>
            <b>
            <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                What is your name?<br/>
                <input type="text" name="name" value="<?php echo $_POST['name']; ?>" /><br/>
                <?php echo $errors['name']; ?><br/>
                What is your phone number?<br/>
                <input type="text" name="phone" value="<?php echo $_POST['phone']; ?>" /><br/>
                <?php echo $errors['phone']; ?><br/>
                <input type="reset" />
                <input type="submit" name="submit" /><br/>
            </form></b>
    <?php
        }
    ?>
    </div>
</body>
</html>
Can you please check once this code:-

<html><head><title>Empty Fields</title>
<body><div align="center">
    <h2>Validating Input</h2>
    <?php
        $errors = array();

        if(isset($_POST['submit'])){
            validate_input();

            if(count($errors) != 0){
                display_form();
            }
            else{
                echo "<b>OK! Go ahead and Process the form!</b><br/>";
            }

        }
        else{
            display_form();
        }

        function validate_input(){
            global $errors;

            if($_POST['name'] == ""){
                $errors['name'] = "Your name?";
            }

            if($_POST['phone'] == ""){
                $errors['phone'] = "Your phone?";
            }
        }

        function display_form(){
            global $errors;
    ?>
            <b>
            <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                What is your name?<br/>
                <input type="text" name="name" value="<?php if(isset($_POST['name'])){echo $_POST['name'];} ?>" /><br/>
                <?php if(isset($errors['name'])){echo $errors['name'];} ?><br/>
                What is your phone number?<br/>
                <input type="text" name="phone" value="<?php if(isset($_POST['name'])){$_POST['phone'];} ?>" /><br/>
                <?php if(isset($errors['phone'])){echo $errors['phone'];} ?><br/>
                <input type="reset" />
                <input type="submit" name="submit" /><br/>
            </form></b>
    <?php
        }
    ?>
    </div>
</body>
</html>

我试着修改你的代码,有很多地方需要修正。
首先,您需要将 $_POST['name'] 和 $_POST['phone'] 保存在变量中,以便于在每个函数中使用。 像这样,

$name = (isset($_POST['name']) ? $_POST['name'] : '');
$phone = (isset($_POST['phone']) ? $_POST['phone'] : '');

您还需要在需要使用该变量的函数的第一行添加以下代码

global $name;
global $phone;

在函数 display_form 中你需要检查 $errors[[=​​23=]] 和 $errors[[=​​23=]] 在打印(回显)行之前是否为空。

if (isset($errors['name'])) echo $errors['name'];
if (isset($errors['phone'])) echo $errors['phone'];

所以,最后的代码应该像下面这样,我试过这段代码没有错误。

<html>
<head><title>Empty Fields</title>
<body>
<div align="center">
    <h2>Validating Input</h2>
    <?php
        $errors = array();

        $name = (isset($_POST['name']) ? $_POST['name'] : '');
        $phone = (isset($_POST['phone']) ? $_POST['phone'] : '');

        if(isset($_POST['submit']))
        {
            validate_input();

            if(count($errors) != 0)
            {
                display_form();
            }
            else
            {
                echo "<b>OK! Go ahead and Process the form!</b><br/>";
            }

        }
        else
        {
            display_form();
        }

        function validate_input(){
            global $errors;
            global $name;
            global $phone;

            if($name == '')
            {
                $errors['name'] = "<font color='red'>***Your name?***</font>";
            }

            if($phone == '')
            {
                $errors['phone'] = "<font color='red'>***Your phone?</font>";
            }
        }

        function display_form(){
            global $errors;
            global $name;
            global $phone;
    ?>
            <b>
            <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                What is your name?<br/>
                <input type="text" name="name" value="<?php echo $name; ?>" /><br/>
                <?php if (isset($errors['name'])) echo $errors['name']; ?><br/>
                What is your phone number?<br/>
                <input type="text" name="phone" value="<?php echo $phone; ?>" /><br/>
                <?php if (isset($errors['phone'])) echo $errors['phone']; ?><br/>
                <input type="reset" />
                <input type="submit" name="submit" /><br/>
            </form></b>
    <?php
        }
    ?>
    </div>
</body>
</html>

只需使用isset($var);避免 Undefined index: ERROR on php.

echo isset($_POST['name']); echo isset($_POST['phone']);

任何你需要的地方。