html表单输入值,不会回显php对象函数htmlspecialchars

html表单输入值,不会回显php对象函数htmlspecialchars,php,fatal-error,Php,Fatal Error,我已经实现了子类来处理从父类继承的用户输入,父类处理数据库连接、读和写 在我的父类中,我有一个名为“hsc”的函数,它处理“htmlspecialchars”,该函数过滤用户输入并返回字符串 hsc功能 public function hsc($string) { return htmlspecialchars($string); } 我的报名表有问题。当我在sign_up对象上调用上述函数时,即使在提交表单之前,表单也会中断,然后只输出第一个标签 输出 您的名字(表单的其余部分缺失)

我已经实现了子类来处理从父类继承的用户输入,父类处理数据库连接、读和写

在我的父类中,我有一个名为“hsc”的函数,它处理“htmlspecialchars”,该函数过滤用户输入并返回字符串

hsc功能

public function hsc($string) {
    return htmlspecialchars($string);
}
我的报名表有问题。当我在sign_up对象上调用上述函数时,即使在提交表单之前,表单也会中断,然后只输出第一个标签

输出

您的名字(表单的其余部分缺失)

问题代码

    value="<?php echo $sign_up->hsc($_POST['name']);?>" />
value=”“/>
如果我从value中删除上面的php代码,那么表单将正确显示,并且我可以在php标记中回显文本,所以问题似乎出在函数上

当我试图弄明白这一点时,我是否使用了正确的方法,即使用类来验证用户输入

希望有人能帮忙

谢谢

请参阅我在下表中使用的代码

    <?php
    include('./classes/signup_class.php');

    if(isset($_POST['submit'])) {
//require('./classes/signup_class.php');
try {   
        $sign_up = new Signup_User();
        $sign_up->processUserInput();
        $errors = $sign_up->getErrorMessages();

    }catch (Exception $e) {
        echo $e->getMessage();
    }

}
    ?>


    <form id="sign_up" method="post" action="">
<p>
<label for="name">Your First Name</label>
<input name="name" id="name" type="text" 
    value="<?php echo   $sign_up->hsc($_POST['name']);?>" />
</p>
<p>
<label for="surname">Your Last Name</label>
<input name="surname" id="surname" type="text" /> 
</p>
<p>
<label for="email">Your Email Address</label>
<input name="email" id="email" type="text"/>
</p>
<p>
<label for="emailconf">Confirm Your Email Address</label>
<input name="emailconf" id="emailconf" type="text"/>
</p>
<p>
<label for="gender">Your Gender</label>
<select class="gender_select" name="gender">
<option value="female">Female</option>
<option value="male">Male</option>
</select>
</p>
<p>
<label for="password">Choose Your Password (8 characters)</label>
<input name="password" id="password" type="password">
</p>
<p>
<label for="passconf">Confirm Your Password</label>
<input name="passconf" id="passconf" type="password">
</p>
<input name="submit" id="submit" type="submit" value="signup" class="sign_up" >
    </form>


你的名字

这里定义了类
newsignup_User()在提交表单后为true的条件下

尝试移动
$sign\u up=new Signup\u User()在此之前,如果条件:-

$sign_up = new Signup_User();

if(isset($_POST['submit'])) {
//require('./classes/signup_class.php');
try {   
        $sign_up->processUserInput();
        $errors = $sign_up->getErrorMessages();

    }catch (Exception $e) {
        echo $e->getMessage();
    }

}

您的脚本中有一个致命错误,但您不知道是哪个错误。启用PHP错误报告/日志记录/显示,检查您的错误日志。@hakre,我将进行一些调查,谢谢现在,我在启动时的输入字段出现错误:
注意:第19行的C:\xampp\htdocs\signup\includes\signup\inc.php中的未定义索引:name
。似乎表单试图在提交表单之前执行php值代码。我已经在我的hsc方法中添加了一个if($\u服务器['REQUEST\u METHOD']=='POST'),但是这不起作用!!!lol解决了这个问题,我修改了表单值来检查帖子,我真傻,错过了!value=”“/>我喜欢学习,砰砰的一声!嗨,莎莉,谢谢你的回复:)。我尝试了你的建议,我得到了相同的结果,我也移除了try-catch块,但结果仍然是一样的!抱歉,sally,我已将对象创建移出if语句。表单显示正确,谢谢!但是,输入字段显示以下内容:
注意:未定义的索引:C:\xampp\htdocs\signup\includes\signup\signup\inc.php中的名称,在第18行
没有问题,Alan:),简单的修复将是:-
value=“