3 votes

ERROR : localhost vous a redirigé trop de fois

Bonjour, je suis un nouvel étudiant et je commence à apprendre le codage/programmation, en particulier le PHP. J'ai essayé d'apprendre quelques codes et j'ai rencontré ce problème.

Cette page ne fonctionne pas

localhost vous a redirigé trop de fois. Essayez d'effacer vos cookies. ERR_TOO_MANY_REDIRECTS

et voici mon code :

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();
    }

Je ne sais vraiment pas quoi faire, j'ai déjà rencontré des erreurs en php mais je n'ai jamais rencontré ce genre d'erreur. S'il vous plaît, aidez-moi et éclairez-moi sur ce que j'ai fait de mal.

2 votes

Vous entrez dans le if à chaque fois et donc vous êtes toujours redirigé.

1 votes

Je n'ai pas testé mais cela peut résoudre votre problème. Changez if(strlen($_POST['uname'])<3) a if(isset($_POST['uname']) && strlen($_POST['uname'])<3) pour désactiver les redirections répétées.

0 votes

Avez-vous des suggestions sur ce que je dois faire ? Désolé de vous déranger, je suis très novice et c'est ma première fois.

7voto

aidinMC Points 1080

Vérifiez si l'utilisateur demande à s'enregistrer avant de rediriger, mettez à jour le code comme ci-dessous :

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();
    }

Nota: je vous suggère de ne pas rediriger l'utilisateur pour afficher le message d'erreur si les codes sont dans un fichier ! vous pouvez stocker le message d'erreur dans des variables et vérifier si la variable d'erreur n'est pas vide et l'afficher !

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;
}

0 votes

Fonctionne comme un charme monsieur, Merci beaucoup de partager vos connaissances à un débutant comme moi.

0 votes

@missNobody votre bienvenue, si cette réponse vous a aidé, s'il vous plaît vérifier la réponse comme une réponse vraie (ci-dessous les votes)

0 votes

C'est fait ! Merci beaucoup !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X