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

时间:2011-10-13 10:39:25

标签: php fatal-error

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

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

hsc功能

public function hsc($string) {
    return htmlspecialchars($string);
}

我的注册表单有问题。当我在sign_up对象上调用上面的函数时,即使在表单被提交之前表单中断,也只会输出第一个标签。

输出

您的名字(缺少表格的其余部分)

问题代码

    value="<?php echo $sign_up->hsc($_POST['name']);?>" />

如果我从值中删除上面的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>

1 个答案:

答案 0 :(得分:1)

这里已经在提交表单后在条件中定义了类new Signup_User();

如果条件: -

,请尝试移动$sign_up = new Signup_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();
    }

}