Bonjour

Après enquête, il semblerait que la page saisie/saisie_aid.php cherche à créer une table 
temporaire en concaténant "class_temp"
et le nom de la session PHP en cours. Hors ce nom peut être plus ou moins long. 
Dans le cas de l'ENT Envole, ce nom est plutôt (très) long
puisqu'il contient l'url du serveur dans une forme simplifiée, plus le ticket 
de service CAS.

Le problème est que par défaut, MySQL autorise au maximum 64 caractères pour le 
nom d'une table (valeur que l'on dépasse allègrement
avec les ids de sessions de l'ENT).

Je propose de hasher le nom de la table temporaire à créer (en md5 ou sha1), ce 
qui permettra de générer un nom de table d'une taille fixe (32 chars si je me 
souviens bien)
et ainsi éviter ce problème de nom trop long.

Je joins un patch que les développeurs peuvent intégrer

Mathieu

------------
Bonsoir,

Le 22/01/2015 19:14, dominique fougerit a écrit :
Avec les aid, lors de la saisie des appréciations les utilisateurs ont le
message "ERREUR : la création d'une table temporaire a échoué", placé en PJ
Quelqu'un a dit déjà eu ce problème? et la correction éventuelle?
PS cela arrive sur des gepis hébergés sur l'ENT envole.

L'utilisateur mysql déclaré dans
        secure/connect.inc.php
ne doit pas avoir le droit de créer des tables temporaires dans la base.

Je ne sais pas quels sont les droits minimum à accorder sur la base Gepi
à l'utilisateur mysql.
Généralement, je fais
        grant all privileges on BASE_GEPI.* to USER_GEPI@localhost;
        flush privileges;


Cordialement
--
Stephane Boireau
Collège Le Hameau - Bernay (27)
http://stephane.boireau.free.fr/gadgets/crobards.html

--- saisie/saisie_aid.php	2015-01-23 13:46:17.450615476 +0100
+++ saisie/saisie_aid.old.php	2015-01-23 13:45:20.450572990 +0100
@@ -68,7 +68,7 @@
 
 
 
-$nom_table = "class_temp".SESSION_ID();
+$nom_table = md5("class_temp".SESSION_ID());
 
 if (isset($_POST['is_posted'])) {
 	check_token();

<<attachment: mathieu_terroba.vcf>>

_________________________________________________________________________________
Documentation Gepi en ligne : http://www.sylogix.org/projects/gepi/wiki
Pour modifier ou résilier votre abonnement à cette liste :
https://lists.sylogix.net/mailman/listinfo/gepi-users

Répondre à