Problème php chez free?

Petit nouveau ! | 3 Messages

03 nov. 2010, 12:51

Bonjour,

J'ai mis en ligne un script sur un site hébérgé chez free. Ce script fonctionne parfaitement sur mon mac, avec un serveur php de MAMP. Mais il ne marche pas chez free.

Il utilise le module de cryptage mcrypt.
Chez free, j'obtiens une erreur 500 après un temps d'éxécution anormalement long.
J'ai simplifié le script pour voir si le problème venait du cryptage lui même.
Je ne fais pas d'ouverture de module, pas d'initialisation, seulement création de vecteur et récupération de la taille de la clef de codage.
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_OFB), MCRYPT_DEV_RANDOM);
$ks = mcrypt_get_key_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_OFB);

J'obtiens le même problème : exécution anormalement longue, erreur 500.

Or,Pour le module correspondant à la forme de cryptage que j'ai choisie, le test du module avec mcrypt_module_self_test() est positif, ce qui indique que le module est disponible. (RIJNDAEL256, OFB sous php5) D'ailleurs il figure dans la config obtenue avec phpinfo().
Une fois ouvert, le test avec mcrypt_enc_self_test(), qui teste le module ouvert est bon encore.


Donc QUESTION : avez-vous eu de pareils problèmes chez free avec mcrypt? Comment avez-vous pu les résoudre?
Merci pour votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

04 nov. 2010, 15:57

Bonjour,

Cela ressemble à un problème spécifique à l'hébergement Free, le mieux serait que tu les contactes directement.
Yohan, le responsable des pages persos de Free est en général assez présent sur les newsgroup proxad.free.services.pagesperso
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

15 nov. 2010, 13:14

Je ne peux pas me connecter aux forums usenet. J'ai tenté de poser ma question sur un forum consacré à free (aduf) mais sans réponse. C'est pourquoi je tente ma chance ici, pour savoir si un autre utilisateur de php a déjà été confronté au même problème chez free, et comment il s'en est tiré?
Merci pour vos réponses.

Mammouth du PHP | 19672 Messages

18 nov. 2010, 23:33

Attention, chez free, il y a deux versions de PHP :
- Fichiers avec une extension « .php » => 4.4.3-dev;
- Fichiers avec une extension « .php5 » => 5.1.3RC4-dev
La différence de version pour mcrypt n'est pas énorme mais ça peut venir de ça si le code utilise une syntaxe PHP5.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

26 nov. 2010, 14:02

Cyrano, c'est une bonne idée et ça aurait pu être ça. Merci de me l'avoir signalé. Mais en fait, mon fichier est bien nommé avec le suffixe php5.
L'erreur vient d'ailleurs et pour l'instant je n'ai pas d'explication.
MOn script est:

$chaine = 'Bravo!';
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_OFB), MCRYPT_DEV_RANDOM);
$ks = mcrypt_get_key_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_OFB);
$key = substr('clefdecodage', 0, $ks);
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $chaine, MCRYPT_MODE_OFB, $iv);
echo "Resultat : $encrypted";
Rien que ça! et ça plante.

Le même script fonctionne parfaitement sur mon mac.
D'autres suggestions? :?:

Mammouth du PHP | 19672 Messages

26 nov. 2010, 14:55

Oui, regarde la doc à propos du second paramètre de mcrypt_create_iv : tu utilises la valeur par défaut qui va donc chercher une ressource dans /dev/urandom : il est possible que ce chemin soit inaccessible dans les serveurs de free.

Je suggère donc de remplacer par MCRYPT_RAND et là ça fonctionne. Exemple avec :
$chaine     = 'Bravo!';
$ks         = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CFB);
$iv         = mcrypt_create_iv($ks, MCRYPT_RAND);
$key        = substr('clefdecodage', 0, $ks);
$encrypted  = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $chaine, MCRYPT_MODE_OFB, $iv);
echo "Resultat : $encrypted";
Ce qui donne ceci.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: