📜  php post form to self - PHP (1)

📅  最后修改于: 2023-12-03 15:18:20.756000             🧑  作者: Mango

PHP中post表单提交到当前页面

在Web开发中,表单提交是必不可少的一个环节。在PHP中,我们通常处理表单提交的方式有两种:一种是提交到当前页面,另一种是提交到另一个PHP文件中进行处理。本篇文章将着重介绍如何在PHP中将表单提交到当前页面。

为什么要将表单提交到当前页面?

将表单提交到当前页面的好处是能够在同一个页面中同时展示表单和表单处理结果。这种做法也更加符合用户的使用习惯,用户可以在同一个页面中进行所有操作。

实现方式

将表单提交到当前页面的做法比较简单,只需要使用PHP自身的$_SERVER['PHP_SELF']变量即可。$_SERVER['PHP_SELF']变量会返回当前脚本的文件名,因此我们只需要将表单的action属性设置为$_SERVER['PHP_SELF']即可。

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  <!-- 表单字段 -->
</form>

上面的代码片段中,我们使用了PHP的echo函数输出了$_SERVER['PHP_SELF']变量,使得表单的action属性可以动态地设置为当前脚本的文件名。

接下来,我们需要在PHP中处理表单提交的数据。在表单处理逻辑之前,我们需要首先检查表单是否已经提交。我们可以通过判断$_SERVER['REQUEST_METHOD']变量的值来检查表单是否已经提交。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  // 处理表单提交逻辑
}

如果$_SERVER['REQUEST_METHOD']的值为POST,则表明表单已经提交,我们可以在这里处理表单提交的数据。在表单处理逻辑中,我们需要使用$_POST超全局变量来获取表单提交的数据。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  // 获取表单数据
  $username = $_POST['username'];
  $password = $_POST['password'];

  // 处理表单提交逻辑
}

上面的代码片段中,我们使用了$_POST超全局变量来获取表单提交的数据。你也可以根据需要添加更多的表单字段。

示例代码

下面是一个完整的示例代码,演示了如何将表单提交到当前页面并处理表单数据:

<?php

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  // 获取表单数据
  $username = $_POST['username'];
  $password = $_POST['password'];

  // 处理表单提交逻辑
  if ($username === 'admin' && $password === 'password') {
    $message = '登录成功!';
  } else {
    $message = '登录失败!';
  }
}

?>

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>表单提交到当前页面示例</title>
</head>
<body>
  <?php if (isset($message)): ?>
    <p><?php echo $message; ?></p>
  <?php endif; ?>

  <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <label for="username">用户名:</label>
    <input type="text" name="username" id="username" />

    <label for="password">密码:</label>
    <input type="password" name="password" id="password" />

    <button type="submit">登录</button>
  </form>
</body>
</html>

在上面的代码片段中,我们首先检查表单是否已经提交。如果表单已经提交,我们就获取表单提交的数据,并根据数据进行处理逻辑。最后,根据处理结果展示用户提示信息。

完整的代码示例可以从 GitHub 获取。