Aller au contenu

Sujets conseillés

Posté

Bonjour,

Ayant fait l'acquisition d'un logiciel sur mesure pour site de généalogie, je me retrouve confronté face à un problème.

Sur le site test, le logiciel fonctionne parfaitement.

Une fois installé sur mon serveur, je me retrouve bloqué avec un problème de permission.

Le logiciel est couplé avec IPB 2.3.1, et lorsque un membre valide la création de son arbre généalogique, un dossier est créé par défaut dans un répertoire trees.

Or il s'avère que le script octroie à ce répertoire pensant la création des droits 777.

Seulement lorsque je vérifie les droits sont à 744.

Je me suis rapproché de concepteur qui me dit d'apporter les modifications nécessaire dans le php.ini du site afin que celui ci ne modifie pas les droits.

Or la je suis perdu.

QUe modifié ? Ou modifié ??

Merci de votre aide.

Posté

Me revoila,

en regardant un peu le code je trouve cela :

//-----------------------------------------
// Ok, then let's create
//-----------------------------------------

$did_folder = 0;

$guid = $this->lib->generate_guid();

@mkdir( ROOT_PATH . 'trees/' . $tree_name, 0777 );
if( $this->lib->write_index_file( ROOT_PATH . 'trees/' . $tree_name, $guid ) )
{
$did_folder = 1;
}


$this->ipsclass->DB->do_insert( 'fam_trees', array( 'guid' => $guid,
'mid' => $this->ipsclass->member['id'],
'tree_name' => $this->ipsclass->input['tree_name'],
'folder_name' => $did_folder ? $tree_name : null,
) );

$this->ipsclass->DB->do_update( 'members', array( 'has_tree' => 1 ), 'id=' . $this->ipsclass->member['id'] );

$this->ipsclass->print->redirect_screen( $this->ipsclass->lang['createtree_success'], 'autocom=family&code=view' );
}

Je me rends compte que pour les anciennes version de PHP on n'avait pas besoin de mettre le Chmod

J'ai donc modifié le code de façon à lui dire ce qu'il devait faire.

//-----------------------------------------
// Ok, then let's create
//-----------------------------------------

$did_folder = 0;

$guid = $this->lib->generate_guid();

@mkdir( ROOT_PATH . 'trees/' . $tree_name, 0777 );
@chmod( ROOT_PATH . 'trees/' . $tree_name, 0755 );
if( $this->lib->write_index_file( ROOT_PATH . 'trees/' . $tree_name, $guid ) )
{
$did_folder = 1;
}


$this->ipsclass->DB->do_insert( 'fam_trees', array( 'guid' => $guid,
'mid' => $this->ipsclass->member['id'],
'tree_name' => $this->ipsclass->input['tree_name'],
'folder_name' => $did_folder ? $tree_name : null,
) );

$this->ipsclass->DB->do_update( 'members', array( 'has_tree' => 1 ), 'id=' . $this->ipsclass->member['id'] );

$this->ipsclass->print->redirect_screen( $this->ipsclass->lang['createtree_success'], 'autocom=family&code=view' );
}

Maintenant lorsque le dossier est créé , le chemin friendly_URL est correct et est disponible de suite.

Je me retrouve face à 2 soucis.

Lorsque je valide, je me fait déconnecté du forum, et doit d'abord me reconnecter idem si j'applique une suppression.

hors lorsque j'utilise la premère version originale, je n'ai pas ce soucis, sauf que je dois mettre les chmod à la main via ftp..

Une idée de ce qui pourrais faire que je me retrouve déconnecté ?

Posté

Bonjour,

Tu ne nous dit pas si Php tourne en module apache, ou en CGI avec suphp.

S'il est en module Apache, les permissions du répertoire créé devraient être correctes pour qu'il puisse écrire dedans.

Lance un "ls -ld rep" (avec rep égal au répertoire créé), qu'on puisse voir les permissions, utilisateur, groupe de celui-ci.

Posté
Lance un "ls -ld rep" (avec rep égal au répertoire créé), qu'on puisse voir les permissions, utilisateur, groupe de celui-ci.

Je ne suis pas doué à ce point pour savoir lancé cette commande .. Du moins à quel niveau je dois me placer.

Je suis sur un dédié OVH en realease2 (Gentoo)

Posté

Il me semble que ce soit cette ligne qui impose ensuite une déconnexion:

$this->ipsclass->DB->do_update( 'members', array( 'has_tree' => 1 ), 'id=' . $this->ipsclass->member['id'] );

Si tu modifies l'entrée correspondant à l'utilisateur, Invision force une déconnexion.

PS: et si tu es en release 2, ton script Php tourne en CGI avec suphp. Il devrait donc avoir les permissions correctes ...

Posté

Ben sans l'ajout dans le code de la ligne _AT_chmod , je me retrouve automatiquement avec des droits à 744 et le dossier se retrouve inaccessible.

Cette ligne : $this->ipsclass->DB->do_update( 'members', array( 'has_tree' => 1 ), 'id=' . $this->ipsclass->member['id'] );

Est censé mettre à jour la table membre pour dire que si 1 , le membre à un arbre et si 0 il n'en a pas.

Je tourne un peu en rond....

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...