【问题标题】:html form input value, will not echo php object function htmlspecialcharshtml表单输入值,不会回显php对象函数htmlspecialchars
【发布时间】:2011-10-13 10:39:25
【问题描述】:

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

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

hsc 函数

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

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

输出

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

问题代码

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

如果我从 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>

【问题讨论】:

  • 您的脚本中有一个致命错误,但您不知道是哪一个。启用 PHP 错误报告/记录/显示,检查您的错误日志。
  • @hakre,我会做一些调查! ,谢谢!
  • 我现在在启动时遇到输入字段错误:
    注意:未定义索引:C:\xampp\htdocs\signup 中的名称\includes\sign_up_inc.php 在第 19
    行。在提交表单之前,表单似乎正在尝试执行 php 值代码。我在我的 hsc 方法中添加了一个 if($_SERVER['REQUEST_METHOD'] =='POST') 但这不起作用!!!
  • 大声笑解决了我修改表单值以检查帖子的问题,我愚蠢地错过了! value="hsc($_POST['name']);}?>" /> 我爱学习,撞头!

标签: php fatal-error


【解决方案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();
    }

}

【讨论】:

  • 嗨,莎莉,感谢您的回复 :) 。我尝试了您的建议,结果相同,我也删除了 try catch 块,但结果仍然相同!
  • 抱歉,我将对象创建移出 if 语句。表格显示正确,谢谢!但是输入字段显示以下内容:
    注意:未定义索引:C:\xampp\htdocs\signup\includes\sign_up_inc.php 中的名称 行 18
  • 没问题艾伦 :),简单的解决方法是:- value="&lt;?php if (isset($_POST)) echo $sign_up-&gt;hsc($_POST['name']);?&gt;"
猜你喜欢
  • 2021-10-23
  • 1970-01-01
  • 2014-03-18
  • 2020-04-22
  • 2021-06-11
  • 1970-01-01
  • 2015-02-28
  • 2021-10-05
  • 1970-01-01
相关资源
最近更新 更多