[Tuto] Liaison entre PhpBB3 et Pure-FTP

Pour discuter de phpBB3 - Pas de support sur cette section !
Pour du support veuillez vous rendre sur les sections de support 3.1 et 3.2

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Attention, aucun support n'est donné dans cette section.

[Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar petitchat » 09 Fév 2014 à 23:41

Je ne savais pas trop où poster ce tutoriel, le voilà ici.

La manipulation suivante va permettre à votre site PHPBB3:

  • d'automatiser la création d'un compte d'accès au serveur pure-FTP pour vos membres
  • de synchroniser les mots de passes entre les bases PHPBB et pure-FTP si le membre change son mot de passe.

Ceci pourra vous être utile si comme moi vous administrez un site privé (à destination de quelques membres restreint) et que vous voulez autoriser vos membres à dowloader/uploader sur votre FTP.

Prérequis:
  • un site phpbb3. (Ce tutoriel à été fait avec un PhpBB 3.0.9)
  • le mod Invite est vivement recommandé pour réstreindre l'inscription des membres.
  • un serveur Pure-FTP configuré avec
    - gestion des comptes sur base MySQL
    - Hachage des mots de passes en MD5
    - utilisateur virtuel (virtual user) Chrooté
  • un éditeur de texte compatible Php, comme Notepad ++
En outre, il faut connaître
  • l'adresse du serveur MySQL,
  • le nom de la base contenant les utilisateurs Pure-FTP
  • un compte MySQL pouvant se connecter à la base et y écrire
  • Pour l'utilisateur virtuel de Pure-FTP, son Uid, son Gid et le chemin de son chroot
L'exemple pris dans les codes:
  • Adresse du serveur MySQL = localhost (MySQL, le serveur web et le serveur FTP sont sur la même machine)
  • Nom de la base: pureftpd
  • Nom de l'utilisateur: pureftpd
  • mot de passe: pureftpd
  • l'utilisateur virtuel de Pure-FTP a un Uid = 1001 et un Gid= 1001
  • le répertoire racine de chaque utilisateur est /home/common/ftp/
Modifiez ces valeurs par les vôtres !

La manipulation consiste à ajouter du code php à deux fichiers ( \www\phpBB\includes\ucp\ucp_register.php et \www\phpBB\includes\ucp\ucp_profile.php). Une fois ajouté, ce code doit être personnalisé avec vos propres paramètres. Faites d'abord des essaies sur une machine virtuelle de test avant de le faire sur une machine en production.

Partie I: Création de compte FTP lors de l'inscription au forum

Éditer le fichier \www\phpBB\includes\ucp\ucp_register.php.

Juste après ces lignes (323-324):
Code: Tout sélectionner
// Register user...
$user_id = user_add($user_row, $cp_data); 


Il faut copier ce code:

Code: Tout sélectionner

                
//DEBUT DU SCRIPT DE LIAISON ENTRE LE COMPTE PHPBB ET LE COMPTE PUREFTPD
                //Ecrit par petitchat
                /* Configurer manuellement d'ici...*/
                //addresse du serveur mysql 
                //$mysqlsrv = '192.168.1.6';
                $mysqlsrv = 'localhost';

                //nom de l'utilisateur MySQL à utiliser
                $mysqlusername = 'pureftpd';

                //son mot de passe (oui c'est une faille de sécurité)
                $mysqluserpasswd = 'pureftpd';
                
                
//chemin du fichier log
                //$logpath = 'c:\wamp\www\FTPusers.log';
                //$logpath = '/home/www/log/ftpusers.log';

                //initialisation de la requête MySQL à partir des variables précédentes.
                $reqcreate="INSERT INTO users (User,Password,Uid,Gid,Dir) VALUES ('".$ftpnewlogin."','".$ftpnewpasswd."','1001','1001','/home/common/ftp/')";
                
                
/* ..à là */
                
                
//nom de la base utilisée par Pure-ftpd-mysql pour gérer les utilisateurs
                $ftpbase = 'pureftpd';
                //On récupère le login de phpBB
                $ftpnewlogin=$data['username'];
                
                
//on récupère dans la foulée le (nouveau) mot de passe.
                //souvent, par sécurité, le serveur FTP ne stocke pas le mot de passe en clair mais un hash.
                //( pour pure-ftpd, voir le fichier /etc/pure-ftpd/db/mysql.cnf, la ligne MYSQLCrypt qui peut
                //prendre plusieurs valeurs tel que 'cleartext', 'MD5', et d'autres ...)
                //Si c'est la cas, il faut hasher le mot de passe au lieu de le stocker en clair.
                $ftpnewpasswd=md5( $data['new_password'] );
                //$ftpnewpasswd=$data['new_password'];
                
                



                
//ouverture du fichier log
                //$log= fopen ($logpath, "r+");

                //fputs ($log, $reqcreate.chr(10));
                //connexion au serveur MySQL
                if( $id = mysql_connect($mysqlsrv,$mysqlusername,$mysqluserpasswd) )
                {
                // connexion à la base
                    if( $id_db = mysql_select_db($ftpbase) )
                    {
                    //fputs ($log, 'Succès de connexion.'.chr(10));
                    
                        if 
($creating = mysql_query($reqcreate)) {
                            //fputs ($log, 'création effectuée'.chr(10));
                            
                        
}
                        else {
                            //fputs ($log, 'la création a échoué'.chr(10));
                            die ("la création a échoué");
                        }
                    
                    
}     
                    
                    else
{
                        //fputs ($log, 'Echec de connexion à la base.'.chr(10));
                        die("Echec de connexion à la base.");
                    }
                mysql_close($id);
                } else{
                    //fputs ($log, 'Echec de connexion au serveur de base de données.'.chr(10));
                    die("Echec de connexion au serveur de base de données.");
                }
                //fermeture du fichier log
                //fclose ($log);
                //FIN DU SCRIPT DE LIAISON

                //===================   


Il faut ensuite se reporter au début du code et paramétrer manuellement certaines variables.

Remarque:
Ce code est abondamment commenté, ce qui devrait faciliter la compréhension.Toutefois, je l'ai conçu au départ avec un système de fichier journal. Cela explique les lignes contenant $log. Désolé si ça n'est pas très propre. :oops: Pour vos essais, vous pouvez décommenter certaines lignes pour activer la journalisation du code.

Normalement, arrivé à ce stade, les nouveaux membres se voient automatiquement créer un compte sur le serveur FTP.

Partie II: Mise à jour en cas de changement de mot de passe

la procédure à suivre ressemble beaucoup à la partie 1. Il faut éditer \www\phpBB\includes\ucp\ucp_profile.php.

Juste après ces lignes (107-116):
Code: Tout sélectionner
if (!sizeof($error))
{
    $sql_ary = array(
        'username'            => ($auth->acl_get('u_chgname') && $config['allow_namechange']) ? $data['username'] : $user->data['username'],
        'username_clean'    => ($auth->acl_get('u_chgname') && $config['allow_namechange']) ? utf8_clean_string($data['username']) : $user->data['username_clean'],
        'user_email'        => ($auth->acl_get('u_chgemail')) ? $data['email'] : $user->data['user_email'],
        'user_email_hash'    => ($auth->acl_get('u_chgemail')) ? phpbb_email_hash($data['email']) : $user->data['user_email_hash'],
        'user_password'        => ($auth->acl_get('u_chgpasswd') && $data['new_password']) ? phpbb_hash($data['new_password']) : $user->data['user_password'],
        'user_passchg'        => ($auth->acl_get('u_chgpasswd') && $data['new_password']) ? time() : 0,
    ); 
"

il faut copier ce code:

Code: Tout sélectionner

                        
//DEBUT DU SCRIPT DE LIAISON ENTRE LE COMPTE PHPBB ET LE COMPTE PUREFTPD
                        //Écrit par petitchat
                        //il ne faut exécuter ce code que si c'est le mot de passe à changé, c'est à 
                        //dire si $data['new_password'] n'est pas vide
                        if ($data['new_password'])
                        {

                            /* Configurer manuellement d'ici...*/
                            //addresse du serveur mysql 
                            //$mysqlsrv = '192.168.1.6';
                            $mysqlsrv = 'localhost';

                            //nom de l'utilisateur MySQL à utiliser
                            $mysqlusername = 'pureftpd';

                            //son mot de passe (et oui c'est encore une faille de sécurité)
                            $mysqluserpasswd = 'pureftpd';

                            //nom de la base utilisée par Pure-ftpd-mysql pour gérer les utilisateurs
                            $ftpbase = 'pureftpd';
                            
                            
//chemin du fichier log
                            //$logpath = 'c:\wamp\www\FTPusers.log';
                            /* ..à là */

                            //On récupère le login de phpBB
                            $ftpnewlogin=$data['username'];
                            

                            
//on récupère dans la foulée le (nouveau) mot de passe.
                            //souvent, par sécurité, le serveur FTP ne stocke pas le mot de passe en clair mais un hash.
                            //( pour pure-ftpd, voir le fichier /etc/pure-ftpd/db/mysql.cnf, la ligne MYSQLCrypt qui peut
                            //prendre plusieur valeure tel que 'cleartext', 'MD5', et d'autres ...)
                            //Si c'est la cas, il faut hasher le mot de passe au lieu de le stocker en clair.
                            $ftpnewpasswd=md5($data['new_password']);
                            //$ftpnewpasswd=$data['new_password'];
                            
                            
//initialisation de la requête MySQL à partir des variables précédantes. 
                                                       
                            $reqfindoldpasswd
= "SELECT Password FROM users WHERE User LIKE '".$ftpnewlogin."'";
                            
                            $reqreplace 
= "REPLACE INTO users (Password) VALUES ('".$ftpnewpasswd."') WHERE User LIKE '".$ftpnewlogin."'";
                            //chemin du fichier log
                            //$logpath = 'c:\wamp\www\FTPusers.log';

                            //ouverture du fichier log
                            //$log= fopen ($logpath, "r+");
                            //fputs($log, $reqfindoldpasswd.chr(10));
                            
                            
//connexion au serveur MySQL
                            if( $id = mysql_connect($mysqlsrv,$mysqlusername,$mysqluserpasswd) )
                            {
                            // connexion à la base
                                if( $id_db = mysql_select_db($ftpbase) )
                                {
                                //fputs ($log, 'Succès de connexion.'.chr(10));
                                    if ($findoldpasswd = mysql_query($reqfindoldpasswd))
                                    {
                                    $row= mysql_fetch_object($findoldpasswd);
                                    $ftpoldpasswd = $row->Password;
                                    $reqreplace = "UPDATE users SET Password=REPLACE(Password,'".$ftpoldpasswd."','".$ftpnewpasswd."') WHERE User LIKE '".$ftpnewlogin."'";
                                    //fputs ($log, 'Ancien pass: '.$lodpasswd.chr(10));
                                    //fputs ($log, $reqreplace.chr(10));
                                            if ($creating = mysql_query($reqreplace)) {
                                            //fputs ($log, 'remplacement effectuée'.chr(10));
                                            
                                        
}
                                        else {
                                            //fputs ($log, 'le remplacement a échoué'.chr(10));
                                            die ("le remlpacement a échoué");
                                        }
                                    }
                                    else {
                                    //fputs ($log, 'ancien pass introuvable'.chr(10));
                                    die ("ancien pass introubale");
                                    }
                                                                
                                
}     
                                else
{
                                    //fputs ($log, 'Echec de connexion à la base.'.chr(10));
                                    die("Echec de connexion à la base.");
                                }
                            mysql_close($id);
                            } else{
                                //fputs ($log, 'Echec de connexion au serveur de base de données.'.chr(10));
                                die("Echec de connexion au serveur de base de données.");
                            }
                            //fermeture du fichier log
                            //fclose ($logpath);
                            
                        
}
                        //FIN DU SCRIPT DE LIAISON
                        //===================   


Il faut ensuite se reporter au début du code et paramétrer manuellement certaines variables. Ceci fait, le changement de mot de passe dans le forum PhpBB affectera aussi le compte FTP. A l'usage, un membre doit parfois changer deux fois sont mot de passe pour que cela fonctionne, je ne comprends pas pourquoi.

Conclusion:

Les membres de votre forum ont maintenant un accès FTP. A vous de paramétrer les permissions des dossiers du FTP comme vous le souhaitez afin d'autoriser/interdire la lecture/l'écriture.
Inconvénient: Le mot de passe du compte MySQL est stocké en clair dans le code ce qui, j'en conviens tout à fait, constitue une faille de sécurité assez scandaleuse. Par conséquent, vous utiliserez ce code à vos risques et périls et je me dégage de toute responsabilité si on hack votre compte. Si quelqu'un sait comment corriger cette faille, sa contribution sera la bienvenue.

Merci d'avoir suivi ce tuto ;)
Modifié en dernier par petitchat le 16 Mar 2014 à 03:17, modifié 2 fois.
Avatar de l’utilisateur
petitchat
Posteur néophyte
Posteur néophyte
 
Messages: 50
Enregistré le: 13 Sep 2011 à 13:39

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar Geo » 04 Mar 2014 à 03:35

Salut,

On va regarder ça entre codeurs, mais il y a de grosses lacunes sur le guideline de phpBB, comme du texte en dur, ou des config qui pourraient être installées via UMIL :|

Amicalement
Tout mes MODs/Extensions sont maintenant au statut abandonné.
Geo
Trifouilleur de code
 
Messages: 11280
Enregistré le: 25 Fév 2010 à 06:03
Localisation: Nantes, France

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar petitchat » 04 Mar 2014 à 12:45

Merci Geolim4 pour l’intérêt que tu porte à ce sujet.
Geolim a écrit:On va regarder ça entre codeurs, mais il y a de grosses lacunes sur le guideline de phpBB, comme du texte en dur, ou des config qui pourraient être installées via UMIL

Effectivement je ne suis pas codeur à la base ; les codes présentés sont d'avantage du bricolage qu'autre chose, je le reconnais volontiers. Mais je ne demande qu'à améliorer et rendre ce tuto "orthodoxe". D'avance merci pour vos suggestions qui permettrons d'améliorer ce travail.
Avatar de l’utilisateur
petitchat
Posteur néophyte
Posteur néophyte
 
Messages: 50
Enregistré le: 13 Sep 2011 à 13:39

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar voxdemonix » 18 Mar 2015 à 19:50

Fonctionne bien sur la version actuelle (3.1.3) de phpBB , merci beaucoup de l'astuce. Et les commentaires m'ont permis de l'adapter en 2 minutes, GJ ! Il ne manque que la suppression d'utilisateur que tu n'as pas lié je crois.

PS: évitez md5, privilégiez un truc plus costaud (genre minimum sha256 voir plus)

Edit: hmm y a un petit problème avec les fonctions mysql_, elles sont obsolète et je ne sais pas combien de temps le script fonctionnera encore. http://php.net/manual/fr/function.mysql-select-db.php
voxdemonix
Posteur néophyte
Posteur néophyte
 
Messages: 35
Enregistré le: 18 Mar 2015 à 19:21

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar voxdemonix » 19 Mar 2015 à 13:00

hmm y a un petit problème avec les fonctions mysql_, elles sont obsolète et je ne sais pas combien de temps le script fonctionnera encore. https://php.net/manual/fr/function.mysql-select-db.php. Si quelqu'un familiarisé avec les nouvelles fonctions pouvait corriger le script franchement se serait pratique :)

Edit: voila la traduction du premier code (pour les nouveaux inscrits)
Éditer fichier /var/www/forum/includes/ucp/ucp_register.php après $user_id = user_add($user_row, $cp_data); (ligne 324)
Code: Tout sélectionner
// LIAISON ENTRE FORUM PHPBB ET MA BDD
                $mysqlsrv = 'localhost';
                $mysqlusername = 'YourBbbUser';
                $mysqluserpasswd = 'YourBbbPass';
                $bdd = 'YourBbbName';
                $ftpnewlogin=$data['username'];
                $ftpnewpasswd=hash('sha512', $data['new_password'] );
      $requete="INSERT INTO IMT_Users (pseudo,password,timeLastConnect) VALUES ('".$ftpnewlogin."','".$ftpnewpasswd."','0')";

      //connexion au serveur MySQL
                if( $id = new mysqli($mysqlsrv,$mysqlusername,$mysqluserpasswd,$bdd) ) //mysqli_connect($mysqlsrv,$mysqlusername,$mysqluserpasswd,$bdd)
                {
                // connexion à la base
                   
                        if ($result = $id->query($requete)) { // $result = $id->query($requete)
                            //fputs ($log, 'création effectuée'.chr(10));
                           
                        }
                        else {
                            //fputs ($log, 'la création a échoué'.chr(10));
                            die ("la création a échoué");
                        }
                } else{
                    //fputs ($log, 'Echec de connexion au serveur de base de données.'.chr(10));
                    die("Echec de connexion au serveur de base de données.");
                }
// END LIAISON ENTRE FORUM PHPBB ET MA BDD END


Re-edit: voici la traduction du second code:
Pour mettre a jours automatiquement la seconde BDD lorsqu'un utilisateur du forum change son mot de passe:
Éditer /www/phpBB/includes/ucp/ucp_profile.php dans la ligne suivante 'user_passchg' => ($auth->acl_get('u_chgpasswd') && $data['new_password']) ? time() : 0, ); (ligne 116)
Code: Tout sélectionner
// LIAISON ENTRE FORUM PHPBB ET  MA BDD 
                        if ($data['new_password'])
                        {
                            $mysqlsrv = 'localhost';
                            $mysqlusername = 'YourBbbUser';
                            $mysqluserpasswd = 'YourBbbPass';
                            $bdd = 'YourBbbName';
                            $ftpnewlogin=$data['username'];
                            $ftpnewpasswd=hash('sha512', $data['new_password']);
                            $reqfindoldpasswd= "SELECT password FROM IMT_Users WHERE pseudo LIKE '".$ftpnewlogin."'";
                            $reqreplace = "REPLACE INTO IMT_Users (password) VALUES ('".$ftpnewpasswd."') WHERE pseudo LIKE '".$ftpnewlogin."'";

                            if( $id = new mysqli($mysqlsrv,$mysqlusername,$mysqluserpasswd, $bdd) )
                            {
                                    if ($findoldpasswd = $id->query($reqfindoldpasswd))
                                    { 
                                    $row= $findoldpasswd->fetch_object();
                                    $ftpoldpasswd = $row->password; 
                                    $reqreplace = "UPDATE IMT_Users SET password=REPLACE(password,'".$ftpoldpasswd."','".$ftpnewpasswd."') WHERE pseudo LIKE '".$ftpnewlogin."'";
                                            if ($creating = $id->query($reqreplace)) {
                                            
                                        }
                                        else {
                                            echo ("le remlpacement a échoué");
                                        }
                                    }
                                    else {
                                    echo ("ancien pass introubale");
                                    }
                            } else{
                                echo("Echec de connexion au serveur de base de données.");
                            }
                        }
//FIN LIAISON ENTRE FORUM PHPBB ET  MA BDD   END


code : https://nebuleuse0rion.ddns.net/forum4/ ... p=169#p169
Modifié en dernier par voxdemonix le 23 Mar 2015 à 21:32, modifié 1 fois.
voxdemonix
Posteur néophyte
Posteur néophyte
 
Messages: 35
Enregistré le: 18 Mar 2015 à 19:21

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar petitchat » 19 Mar 2015 à 19:37

Merci voxdemonix pour l'intérêt que tu porte à ces scripts, de les avoir testé sur phpBB 3.1et du travail que tu as consacré à les adapter. Ton travail va m'être très utile quand je mettrai à jour les versions logicielles sur mon serveur (et je ne dois pas être le seul).

voxdemonix a écrit:les fonctions mysql_, elles sont obsolète et je ne sais pas combien de temps le script fonctionnera encore

Mes scripts ont été fait sous php 5.3.3. Les tiens sont adaptés à quelle version ? php 5.5 ?

voxdemonix a écrit:PS: évitez md5, privilégiez un truc plus costaud (genre minimum sha256 voir plus)

C'est vrai que l'emploi du MD5 est une faille de sécurité et qu'employer une meilleure fonction de hachage serai mieux. C'est sûrement possible à faire mais je n'ai pas trouvé comment.

pure-ftp accepte ces fonctions (lien vers la man-page):
Code: Tout sélectionner
plaintext, SHA1, MD5, crypt()ed or MySQL's password()

Parmi ces choix, MD5 m'a semblé la solution la moins mauvaise... je l'utilise en imposant en plus un mot de passe vraiment fort (10 caractères minimum, forcer l'emploi de chiffres, de lettres, etc...).

Comment fait on pour utiliser sha256 ou + ?
Avatar de l’utilisateur
petitchat
Posteur néophyte
Posteur néophyte
 
Messages: 50
Enregistré le: 13 Sep 2011 à 13:39

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar voxdemonix » 19 Mar 2015 à 20:36

petitchat a écrit:Merci voxdemonix pour l'intérêt que tu porte à ces scripts, de les avoir testé sur phpBB 3.1et du travail que tu as consacré à les adapter. Ton travail va m'être très utile quand je mettrai à jour les versions logicielles sur mon serveur (et je ne dois pas être le seul).

De rien, c'est ça la communauté du libre :) et merci pour ton tuto ;) (en français en prime !)

petitchat a écrit:
voxdemonix a écrit:les fonctions mysql_, elles sont obsolète et je ne sais pas combien de temps le script fonctionnera encore

Mes scripts ont été fait sous php 5.3.3. Les tiens sont adaptés à quelle version ? php 5.5 ?

enfaite c'est le site de php.net http://php.net/manual/fr/mysqlinfo.api.choosing.php qui m'a pousser a éditer les scripts de suite plus tôt que quand je les aurai oublié ^^ D'après le lien : mysqli va perdurer alors que mysql va être supprimé du moteur PHP. Si non là je suis en 5.46.


petitchat a écrit:Comment fait on pour utiliser sha256 ou + ?

Dans Pure-FTP je ne sais pas; en PHP il suffit d'utiliser la fonction hash($algo,"texte a chiffrer") comme je l'ai fait dans les scripts (je me suis servis de ton tuto pour lier a une autre base de données, pas a pro-FTP mais a un software que je suis en train de coder :) )

En passant, tu sais si on sait autoriser les membres du forum a supprimer leur compte? J'ai voulu faire le script pour lier la suppression d'utilisateur sur le forum et sur la seconde BDD et je n'ai pas trouvé ^^
voxdemonix
Posteur néophyte
Posteur néophyte
 
Messages: 35
Enregistré le: 18 Mar 2015 à 19:21

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar cabot » 19 Mar 2015 à 20:49

Salut à tous,

Je comprends pas grand chose à vos échanges qui restent du parfait charabia pour un modeste tricoteur de CSS mais ça m'a l'air bien pratique ce que vous faites.
Merci pour le boulot et le partage. :wink:
Image
Avatar de l’utilisateur
cabot
Equipe site
Equipe site
 
Messages: 26796
Enregistré le: 13 Fév 2011 à 20:42
Localisation: Rarement sur la plaque

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar voxdemonix » 19 Mar 2015 à 20:54

cabot a écrit:Salut à tous,

Je comprends pas grand chose à vos échanges qui restent du parfait charabia pour un modeste tricoteur de CSS mais ça m'a l'air bien pratique ce que vous faites.
Merci pour le boulot et le partage. :wink:

En gros tu peux lier une base de données (de ta création par exemple) avec ton forum. Ainsi si tu fais un site web (où dans mon cas une application web 3.0) qui a besoin que tes utilisateurs s'inscrivent bah c'est ton forum phpBB qui gère les inscriptions, les connexions etc :)
J'ai repris le tuto de petitchat sur mon forum pour une utilisation dans d'autres contexte :)
si le besoin se fait :arrow: https://nebuleuse0rion.ddns.net/forum4/ ... ?f=9&p=169 ;)
voxdemonix
Posteur néophyte
Posteur néophyte
 
Messages: 35
Enregistré le: 18 Mar 2015 à 19:21

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar Skouat » 19 Mar 2015 à 21:20

Bonjour,

Attention ! comme l'avais indiqué Geo à l'époque, le code utilisé ne respecte aucune des directives de codes de phpBB.
De plus s'il faut adatper le code pour phpBB 3.1, alors il faut mettre en place une extension et non modifier directement le code de phpBB.

Pour 3.0.x => https://www.phpbb.com/mods/rules-and-po ... checklist/
Pour 3.1.x => https://www.phpbb.com/extensions/rules- ... on-policy/

Dans le code à bannir il y a : l'utilisation de die(), query() et toutes les fontions directes sont à remplacer par la version de substitution mise à disposition dans le code de phpBB.
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13711
Enregistré le: 02 Avr 2008 à 20:47

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar voxdemonix » 19 Mar 2015 à 21:32

t'as rien en français? ^^ (nota bene: ça tourne déjà sur 3.1)
merci pour l'infos ;)
voxdemonix
Posteur néophyte
Posteur néophyte
 
Messages: 35
Enregistré le: 18 Mar 2015 à 19:21

Re: [Tuto] Liaison entre PhpBB3 et Pure-FTP

Messagepar petitchat » 20 Mar 2015 à 00:12

@ Skouat
Tu as raison de rappeler que mes scripts sont du bricolage, faits par un admin polyvalent et donc très mauvais pour un codeur spécialisé. D'ailleurs, si un codeur avertit de la guideline phpBB3 lit ce sujet et veut faire un module, quelque chose de propre, équivalent en résultat à ce bidouillage, il rendra service à voxdemonis, à moi-même et certainement à d'autres.

@voxdemonis
voxdemonis a écrit: tu sais si on sait autoriser les membres du forum a supprimer leur compte? J'ai voulu faire le script pour lier la suppression d'utilisateur sur le forum et sur la seconde BDD et je n'ai pas trouvé ^^

Ce script que tu propose serai effectivement tout à fait complémentaire des autres. Pour ma part, les désinscriptions sont rares et je peux le faire manuellement, donc je ne me suis pas penché sur la question. A froid, la suppression de compte (par le membre ou l'admin) depuis phpBB3 appelle peut être une fonction php spécifique, à déterminer ? Une fois la fonction repérée, il faudrait inclure un code php ressemblant à nos scripts précédents avec comme changements majeures :
  • Stocker le nom d'utilisateur à supprimer dans une variable, par exemple $memberlogin
  • le remplacement de cette ligne :
    Code: Tout sélectionner
    //initialisation de la requête MySQL à partir des variables précédentes.
                    $reqcreate="INSERT INTO users User,Password,Uid,Gid,Dir) VALUES ('".$ftpnewlogin."','".$ftpnewpasswd."','1001','1001','/home/common/ftp/')";

    par quelque chose comme:
    Code: Tout sélectionner
    //initialisation de la requête MySQL à partir des variables précédentes.
                    $reqcreate="DELETE FROM users WHERE USER='".$memberlogin."';
@cabot
Merci pour tes encouragements. ! [mode_démago] Et vive les "modeste[s] tricoteur[s] de CSS": à quoi servirai de lier des bases de données si les membres trouvent le forum moche et ne s'y inscrivent même pas ? [/mode_démago] :wink:
Avatar de l’utilisateur
petitchat
Posteur néophyte
Posteur néophyte
 
Messages: 50
Enregistré le: 13 Sep 2011 à 13:39


Retourner vers Discussions sur phpBB3

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité