PHP表单需要提交2次才能获取post数据。

10 浏览
0 Comments

PHP表单需要提交2次才能获取post数据。

我是个新手,我想从一个php表单中保存图片。我的代码非常简单:

我只想看看我的图片是否出现在我的$_FILES中。所以我在我的index.php的顶部加入了以下代码:


当我第一次按下提交按钮时,它仍然是空的,但是如果我第二次按下按钮,我就能看到它。有人知道为什么吗?谢谢。

0
0 Comments

问题出现的原因是因为在显示表单的各个网页上,必须从整体的网站角度处理表单操作,而不仅仅是在单个网页上处理。使用php时,可以使用布局功能来处理html,但不要忘记在全局范围内处理POST操作。

解决方法是将表单的处理操作放在全局范围内。可以在一个单独的php文件中处理表单提交,然后在所有的网页中引用这个文件。这样,无论表单在哪个网页上提交,都能够正确地执行提交操作。

以下是一个示例代码,展示如何在全局范围内处理表单提交:

// form.php
// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 处理表单逻辑
    // ...
    
    // 重定向到结果页面或其他操作
    header('Location: result.php');
    exit;
}
?>

// result.php
// 处理结果页面的逻辑
// ...

在这个示例中,我们将表单的处理逻辑放在了一个名为`form.php`的文件中。无论表单在哪个网页上显示,都可以将表单的`action`属性设置为`form.php`,这样表单提交时就会调用`form.php`中的处理逻辑。

在`form.php`中,我们首先检查请求的方法是否为POST,如果是POST请求,就执行表单的处理逻辑,并在处理完之后重定向到结果页面或其他操作。

这样,无论表单在哪个网页上提交,都只需要点击一次提交按钮即可正常执行表单的提交操作。

0