Problème de code

Résolu

Bonjour, je possède un site web qui fonctionnait bien mais ma page d'inscription a un problème. Les données ne sont pas enregistrées dans la bdd, les utilisateurs ne sont donc pas redirigés sur une autre page.

Pouvez-vous m'aider ?!?

Merci

voici le code : 

<?php
require('config.php');

if (isset($_REQUEST['username'], $_REQUEST['email'], $_REQUEST['password'], $_REQUEST['tel'], $_REQUEST['sexe'])){
        // récupérer le nom d'utilisateur et supprimer les antislashes ajoutés par le formulaire
        $username = stripslashes($_REQUEST['username']);
        $username = mysqli_real_escape_string($conn, $username); 
        // récupérer l'email et supprimer les antislashes ajoutés par le formulaire
        $email = stripslashes($_REQUEST['email']);
        $email = mysqli_real_escape_string($conn, $email);
        // récupérer le mot de passe et supprimer les antislashes ajoutés par le formulaire
        $password = stripslashes($_REQUEST['password']);
        $password = mysqli_real_escape_string($conn, $password);
  
  		$sexe = stripslashes($_REQUEST['sexe']);
        $sexe = mysqli_real_escape_string($conn, $sexe);
  
  		$tel = stripslashes($_REQUEST['tel']);
		$tel = mysqli_real_escape_string($conn, $tel);
  		$cle = rand(1000000, 9999999);

  		$select = mysqli_query($conn, "SELECT * FROM users WHERE username = '".$_POST['username']."'");
  		$select2 = mysqli_query($conn, "SELECT * FROM users WHERE email = '".$_POST['email']."'");
		if(mysqli_num_rows($select)) {
          	$errorRedirect = 'pseudo';
		}else{
          if(mysqli_num_rows($select2)) {
          	$errorRedirect = 'mail';
		}else{
  			
          $query = "INSERT into `users` (username, email, type, password, confirme, cle, sexe, tel)
                      VALUES ('$username', '$email', 'user', '".hash('sha256', $password)."', '1', '$cle', '$sexe', '$tel')";
          $res = mysqli_query($conn, $query);

          if($res){
            $query2 = "INSERT into `actif` (username, actif)
                      VALUES ('$username', '0')";
            $res2 = mysqli_query($conn, $query2);
            if($res2){
              header("Location: register-suite.php?cle=".$cle);
            }
              }
            }
        }
        
}
if($errorRedirect === 'pseudo') {
  header("Location: register-error.php?error=pseudo&username=$username&mail=$email&password=$password&cle=$cle&sexe=$sexe&tel=$tel");
}
else if($errorRedirect === 'mail') {
  header("Location: register-error.php?error=mail&username=$username&mail=$email&password=$password&cle=$cle&sexe=$sexe&tel=$tel");
}
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <title></title>
    <meta property="og:title" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta charset="utf-8" />
    <meta property="twitter:card" content="summary_large_image" />

    <style data-tag="reset-style-sheet">
      html {  line-height: 1.15;}body {  margin: 0;}* {  box-sizing: border-box;  border-width: 0;  border-style: solid;}p,li,ul,pre,div,h1,h2,h3,h4,h5,h6,figure,blockquote,figcaption {  margin: 0;  padding: 0;}button {  background-color: transparent;}button,input,optgroup,select,textarea {  font-family: inherit;  font-size: 100%;  line-height: 1.15;  margin: 0;}button,select {  text-transform: none;}button,[type="button"],[type="reset"],[type="submit"] {  -webkit-appearance: button;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner {  border-style: none;  padding: 0;}button:-moz-focus,[type="button"]:-moz-focus,[type="reset"]:-moz-focus,[type="submit"]:-moz-focus {  outline: 1px dotted ButtonText;}a {  color: inherit;  text-decoration: inherit;}input {  padding: 2px 4px;}img {  display: block;}html { scroll-behavior: smooth  }
    </style>
    <style data-tag="default-style-sheet">
      html {
        font-family: Open Sans;
        font-size: 1rem;
      }

      body {
        font-weight: 400;
        font-style:normal;
        text-decoration: none;
        text-transform: none;
        letter-spacing: normal;
        line-height: 1.625;
        color: var(--dl-color-secondary-400);
        background-color: var(--dl-color-gray-white);

      }
    </style>
    <link
      rel="stylesheet"
      href="https://fonts.googleapis.com/css2?family=Open+Sans%3Aital%2Cwght%400%2C300%3B0%2C400%3B0%2C600%3B0%2C700%3B0%2C800%3B1%2C300%3B1%2C400%3B1%2C600%3B1%2C700%3B1%2C800&amp%3Bdisplay=swap"
      data-tag="font"
    />
    <style>
      html * {
          -webkit-font-smoothing: antialiased;
      }
      input::placeholder, textarea::placeholder {
         color: #d2d6da;
      }
    </style>
    <link rel="stylesheet" href="./style.css" />
  </head>
  <body>
    <div>
      <link href="./profile.css" rel="stylesheet" />
      <link href="./home.css" rel="stylesheet" />
		      <div class="profile-container">
        <?php include('menu.php'); ?>
        <div class="profile-contact">
          <div class="profile-container09">
            <div class="profile-form">
              <h2 class="profile-text18 HeadingOne"><span>Connexion!</span></h2>
              <span class="profile-text20 Lead">
                Bienvenue !
              </span>
              <form class="profile-form1" action="" method="post">
                <label class="profile-text21 Label">Nom d'utilisateur</label>
                <input
                  type="text" name="username" required
                  placeholder="username" value="<?php echo $_GET['username']; ?>"
                  class="profile-textinput Small input"
                />
                <label class="profile-text21 Label">Adresse mail</label>
                <input
                  type="email" name="email" required
                  placeholder="email" value="<?php echo $_GET['mail']; ?>"
                  class="profile-textinput Small input"
                />
                <label class="profile-text21 Label">Numéro de téléphone</label>
                <input
                  type="tel" name="tel" required
                  placeholder="téléphone" value="<?php echo $_GET['tel']; ?>"
                  class="profile-textinput Small input"
                />
                <label class="profile-text22 Label">Mot de passe</label>
                <input
                  type="password" name="password" required
                  placeholder="mot de passe" value="<?php echo $_GET['password']; ?>"
                  class="profile-textinput1 Small input"
                />
                <label class="profile-text22 Label">Sexe</label>
                <div class="">
                  <select class="profile-textinput1 Small input" name="sexe" id="sexe" required >
                    <option value="">Votre sexe</option>
                    <option value="homme">homme</option>
                    <option value="femme">femme</option>
                    <option value="non binaire">non binaire</option>
                  </select>
                </div>
                <label class="profile-text22 Label">Conditions d'utilisation</label>
                <p><input
                  type="checkbox" required
                  class=""
                       />  En vous inscrivant, vous accepter les <a href="privacy.php" target="_blank"><i>conditions d'utilisations</i></a></p>
              <div class="profile-container10">
                <div class="profile-container11">
                  <div class="primary-blue-button-container">
                    <button type="submit"
                      class="primary-blue-button-button button ButtonSmall"
                    >
                      <span>S'inscrire</span>
                    </button>
                  </div>
                </div>
              </div>
              </form>
            </div>
            <div class="profile-info">
              <div class="profile-container12">
                <h3 class="HeadingTwo">
                  <span>Informations</span>
                  <span>pour l'inscription</span>
                </h3>
                <span class="profile-text27">
                  Remplissez le formulaire pour vous inscrire. Une fois inscris vous devrez attendre l'autorisation de l'administrateur pour avoir accès au site. <br>Merci de votre compréhension. 
                </span>
                <div class="profile-container13">
                  <div class="profile-container15">
                  </div>
                </div>
			</div>
              <div class="profile-container18"></div>
            </div>
          </div>
        </div>
        <footer class="footer-footer">
          <div class="footer-container">
            <div class="footer-container1">
              <span>Copyright © 2023 by Oakthunder</span>
            </div>
              <div class="footer-container4">
                <span class="footer-text07 Large">Login</span>
                <span class="footer-text08 Large">Register</span>
                <span class="footer-text09 Large">About</span>
              </div>
            </div>
          <img
            alt="image"
            src="public/playground_assets/waves-white.svg"
            class="footer-image"
          />
        </footer>
      </div>
    </div>
    <script src="https://unpkg.com/@teleporthq/teleport-custom-scripts"></script>
  </body>
</html>


Windows / Chrome 112.0.0.0

3 réponses

  1. Désolé de mon retard, merci d'avoir répondu si vite.

    L'erreur était qu'après avoir modifié ma bdd, je n'avais pas modifié mon formulaire. ????

    1. Modérateur

      Bonjour,

      Commence par ajouter une gestion d'erreur au niveau de tes requêtes.

      par exemple

      $query = "INSERT into `users` (username, email, type, password, confirme, cle, sexe, tel)
      		  VALUES ('$username', '$email', 'user', '".hash('sha256', $password)."', '1', '$cle', '$sexe', '$tel')";
      $res = mysqli_query($conn, $query);
      
      if(!$res){
      	echo "<br>Erreur dans la requête SQL " . mysqli_error($conn);
      	echo "<br>La requête :<br>" . $query ;
      	exit;
      }

      1. Contributeur

        bonjour,

        que fait ton code si il y a une erreur avec la requête INSERT exécutée en ligne 33?