即使定义了 $_POST 的未定义索引

所以我正在使用 php 制作一个登录表单,每次提交时我都会收到未定义的索引错误。这是我的表格:


 <form action="website.net/validation.php" method="post" enctype="multipart/form-data">

        <div class="form-group">

          <label>Username</label>

          <input type="text" maxlength="255" placeholder="Username" name="user" class="form-control" required />

          </div>


           <div class="form-group">

             <label>Password</label>

             <input type="password" maxlength="255" placeholder="Password" name="password" class="form-control" required />

           </div>

      <hr class="my-4">


        <div class="form-group">

          <div class="custom-control custom-checkbox">

            <input type="checkbox" class="custom-control-input" id="customCheck1" name="remember" value="yes">

            <label class="custom-control-label" for="customCheck1">Remember Me</label>

          </div>

          </div>

          <br>


      <p class="lead">

        <button type="submit" class="btn btn-primary btn-lg">Login</button>

      </p>

      </form>

继承人的PHP:


$name = stripslashes($_POST["user"]);

$pass = stripslashes($_POST["password"]);

这显然只是意味着我拼错了某些东西或者没有设置值,对吧?错误的。我检查了我在 html 和 php 中的所有拼写,我也已经完成var_dump($_POST["user"]);并打印出用户名。表单元素是必需的,因此不能不设置它们。我试过用 htmlentities() 包围变量。我试过将它们包围在 if then 块中以测试 ifset。没有什么能解决这个问题。我不知道为什么这不起作用。有人可以帮忙吗?谢谢


整个 php 错误:


<?php

ini_set('display_errors', 1);

ini_set('display_startup_errors', 1);

error_reporting(E_ALL);

session_start();

var_dump($_POST);

$name = stripslashes($_POST["user"]);

$pass = stripslashes($_POST["password"]);


慕斯王
浏览 87回答 1
1回答

互换的青春

这个问题看起来很奇怪,但一个好的起点是回应服务器似乎看到的内容(完全结构化)。这可以这样做:echo "<pre>";print_r($_POST);echo "</pre>";并且看到您正在使用 enctype="multipart/form-data",您还可以转储 $_FILES。但我有一种感觉,它可能是两件事之一:行动领域或 stripslashes。对于最后一个选项,为什么不在清洁之前先摘下它们,然后再清洁。对于第一个选项,您可以将操作字段更改为明确的本地字段吗:<form action="validation.php" method="post" enctype="multipart/form-data">
打开App,查看更多内容
随时随地看视频慕课网APP