Anomalie php 5.5 phpLDAPAdmin
Suite à une mise à jour de Ubuntu, la version de php disponible est devenue la 5.5.6-1ubuntu1
. Or l'application comporte un bug avec une version supérieur ou égale à 5.5.
Votre avis
Nobody voted on this yet
|
|
Etude
Quatre fichiers, dans le répertoire lib
, doivent être modifiés.
- ds_ldap.php
- ds_ldap_pla.php
- functions.php
- PageRender.php
Patch gestion erreur
Le message d'erreur suivant était affiché dans les logs Apache:
PHP Fatal error: Cannot redeclare password_hash() in /var/opt/phpldapadmin-1.2.3/lib/functions.php on line 2236
Ce problème a été identifié et fait l'objet d'un patch au niveau du projet, comme l'indique le ticket à l'adresse http://sourceforge.net/mailarchive/message.php?msg_id=31302386.
L'archive suivante contient l'ensemble des fichiers modifiés, patch.tar.gz.
Il suffit d'extraire les fichiers dans le répertoire cible à l'aide de la commande suivante:
#sudo tar -C /var/opt/phpldapadmin-1.2.3/lib/ -xzvf phpLdapAdmin-1.2.3_patch.tar.gz PageRender.php ds_ldap.php ds_ldap_pla.php functions.php
Erreur création
Lors de la création d'entrée avec affichage d'un mot de passe, une erreur se produit.
Error trying to get a non-existant valeur (apperance,password_hash)
L'interface est inexploitable :
La solution a été trouvée sur le blog suivant.
Il faut modifier la fonction drawDefaultHelperPasswordAttribute
dans le fichier lib/TemplateRender.php
de la façon suivante:
protected function drawDefaultHelperPasswordAttribute($attribute,$i) {
$id = 'enc';
if ($val = $attribute->getValue($i))
$default = get_enc_type($val);
else
$default = $this->getServer()->getValue('appearance','password_hash');
// $default = $this->getServer()->getValue('appearance','password_hash_custom');
if (! $attribute->getPostValue())
printf('<input type="hidden" name="post_value[%s][]" value="%s" />',$attribute->getName(),$i);
printf('<select name="%s[%s][%s]" id="%s_%s_%s">',
$id,htmlspecialchars($attribute->getName()),$i,
$id,htmlspecialchars($attribute->getName()),$i);
foreach (password_types() as $v => $display)
printf('<option value="%s" %s>%s</option>',$v,($v == $default) ? 'selected="selected"' : '',$display);
echo '</select>';
}
L'archive suivante contient le fichier modifié, patch.tar.gz.