Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    La création de compte en php ne fonctionne plus depuis la mise à jour en 2.0.1

    Scheduled Pinned Locked Moved Français
    1 Posts 1 Posters 1.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Asmodojo
      last edited by

      Bonjour à tous !

      Nous avions jusqu'à présent un pfSense sous VMware qui nous sert essentiellement de portail captif pour distribuer le WiFi de façon publique. A l'époque de la mise en place, et pour ne pas se palucher toutes les créations de comptes, j'avais trouvé sur le forum english un script php qui permettait aux utilisateurs de créer eux-même leur compte dans la base locale via une page web. Soit :

      • L'utilisateur se connecte au WiFi non sécurisé
      • Il est redirigé sur la page d'authentification
      • Sur cette page nous demandons à l'utilisateur de cliquer sur un lien pour créer son compte
      • Il est dirigé sur une seconde page où il rentre ses informations personnelles afin de créer son compte
      • Il est redirigé sur la page d'authentification sur laquelle il peut maintenant rentrer ses login/MDP.

      Tout cela fonctionnait très bien, sauf que lorsque nous sommes passé en vSphere 4+, les VMware Tools n'ont plus fonctionné. Pour cette raison, j'ai décidé de mettre à jour pfSense en 2.0.1, mais j'ai oublié de tester la création de compte, et là, c'est le drame ! En gros, j'ai deux fonctions qui ne fonctionnent plus, config_lock et write_config, et des arguments incorrects dans un foreach, et là franchement, je ne sais pas quoi faire. Autant pour bidouiller le script pour ajouter des contrôles et modifier la mise en forme, j'avais pu m'en sortir, autant là je ne vois pas du tout pourquoi ca foire car je ne m'y connais quasiment pas en php.

      Est-ce que quelqu'un sait ce qui a changé dans les fonctions en version 2 et par quoi je dois remplacer ces deux fonctions ?

      Merci d'avance :)

      Voici mon formulaire de création :

      <title>Creation de compte</title>

      require_once("functions.inc");
           if ($_POST) {
             config_lock();      
             $a_user =  &$config['captiveportal']['user'];
             unset($input_errors);
             $pconfig = $_POST;
             /* Validation des entrées manuelles /
             if ($_POST['username'] == "") $input_errors[] = "L'identifiant est requis.";
             if ($_POST['password'] == "") $input_errors[] = "Le mot de passe est requis.";
             if ($_POST['fullname'] == "") $input_errors[] = "Le nom complet est requis.";
             if (($_POST['password']) && ($_POST['password'] != $_POST['password2'])) $input_errors[] = "Les mots de passe ne sont pas identiques.";
             if (!$input_errors) {
               /
      vérification des doublons */
               foreach ($a_user  as $userent) {
                 if ($userent['name'] == $_POST['username']) {
                 $input_errors[] = "Ce compte existe déjà.";
                 break;
               }
             }
           }

      /* Enregistrement */
           if (!$input_errors) {
             $userent['name'] = $_POST['username'];
             $userent['fullname'] = $_POST['fullname'];
             $userent['expirationdate'] = "";//$_POST['expirationdate'];
             if ($_POST['password']) $userent['password'] = md5($_POST['password']);
             $a_user[] = $userent;
             write_config();
             $done =1;
           }

      }
         ?>

      //Succès de l'enregistrement
         if (isset($done)) {
         ?>

      CREATION DE COMPTE TERMINEE

      La création du compte est terminée.
               Vous pouvez maintenant vous connecter en cliquant ici.

      } else {  //Page d'enregistrement

      //Afficher message d'erreur
           if ($input_errors) {
             echo "ERREUR : ";
             foreach ($input_errors  as $input_error) {
             echo $input_error . "
      ";
           } //end foreach
         } // end if
         ?>

      CREATION DE COMPTE

      <form method="post">
               Identifiant:
               
               Contacter l'accueil pour en obtenir un
               Mot de passe :
               
               Entrer le mot de passe de votre choix
               Retaper le mot de passe :
               
               Resaisir le mot de passe pour confirmation
               Nom complet :
               
               Entrer vos nom et prénom

      } // Page d'enregistrement
             ?>

      </form>

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.