Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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 Html表单似乎提交到了错误的位置?_Php_Html - Fatal编程技术网

Php Html表单似乎提交到了错误的位置?

Php Html表单似乎提交到了错误的位置?,php,html,Php,Html,最近,由于没有“明显”的原因,我的登录表单开始重定向到我网站的404页面,我在任何地方都看不到原因 <?php echo '<form action="http://' . $_SERVER['SERVER_NAME'] . '/login" method="post">'; ?> <li><input type="text" name="username" placeholder="Username"></li> <li&

最近,由于没有“明显”的原因,我的登录表单开始重定向到我网站的404页面,我在任何地方都看不到原因

 <?php echo '<form action="http://' . $_SERVER['SERVER_NAME'] . '/login" method="post">'; ?>
 <li><input type="text" name="username" placeholder="Username"></li>
 <li><input type="password" name="password" placeholder="Password"></li>
 <li><input type="submit" value="Login"></li>
 </form>
身份验证代码:

<?php
if(empty($_POST) === false) {
   $username = $_POST['username'];
   $password = $_POST['password'];

   if(empty($username) === true || empty($password) === true) {
      $errors[] = 'You need to enter a username and password.';
   } else if (user_exists($username) === false) {
      $errors[] = 'We can\'t find that username. Have you registered?';
   } else if (user_active($username) === false) {
      $errors[] = 'You haven\'t activated your account!';
   } else if(strlen($password) > 32 ) {
        $errors[] = 'Password to long.';
   }
     $login = login($username, $password);
     if($login === false){
       $errors[] = 'That username/password combination is incorrect.';
     }else{
        $_SESSION['user_id'] = $login;
        header('Location: ' . $_SERVER['SERVER_NAME'] . '/?msg=1');
        exit();

     }
   }
if(empty($errors)===false){
?>
    <h1>We tried to log you in, but....</h1>
<?php
     print_r($errors);
} ?>

我们试图让你登录,但是。。。。

您是否可以省去
$\u服务器[]
数组,使用静态url进行调试? 比如:

如果它给您一个404错误,那么它必须来自此或您的.htaccess
以这种方式调试它并让我们知道。

原因可能很多。以下是一些疑难解答提示:

<?php echo '<form action="http://' . $_SERVER['SERVER_NAME'] . '/login" method="post">'; ?>

显然,填写到表单操作中的url有问题:

  • 上面代码中的“页面”是您操作中的
    login
    。它是一个页面,还是一个目录,或者你有重写吗?url是否应该指向login.php或login.html,而不仅仅是login

  • 在浏览器中查看呈现页面的源代码时,您在表单的
    操作中看到了什么?它是合法的url吗?如果将url复制/粘贴到浏览器中,会得到什么

  • 当使用这样的表单时,有什么理由不让操作是
    /login
    ?不应该像这样依赖服务器变量,既然您要访问同一个url,为什么不消除复杂性,只使用
    /login
    作为操作

  • 你在使用url重写吗?规则是否已更改,或者htaccess文件是否已修改/移动


  • 您最近是否修改了.htaccess文件中的任何重写规则?请更具体一些!当页面显示时,您是否也可以写入源代码中显示的结果?您可能应该使用HTTP_主机而不是服务器_名称。看到这个@Oldskool No,虽然我已经编辑它来显示我的.htaccess也是我,或者可以提交一个值而不启动名称
    name=“submit”
    提交没有做任何事情,但是当我尝试使用您的服务器时,它只是提交所有内容来显示登录验证代码,这可能是问题所在。你说这一定是一个.htaccess错误,但当我更改404页面时,它会转到更新后的404页面,因此在某个地方必须有重定向?404页面的url是什么样的?我在web根目录上创建了login.php,带有身份验证代码,并将表单提交到那里,我仍然被重定向到404。1。实际页面位于名为pages的目录中,但该文件名为login.html,这也与4.m相关联,因为当您转到/login时,.htaccess将其重写为index.php?page=login,然后依次包括登录页面以及页眉和页脚。将操作更改为just/login仍然具有与转到404页面相同的效果。在浏览器中,它是一个合法的url,指向同一页面。
    <form method="POST" action="url.php">
    <li><input type="text" name="username" placeholder="Username"></li>
    <li><input type="password" name="password" placeholder="Password"></li>
    <li><input type="submit" value="Login" name="submit"></li>
    </form>
    
     header('Location: url.php?msg=1');
    
    <?php echo '<form action="http://' . $_SERVER['SERVER_NAME'] . '/login" method="post">'; ?>