我有一个使用cURL访问第三方应用程序的PHP表单。我也在表单上得到了自己的验证。目前,当您触发表单时,它会发送到$_SERVER['PHP_SELF']
,如果出现问题,则验证错误会显示在表单的顶部。如果没有问题,变量将被发送到第三方应用程序,浏览器会将用户带到该应用程序以继续该过程。
现在,客户希望在新窗口中打开此表单。我已经将target = _blank添加到表单元素中,但是即使表单无效(即存在验证错误),这也会导致打开一个新窗口。因此,我需要将表单保留在原处,直到它实际提交给第三方应用程序。
任何人都知道是否存在重定向到新窗口的cURL变量?我似乎无法在手册中找到任何内容。
答案 0 :(得分:3)
您会混淆服务器端和客户端代码。
现代Web应用程序的一个好习惯是使用Javascript预先验证表单,然后仅在表单经过验证后才发布到PHP脚本。如果您需要服务器端功能来验证表单,那么您可以首先使用Ajax从服务器发布一些数据和请求信息。有一些非常好的库,例如jQuery,这些库现在可以轻松实现(甚至可以在不离开页面的情况下使用Ajax发布整个表单)。
旧的替代方法是发布到PHP脚本,验证表单,然后输出一些Javascript标记,以在表单有效时打开新窗口。但是,任何浏览器内置的弹出窗口阻止程序现在都会阻止它。