Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将服务器端验证的输入发送到新的php页面_Php_Validation - Fatal编程技术网

将服务器端验证的输入发送到新的php页面

将服务器端验证的输入发送到新的php页面,php,validation,Php,Validation,我正在为我的团队正在开发的项目编写前端。其职责如下: php-接收并验证(在服务器上)用户的输入。通过 已验证的page2.php输入 page2.php-从page1.php接收经过验证的输入并继续处理 我负责创建page1.php,我的同事正在创建page2.php。 我使用服务器端验证来确保只将有效数据传递到page2.php。我正在使用下面引用的表单属性 <form method="post" action="<?php echo htmlspecialchars($_SER

我正在为我的团队正在开发的项目编写前端。其职责如下:

  • php-接收并验证(在服务器上)用户的输入。通过 已验证的page2.php输入
  • page2.php-从page1.php接收经过验证的输入并继续处理
  • 我负责创建page1.php,我的同事正在创建page2.php。 我使用服务器端验证来确保只将有效数据传递到page2.php。我正在使用下面引用的表单属性

    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    

    将验证逻辑放在与结果不同的“页面”上是没有意义的

    您不应该在页面之间传递“thisdataisok”消息,而应该在函数之间传递

    这个过程应该是这样的:

  • 浏览器从服务器请求包含表单的页面
  • 服务器发送表单
  • 浏览器发送提交的表单数据
  • 服务器检查表单数据并确定它是否正常(在这种情况下,它处理它并返回OK页面),或者它是否正常(在这种情况下,它返回一条错误消息,并且可能返回表单的错误消息)
  • 一个简单的例子是:

    include("form-validation.php");
    if (submitted_data_ok()) {
        include("put-data-in-database.php");
        include("show-ok-message-to-user.php");
    } else {
        include("form.php");
    }
    

    要获得更高级的方法,请研究MVC框架。

    当然可以使用javascript。对服务器端验证脚本进行ajax调用。这实际上是最优雅的方式,因为您根本不需要完全重新加载。因此,您的调用会发布表单值以进行验证,因此服务器会返回第二个表单,然后您可以将其插入当前加载的页面中。请解释会话变量不适用于您的原因??为什么不将已验证的输入存储在会话变量中,然后只需执行
    header'(位置:page2.php')?@arkascha-允许轻松绕过验证。让客户机询问服务器数据是否正常就可以了。然后让服务器信任客户端说数据正常是完全不安全的。页面将显示表单,接收输入并验证它。验证后,我想将验证后的输入发送到另一个页面进行处理。我是说这不可能通过header('Location:page2.php');因为那时HTML将被发送到浏览器。昆汀,我正在仔细考虑你下面的建议。