PHP

Page d'inscription

Non Résolu

Bonjour,

J'aurais besoin d'aide car ma page d'inscription ne fonctionne pas et me renvoie une HTTP ERROR 500 quand je l'ouvre.

A savoir que la seconde partie du code fonctionne et que la connexion à la base de données fonctionne également.

De plus si quelqu'un peut m'aider pour les deux conditions pour le nom d'utilisateur et le mot de passe svp.

Merci d'avance


<?php
    session_start();
	include('../_database/connexionDB.php')

    if (isset($_SESSION['id'])){
        header('Location: ../../index.php'); 
        exit;
    }
 
    if(!empty($_POST)){
        extract($_POST);
        $valid = true;
 
        if (isset($_POST['inscription'])){
            $nom  = htmlentities(trim($nom));
            $prenom = htmlentities(trim($prenom));
			$nom_utilisateur = htmlentities(trim($nom_utilisateur));
            $mail = htmlentities(strtolower(trim($mail)));
			$confmail = htmlentities(strtolower(trim($confmail)));
            $mdp = trim($mdp);
            $confmdp = trim($confmdp);
 
            if(empty($nom)){
                $valid = false;
                $er_nom = "Veuillez saisir un nom";
            }       
 
            if(empty($prenom)){
                $valid = false;
                $er_prenom = "Veuillez saisir un prénom";
            }    
			
   			if(empty($nom_utilisateur)){
                $valid = false;
                $er_nom_utilisateur = "Veuillez saisir un nom d'utilisateur";
			
//			}elseif(!preg_match("", $nom_utilisateur)){
                $valid = false;
                $er_nom_utilisateur = "Veuillez saisir un nom d'utilisateur valide";


			}else{


                $req_nom_utilisateur = $DB->query("SELECT nom_utilisateur FROM utilisateur WHERE nom_utilisateur = ?",
                    array($nom_utilisateur));
 
                $req_nom_utilisateur = $req_nom_utilisateur->fetch();
 
                if ($req_nom_utilisateur['nom_utilisateur'] <> ""){
                    $valid = false;
                    $er_nom_utilisateur = "Ce nom d'utilisateur est déjà utilisé pour un autre compte";
                }
            } 
 
            if(empty($mail)){
                $valid = false;
                $er_mail = "Veuillez saisir une adresse e-mail";
 
            }elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $mail)){
                $valid = false;
                $er_mail = "Veuillez saisir une adresse e-mail valide";


			 }elseif($mail != $confmail){
                $valid = false;
                $er_mail = "Vos adresses e-mail ne correspondent pas";
 
            }else{


                $req_mail = $DB->query("SELECT mail FROM utilisateur WHERE mail = ?",
                    array($mail));
 
                $req_mail = $req_mail->fetch();
 
                if ($req_mail['mail'] <> ""){
                    $valid = false;
                    $er_mail = "Cette adresse e-mail est déjà utilisée pour un autre compte";
                }
            }
 
			if(empty($mdp)){
                $valid = false;
                $er_mdp = "Veuillez saisir un mot de passe";
 
//          }elseif(!preg_match("", $mdp)){
                $valid = false;
                $er_mdp = "Veuillez saisir un mot de passe valide";


			 }elseif($mdp != $confmdp){
                $valid = false;
                $er_mdp = "Vos mots de passe ne correspondent pas";
 	            }
			}
 
            if($valid){
 
                $mdp = crypt($mdp, "$6$rounds=5000$macleapersonnaliseretagardersecret$");
				
				$token = bin2hex(random_bytes(12));
 
                $DB->insert("INSERT INTO utilisateur (nom, prenom, nom_utilisateur, mail, mdp) VALUES 
                    (?, ?, ?, ?, ?)", 
                    array($nom, $prenom, $nom_utilisateur, $mail, $mdp));
 
                $req = $DB->query("SELECT *
                  FROM utilisateur
                  WHERE mail = ?",
                  array($mail));
                  
                $req = $req->fetch();
                 
                $mail_to = $req['mail']; 
                 
                $header = "From: no-reply <no-reply@gmail.com>\n";
                $header .= "MIME-version: 1.0\n";
                $header .= "Content-type: text/html; charset=utf-8\n";
                $header .= "Content-Transfer-ncoding: 8bit";
                       
                $contenu = '<p>Bonjour ' . $req['nom'] . ',</p><br>
                   <p>Veuillez confirmer votre compte <a href="http://www.recettes-boyer.000webhostapp.com/pages/_espaces_membre/confirmation.php?id=' . $req['id'] . '&token=' . $token . '">Valider</a><p>';
                                    
                mail($mail_to, 'Confirmation de votre compte', $contenu, $header);


                header('Location: ../../index.php');
                exit;
            }
        }
    }
?>


<!DOCTYPE html>


<html>


	<head>


		<meta charset ="UTF-8"/>
		<link rel="stylesheet" type="text/css" href="../../css/css.css"/>
		<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css"/>


		<title>Inscription</title>


	</head>


	<body>


		<header>
			<?php include("../_includes/header.php"); ?>
		</header>	


		<h3>Inscription</h3>




		<form method="post">


			<?php if (isset($er_nom)){ echo $er_nom; }?>
			<input type="text" placeholder="Votre nom" name="nom" value="<?php if(isset($nom)){ echo $nom; }?>" required>


			<?php if (isset($er_prenom)){ echo $er_prenom; }?>
			<input type="text" placeholder="Votre prénom" name="prenom" value="<?php if(isset($prenom)){ echo $prenom; }?>" required>


			<?php if (isset($er_nom_utilisateur)){ echo $er_nom_utilisateur; }?>
			<input type="text" placeholder="Votre nom d'utilisateur" name="nom_utilisateur" value="<?php if(isset($nom_utilisateur)){ echo $nom_utilisateur; }?>" required>   
						
			<?php if (isset($er_mail)){ echo $er_mail; }?>
			<input type="email" placeholder="Adresse e-mail" name="mail" value="<?php if(isset($mail)){ echo $mail; }?>" required>
			<input type="email" placeholder="Confirmer l'adresse e-mail" name="confmail" required>


			<?php if (isset($er_mdp)){ echo $er_mdp; }?>
			<input type="password" placeholder="Mot de passe" name="mdp" value="<?php if(isset($mdp)){ echo $mdp; }?>" required>
			<input type="password" placeholder="Confirmer le mot de passe" name="confmdp" required>


			<button type="submit" name="inscription">S'inscrire</button>


        </form>


		<footer>
			<?php include("../_includes/footer.php"); ?>
		</footer>


	</body>


</html>
628 vues
05 mai 2021 à 22:45 (Édité)
Cette pub permet au site de vivre ...

4 commentaires

Re:


Nous avons reçu aucune réponse de ta part, je ferme ce topic !

La prochaine fois, pense à répondre, cela nous permettrai de t'aider plus rapidement et de nous permettre de gagner du temps, sachant qu'il n'y a pas que toi qui a besoin d'aide 😉

Hello @gros-problemes :


On attend une réponse de ta part...

Les réponses apportées ont-elles pu t'aider à résoudre ton problème ? 🤔

En réponse à ta question concernant ce type de retour serveur informatique donc vérifie également les paramétrages phpmyadmin ainsi que la version php utilisée par ton "provider" web car une incompatibilité des versions utilisées entre fichiers informatiques et serveur est souvent à l'origine de ce type d'erreur.

Hello @gros-problemes,


Selon ton précédent topic, j'ai compris que tu travaillais directement sur l'hébergeur 000webhost.

Cet hébergeur est un hébergeur gratuit, ne l'oublie pas 😉



Cela signifie également que tu disposes de très peu de fonctionnalités... Je rajoute que si c'est gratuit c'est toi le produit 😉

Tôt ou tard, tu auras besoin d'un hébergeur payant pour avoir un nom de domaine professionnel ainsi que plusieurs fonctionnalités.


Concernant ton problème, peux-tu nous indiquer exactement le tuto/l'article que tu as suivis ? Cela nous permettrai de t'aider au mieux 😉

Concernant l'erreur HTTP 500 :


Lorsque le code erreur HTTP 500 apparait, c'est qu'il y a une erreur interne du serveur. Ce n'est pas forcément l'hébergeur du site qui est responsable mais sûrement une erreur dans un fichier ou un répertoire de son propre site internet.
Le serveur Web rencontre une difficulté pour trouver une URL. Il affiche alors l'erreur 500 mais ne sait pas exactement d'où provient le problème.


Cela signifie donc que tu as un problème au niveau de tes répertoires...

Je te recommande d'utiliser les chemins absolus, cela t'évitera d'avoir ce genre de problèmes (en savoir plus...)

Cette pub permet au site de vivre ...