【问题标题】:ERROR: localhost redirected you too many times错误:本地主机重定向您太​​多次
【发布时间】:2017-08-11 09:01:31
【问题描述】:

您好,我是一名新学生,开始专门学习 PHP 的编码/编程。我尝试学习了一些代码,我遇到了这个问题。

此页面无法正常工作

localhost 重定向您的次数过多。 尝试清除您的 cookie。 ERR_TOO_MANY_REDIRECTS

这是我的代码:

session_start();

include('_includes/config.php');
include('_includes/db.php');

    if(isset($_POST['register'])){
        $_SESSION['uname'] = $_POST['uname'];
        $_SESSION['fname'] = $_POST['fname'];
        $_SESSION['lname'] = $_POST['lname'];
        $_SESSION['email'] = $_POST['email'];
        $_SESSION['address'] = $_POST['address'];
        $_SESSION['postal'] = $_POST['postal'];
        $_SESSION['pass'] = $_POST['pass'];
        $_SESSION['con-pass'] = $_POST['con-pass'];
    }

    if(strlen($_POST['uname'])<3){
        header("Location:register.php?err=" . urlencode("The username must be at least 3 characters long"));
        die();
    }

我真的不知道该怎么办我在php中遇到了一些错误但我还没有遇到过这种错误请帮助并请告诉我我做错了什么。

【问题讨论】:

  • 你每次都输入if,所以你总是被重定向。
  • 未测试,但这可能会解决您的问题。将 if(strlen($_POST['uname'])&lt;3) 更改为 if(isset($_POST['uname']) &amp;&amp; strlen($_POST['uname'])&lt;3) 以禁用重复重定向。
  • 对我应该怎么做有什么建议吗?很抱歉打扰我对这一切都很陌生,这是我的第一次。
  • 代码工作!非常感谢!我肯定会在我的笔记中写下这个!
  • 此代码在register.php 文件中吗?

标签: php


【解决方案1】:

检查用户是否请求注册而不是重定向,更新代码如下:

session_start();

include('_includes/config.php');
include('_includes/db.php');

    if(isset($_POST['register'])){
        $_SESSION['uname'] = $_POST['uname'];
        $_SESSION['fname'] = $_POST['fname'];
        $_SESSION['lname'] = $_POST['lname'];
        $_SESSION['email'] = $_POST['email'];
        $_SESSION['address'] = $_POST['address'];
        $_SESSION['postal'] = $_POST['postal'];
        $_SESSION['pass'] = $_POST['pass'];
        $_SESSION['con-pass'] = $_POST['con-pass'];
    }

    if(strlen($_POST['uname'])<3 && isset($_POST['register'])){ // add && isset($_POST['register'])
        header("Location:register.php?err=" . urlencode("The username must be at least 3 characters long"));
        die();
    }

注意: 我建议您不要重定向用户以在某些文件中有代码时显示错误消息!您可以将错误消息存储在 vars 中并检查错误 var 是否为空 echo it!

session_start();

include('_includes/config.php');
include('_includes/db.php');
$error = ''; //add this var
    if(isset($_POST['register'])){
        $_SESSION['uname'] = $_POST['uname'];
        $_SESSION['fname'] = $_POST['fname'];
        $_SESSION['lname'] = $_POST['lname'];
        $_SESSION['email'] = $_POST['email'];
        $_SESSION['address'] = $_POST['address'];
        $_SESSION['postal'] = $_POST['postal'];
        $_SESSION['pass'] = $_POST['pass'];
        $_SESSION['con-pass'] = $_POST['con-pass'];
    }

    if(strlen($_POST['uname'])<3 && isset($_POST['register'])){ // add && isset($_POST['register'])
        /*header("Location:register.php?err=" . urlencode("The username must be at least 3 characters long"));
        die();*/
        $error = 'this is error message';
    }
//add below code anywhere you want show error
if($error){
    echo $error;
}

【讨论】:

  • 像魅力先生一样工作,非常感谢您将您的知识分享给像我这样的初学者。
  • @missNobody 欢迎您,如果此答案对您有所帮助,请检查答案是否为真实答案(投票下方)
  • 完成!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
相关资源
最近更新 更多