Bonjour,
Pour le fix, le mieux serait de vérifier sur HTTP_X_FORWARDED_PROTO (le protocole du proxy) :
$is_https = false; if ((isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https')|| (isset($_SERVER['HTTPS']) && ((strtolower($_SERVER['HTTPS']) == 'on') or ($_SERVER['HTTPS'] == 1)))) { $is_https = true; $url .= 'https://'; } else { $url .= 'http://'; }
Cette solution est déjà proposée là : https://github.com/Piwigo/Piwigo/pull/483 - Ce serait bien de l'intégrer dans le code !
Merci à tous.
J'ai adopté la proposition d'Élodie qui fonctionne.
Bonnejournée,
Bonsoir @Elodie_FSH
Merci pour ton retour
En fait ce problème de redirection ne date pas d'aujourd'hui. Il se produit également lorsque l'on envoi une notification par mail, le lien généré reprend le port 80, tant et si bien que lorsque l'utilisateur clique sur le lien, il obtient une erreur. Et on ne peut raisonnablement lui demander de 'bidouiller' l'url pour se sortir d'affaire, en remplaçant 80 par 443 :)
J'avais contacté par mail un membre de l'équipe dev, en août 2018, mais je n'ai jamais eu de retour :(
Il aurait été préférable, peut être, de passer par GiHub, mais je ne maîtrise pas; je n'y vais qu'en consultation...
Bonjour,
C'est exactement ça, Piwigo ne semble pas prendre en compte le cas de la présence d'un Front-web (reverse proxy) tel que HAProxy ou NGinx-proxy par exemple de la ligne 75 dans le fichier ./include/functions_url.inc.php.
En effet, il y a écrit ceci :
$url_port = ':'.$_SERVER['SERVER_PORT'];
if (strrchr($url, ':') != $url_port)
{
$url .= $url_port;
Or derrière un Front-Web, le $_SERVER['HTTPS'] sera à 'on' et le $_SERVER['SERVER_PORT'] implicitement à 80, mais la connexion jusqu'au Front-Web aura bien été sécurisé.
Le mieux serai de commenter les lignes 72 à 80 :
if ( (!$is_https && $_SERVER['SERVER_PORT'] != 80) ||($is_https && $_SERVER['SERVER_PORT'] != 443)) { $url_port = ':'.$_SERVER['SERVER_PORT']; if (strrchr($url, ':') != $url_port) { $url .= $url_port; } }
par ceci :
/* if ( (!$is_https && $_SERVER['SERVER_PORT'] != 80) ||($is_https && $_SERVER['SERVER_PORT'] != 443)) { $url_port = ':'.$_SERVER['SERVER_PORT']; if (strrchr($url, ':') != $url_port) { $url .= $url_port; } } */
Puis de signaler le problème à l'équipe de développement de Piwigo ;)
@K5
Oui j'avais essayé le plugin 'force HTTPS' mais sans succès. Ni message d'erreur, ni port 443...donc je l'ai désactivé.
La méthode ci-dessus, par contre, fonctionne nickel !
Bonjour,
avez vous essayé ca
Force https
Cordialement
k5
Bonsoir,
problème résolu, en ce qui me concerne, donc si ça peut aider voici la procédure:
Quelle est l'origine du problème ?
Si on interroge le serveur web de l'hébergeur, pour info (pour cela créer un fichier par ex ver-php.php, avec les instructions suivantes):
<pre>
<? php
print_r ($ _ SERVER);
?>
</ pre>
...et placez le à la racine de votre serveur web /home/clients/xxxx/web/
lorsqu'on l’appelle dans le navigateur (https://monnomdedomaine/ver-php.php) on obtient bizzarement (voir image en pj) => port 80 et non 443 alors que l'on est bien en HTTPS. Cela est dû au fait que l'infrastructure de l'hébergeur est reliée a HAProxy pour le SSL, ils est donc normal de voir le port 80 au niveau de PHP. L'hébergeur Infomaniak avait trouvé la solution en ajoutant un auto_prepend_file
Solution préconisée qui a fonctionné chez moi:
modifier ou créer s'il n'existe pas le fichier .user.ini (avec le "." devant car c'est un fichier caché), avec le contenu suivant:
; Fix SERVER_PORT making redirects work in Piwigo. function auto_prepend_file =
auto_prepend_file = /home/clients/xxxx/web/php_server_port.php
créer un fichier nomé, dans mon exemple, php_server_port.php avec le contenu suivant:
<?php
// Fix SERVER_PORT making redirects work in Piwigo.
$_SERVER['SERVER_PORT'] = 443; $_SERVER['HTTPS'] = 'on';
?>
Copiez les 2 fichiers dans votre répertoire serveur web, en général /home/clients/xxxx/web (xxxx est votre nom de répertoire client attribué par votre hébergeur).
Et voilà...Au lancement de piwigo le fichier .user.ini est lu par défaut et la fonction 'auto_prepend_file' appelle le fichier php_server_port.php qui force le port 443 lorsque le serveur est en HTTPS.
@Eric offman
si c'est OK pour toi passe ton post en [RESOLU]
suite de mes recherches:
il s'avère que le problème n'est pas si anodin, et ne daterait pas d’aujourd’hui ! on en trouve des traces sur GitHub :
[Github] Piwigo issue #681
certains pensent même qu'il serait le fait du serveur web apache2:
https://stackoverflow.com/questions/443 … erver-port
...ça me laisse dubitatif, car si c'était vraiment le serveur web, alors d'autres applications seraient impactées et ce n'est pas le cas (j'utilise aussi Dolibarr entre autres...).
J'ai informé mon hébergeur au cas où...
@lolo54000
merci tout d'abord pour ta réponse. Mon fichier LocalFilesEditor ne contient aucune ligne. Si l'on ajoute la variable on obtient le message d'erreur suivant:
Parse error: syntax error, unexpected ':' in /.../piwigo/plugins/LocalFilesEditor/include/functions.inc.php(45) : eval()'d code on line 5
par contre j'ai trouvé cette variable dans .../piwigo/include/config_default.inc.php lign 596 avec le paramètre 'null'
593 // gallery_url : you can set a specific URL for the home page of your
594 // gallery. This is for very specific use and you don't need to change this
595 // setting when move your gallery to a new directory or a new domain name.
596 $conf['gallery_url'] = null;
avec les modifs suivantes:
596 $conf['gallery_url'] = https://monnomdedomaine/piwigo/index.php
ou en forçant le port 443 (SSL)
596 $conf['gallery_url'] = https://monnomdedomaine:443/piwigo/index.php
...il me donne un message d'erreur de syntaxe. Je continue à chercher...
par hasard dans local file editor vous n'avez pas une ligne $conf['gallery_url']= avec l'url de votre site (avec le port de spécifié)
si oui essayez sans cette ligne pour voir si ca change quelque chose.
Bonjour,
Même constat suite à la mise à jour de php de 7.0 à v 7.2, j'ai du migré piwigo 2.8.6 vers 2.9.4. Depuis l'utilisateur a l'erreur suivante au moment du login après avoir saisi l'identifiant et mot de passe:
" une erreur est survenue pendant la connexion à mon-domaine.fr:80 SSL a reçu un enregistrement qui dépasse la longueur maximale autorisée. Code d'erreur : SSL_ERROR_RX_RECORD_TOO_LONG"
l'adresse url affichée est la suivante : https://mon-domaine.fr:80/piwigo/index.php?/categories
le problème est lié au fait qu'au moment de l'identification le ':80' est rajouté au nom de domaine, mais je n'arrive pas à identifier la cause. Et comme nous sommes en SSL (port 443 il me semble ?), d'où le 'bug'...
Si l'on supprime manuellement le ':80' de l'url, ou si l'on réactive le lien, l'accès à piwigo est OK, ce qui sous-tend que la prise en compte de l'identifiant et mot de passe s'est faite correctement.
Je n'avais pas ce problème précédemment. Je sens que ce n'est pas grand chose...mais je bloque. Quel fichier php intervient sur l'url ?
serveur mutualisé, hébergeur Infomaniak
Piwigo 2.9.4
Système d'exploitation: Linux
PHP: 7.2.14 (Montrer les informations) [2019-01-22 18:07:51]
MySQL: 5.6.35-log [2019-01-22 18:07:51]
Bibliothèque graphique: ImageMagick 6.8.9-9
Bonjour,
Longueur Id : 4 caractères.
Longueur MdP : 6 caractères.
Bonne journée,
Bonjour,
longueur de l'identifiant et du login ?
Bonjour,
J'ai déplacé ma galerie d'un hébergeur à un autre. Le nom de domaine n'est plus le même. J'accédais à l'ancienne galerie en http. J'accède à la nouvelle galerie en https.
Piwigo semble fonctionner normalement (au moins pour ce que j'ai pu tester), sauf quand je me connecte avec mon id et mon MdP.
Firefox me retourne l'erreur suivante :
Une erreur est survenue pendant une connexion à p.hfn.re:80. SSL a reçu un enregistrement qui dépasse la longueur maximale autorisée. Code d’erreur : SSL_ERROR_RX_RECORD_TOO_LONG
Quand je clique sur la flèche pour revenir sur la page précédente, je retrouve la page d'accueil de la galerie connecté ! Puis tout semble fonctionner.
J'ai supprimé les cookies de p.hfn.re et le cache de Firefox, sans succès.
Y a-t-il un réglage à faire dans Piwigo ou est-ce un problème d'hébergement ?
Merci ! Bonne journée,
Version de Piwigo: 2.9.4
Version de PHP: 7.2.12
Version de MySQL: 5.5.5-10.2.20-MariaDB-10.2.20+maria~stretch [2019-01-06 07:14:58]
URL Piwigo: https://p.hfn.re