【问题标题】:Validating form using php session使用 php 会话验证表单
【发布时间】:2013-11-27 05:27:51
【问题描述】:

我正在尝试使用 php 验证我的表单。验证后,它将给出欢迎消息。否则它将重定向到索引页面。我已经使用 session 来保存变量。但问题是当我提交表单时什么都没有发生,这是我的脚本

<?php session_start();
    $_SESSION['reg'] = array();
    $name = $_POST['name'];
    $email = $_POST['email'];
    $passwd = $_POST['passwd'];
    $repasswd = $_POST['repasswd'];

if(empty($_POST)){
    header("location:register.php");
}
else
{
    if(empty($name)){
        $_SESSION['reg']['name'] = "Please enter name";
    }
    if(empty($email)){
        $_SESSION['reg']['email'] = "Please enter email";
    }
    if (empty($passwd)) {
        $_SESSION['reg']['passwd'] = "please enter a password";
    }
    elseif (strlen(passwd)>16) {
        $_SESSION['reg']['passwd'] = "At most 16 chars";
    # code...
    }
    if ($passwd != $repasswd) {
        $_SESSION['reg']['repasswd'] = "Passwords don't match";
    }
    if (empty($_SESSION['reg'])) {
        header("location:welcome.php");
    }
    else
    {
        $_SESSION['data'] = array();
        foreach($_POST as $id=>$val)
        {
            $_SESSION['data'][$id] = $val;

        }
        header("location:register.php");
    }

?>      

当我提交表单时,它显示一个空白页面。

【问题讨论】:

  • 如何在页面顶部设置ini_set('display_errors','on')然后尝试
  • 什么都不做 :( .. 我把它放在 之前
  • 不,它应该在&lt;?php之后我建议检查php日志的第二件事,我不知道为什么但有时我遇到了类似的情况,空白页,没有错误,它仍然被记录,所以检查那里。
  • 谢谢..我发现了错误..这是一个括号..很好的建议,我是初学者,愚蠢的错误。

标签: php forms validation session


【解决方案1】:

问题是,如果在检查之前帖子变量不为空,您就不会将它们存储到会话中

if (empty($_SESSION['reg'])) {

我强烈建议在将 post 变量放入会话范围之前进行一些 sql 注入预防。

更新:因此,如果您希望变量在会话范围内,而不是检查 if(empty($name)){ 并在会话中设置错误消息,我会这样做:

if( !empty($name) ){
   $_SESSION['reg']['name'] = $name;
} else {
   // error handling
}

如果发布的值不为空,这将设置会话变量。现在,当您稍后检查会话变量时,它会包含 name 值并且不会为空。

【讨论】:

  • 我稍后会做sql注入预防,但我不明白你在告诉我做什么..
  • 如果(empty($_SESSION['reg'])) { 为真,我不应该存储帖子变量,它应该只是进入欢迎页面。
  • 我用如何设置会话变量的示例更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 2013-03-18
  • 1970-01-01
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多