IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Passage de PHP 7.4 à 8.2 - openssl_encrypt produit une erreur 500 en 8.2


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2023
    Messages : 5
    Par défaut Passage de PHP 7.4 à 8.2 - openssl_encrypt produit une erreur 500 en 8.2
    Bonjour,

    Je rencontre actuellement un problème sur mon hébergement OVH.
    Je viens de tenter de passer mon site de php 7.4 à 8.2.

    En ayant bien isolé le problème, je rencontre un soucis sur ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $string = openssl_encrypt($str, "aes-128-cbc", KEYPASS . $keypassdata, OPENSSL_ZERO_PADDING, OPENSSL_IV);
    Ce code produit une erreur 500 en php 8.x.

    Avez vous déjà rencontré le problème ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Il doit y avoir un peu plus de détails dans le log du serveur web (Apache, Nginx ou autre).
    Par exemple, si c'est Apache, je jetterais un coup d'oeil au fichier /var/log/apache2/error.log (le chemin peut varier). Ou utiliser la commande journalctl. Mais je ne sais pas si c'est un dédié ou un mutualisé ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2023
    Messages : 5
    Par défaut
    Merci pour ces précisions.

    Il s'agit d'un hébergement mutualisé, et d'après ce que j'ai vu, il ne produit pas de logs dans l'interface mise à disposition d'OVH.
    Le problème est que j'utilise des scripts PHP pour interfacer une application Android/iOS.

    Voici l'erreur que me renvoie le serveur :
    {"status":500,"url":"https://www.monglucko.com/******","headers":{"date":"Tue, 08 Aug 2023 02:07:52 GMT","server":"Apache","transfer-encoding":"chunked","x-android-selected-protocol":"http/1.1","x-android-response-source":"NETWORK 500","x-android-received-millis":"1691460472391","x-android-sent-millis":"1691460472255","x-powered-by":"PHP/8.2","connection":"keep-alive","content-type":"text/html; charset=UTF-8"},"error":""}

    Il semble que le problème vienne du $iv que je force via une variable globale.
    Est ce qu'il devient nécessaire de le rendre aléatoire en PHP 8.2 ?

    Si je le force "erreur 500".
    Si je place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
    $iv = openssl_random_pseudo_bytes($ivlen);
    Je n'ai plus d'erreur 500 mais du coup toutes mes valeurs ne seront plus bonnes. Il faut que j'enregistre en plus le $iv en BDD, si c'est bien le problème ?

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    regardez les exemples dans la documentation, le 5e paramètre ($iv) est utilisé de 2 façons différentes :
    https://www.php.net/manual/fr/functi...sl-encrypt.php

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2023
    Messages : 5
    Par défaut
    Arggg...

    Après avoir refouillé... le problème venait d'un $row[id] et en 8.2, il faut bien mettre un $row["id"].
    Genre de problèmes qui ne remontent pas d'erreur... mais qui déclenche une 500 quand même.


  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 256
    Par défaut
    en prod, les erreurs ne sont pas affichés.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo