2009-09-05 5 views
0

Je crée un système appelé NCIV en PHP. Dans ce système, vous pouvez modifier un paramètre dans settings.php, ce qui permet à l'administrateur du système d'activer ou de désactiver l'utilisation de MySQL plutôt qu'un tas de fichiers texte. Cependant, si vous modifiez ce paramètre si le site contient déjà du contenu, toutes les données seront transférées de/vers la base de données MySQL vers/depuis la base de données textuelle (en fonction de la valeur du paramètre). Voici le code:Demander à l'utilisateur d'entrer le superutilisateur/mot de passe root du serveur en PHP

/*******************************************************/ 
/* __   __  _____ _ _ _____ _ _ _____ */ 
/* \ \  //\ | __ \| \ | |_ _| \ | |/ ____| */ 
/* \ \ /\// \ | |__) | \| | | | | \| | | __ */ 
/* \ \/ \///\ \ | _ /| . ` | | | | . ` | | |_ | */ 
/* \ /\/____ \| | \ \| |\ |_| |_| |\ | |__| | */ 
/*  \/ \/_/ \_\_| \_\_| \_|_____|_| \_|\_____| */ 
/*              */ 
/* CHANGING ["server"]["mysql"] WHILE THE SITE IS */ 
/*  ALREADY IN USE WILL MIGRATE ALL DATA TO THE */ 
/*    MySQL DATABASE IF TRUE    */ 
/*  OR TO THE TEXTUAL DATABASE IF FALSE!!  */ 
/*              */ 
/* IF YOU HAVE A HUGE SITE, THIS CAN TAKE A FEW HOURS */ 
/*    OR EVEN A FEW DAYS OR WEEKS!!   */ 
/*  PLEASE ONLY CHANGE THIS SETTING IF YOU HAVE */ 
/*     JUST INSTALLED NCIV!    */ 
/*              */ 
/*              */ 
/*              */ 
/* REMOVING OR MODIFYING THIS WARNING WILL TAKE THE */ 
/*     ENTIRE SITE OFFLINE!    */ 
/*              */ 
/*    YOU WILL NEED TO ENTER THE   */ 
/* SERVER'S SUPERUSER/ROOT PASSWORD AFTER CHANGING */ 
/*      THIS SETTING!     */ 
/*              */ 
/*  NEVER TRY TO MIGRATE THE DATA MANUALLY!  */ 
/*******************************************************/ 
$GLOBALS["NCIV"]["server"]["mysql"] = FALSE;      //Enable MySQL? See the WARNING above! 

Y at-il un moyen de vérifier si l'utilisateur est entré le mot de passe super-utilisateur/root correct en PHP après le réglage a changé?

Merci d'avance!

Répondre

3

Eh bien, il y a toujours PAM ... mais cela est très, très , très mauvaise idée. En outre, gardez à l'esprit des choses comme, disons, l'hébergement partagé, où l'utilisateur n'aura pas de racine.

Si ce paramètre est si dangereux, vous devriez peut-être le reconsidérer, même s'il s'agit d'un réglage pour commencer.

+0

Merci! Je vais le changer afin que l'utilisateur doit entrer le mot de passe administrateur. Cette fonctionnalité est requise pour la compatibilité. –

+0

Je suppose que vous déplacez le stockage de données des anciens fichiers plats vers la nouvelle base de données MySQL? Si c'est le cas, peut-être au lieu de (simplement) un paramètre, vous devez créer un script de conversion externe ou non automatique, afin qu'il n'y ait pas de risque élevé que quelqu'un se tire accidentellement dans le pied. – Charles

Questions connexes