Anomalie php 5.5 phpLDAPAdmin

De EjnTricks
Révision de 20 avril 2018 à 14:30 par Etienne (discussion | contributions) (Page créée avec « Suite à une mise à jour de Ubuntu, la version de php disponible est devenue la <code>5.5.6-1ubuntu1</code>. Or l'application comporte un bug avec une version supéri... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

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.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png Etude

Quatre fichiers, dans le répertoire lib, doivent être modifiés.

  • ds_ldap.php
  • ds_ldap_pla.php
  • functions.php
  • PageRender.php


Update icon.png 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


Add-icon.png 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.