Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

Bertrand Gorge
2022-08-25 12:20:55

Bonjour,

Pour le fix, le mieux serait de vérifier sur HTTP_X_FORWARDED_PROTO (le protocole du proxy) :

Code:

    $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 !

eric hoffmann
2019-05-30 15:31:15

Merci à tous.
J'ai adopté la proposition d'Élodie qui fonctionne.
Bonnejournée,

julio13
2019-02-17 21:34:32

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...

Elodie_FSH
2019-02-17 19:33:20

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 :

Code:

      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 :

Code:

/*
      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 ;)

julio13
2019-01-23 23:20:37

@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 !

k5
2019-01-23 23:16:48

Bonjour,

avez vous essayé ca

Force https

Cordialement
k5

julio13
2019-01-23 23:07:46

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]

julio13
2019-01-23 11:50:05

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ù...

julio13
2019-01-23 11:11:41

@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...

lolo54000
2019-01-22 22:24:01

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.

julio13
2019-01-22 18:04:21

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

eric hoffmann
2019-01-07 03:35:37

Bonjour,

Longueur Id : 4 caractères.
Longueur MdP : 6 caractères.

Bonne journée,

ddtddt
2019-01-06 20:19:27

Bonjour,

longueur de l'identifiant et du login ?

eric hoffmann
2019-01-06 07:18:32

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

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact