Fork me on GitHub






Test avant chargement de fichier
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
Sur les chargements de fichiers si vous utilisez protector, et cela avec n'importe quel module, protector interdit les noms contenants plusieurs '.'
C un principe de securite assez basique (cela evite les extensions bizarre, les .. a la suite etc...)

Le hic, c'est que protector ne retourne pas de message d'erreur ni rien d'autre lorsqu'il rencontre ce pb. Cela nous donne un belle page blanche.

J'aurais pu herite de la classe formfile mais bon ca me faisait pas mal de retouche a faire, donc j'ai modifie la classe formfile de base en y rajoutant une methode
function renderValidationJS() {
        
$name $this->getName();
        
$js "assertion = myform.{$name}.value;n" ;
         
$js .= "resultat = assertion.match(/b.b/g);n";
         
$js .=    "if(resultat) { n";
        
$js .=  "tif ( resultat.length > 1 ) {n" .
"ttmyform.{$name}.focus();nttwindow.alert( 'Le champ $name est invalide. Un nom de fichier ne doit pas contenir plusieurs "." ' );nttreturn false;nt}n}";
        return 
$js;                
    }


Bon le message d'alerte peut etre mis en define etc... mais bon ca me suffisait amplement la

En gros maintenant lorsque j'utilise sur n'importe quel module xoopsformfile, il y aura une verification de faite en javascript sur le fait que le nom de fichier possede plusieurs ., s'il en a plusieurs, il envoi un petit message d'erreur a l'utilisateur.

Posté le : 25/06/2007 19:58
Partager Twitter Partagez cette article sur GG+
Re: Test avant chargement de fichier
Guest_
Et une page blanche en moins, une !

Merci

Posté le : 25/06/2007 20:32
Partager Twitter Partagez cette article sur GG+
Re: Test avant chargement de fichier
Admin Frxoops
Inscrit: 04/02/2003 16:46
De Blois
Messages: 3071
Merci pour cette contribution

Posté le : 26/06/2007 07:13
Partager Twitter Partagez cette article sur GG+
Re: Test avant chargement de fichier
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
bon je me suis dit que ca pourrait etre utile a plus de monde qu'a nous donc j'ai refait la meme chose mais en mettant le texte en define (et pis j'avais 5 min...)

Dans le fichier language/french/global.php
//%%%%%        File Name class/xoopsform/formfile.php         %%%%%
define('_JUSTONEPOINT''Le champ %s est invalide. Un nom de fichier ne doit pas contenir plusieurs "." ');


Le code de la methode devient:
function renderValidationJS() {
        
$name $this->getName();
        
$js "assertion = myform.{$name}.value;n" ;
         
$js .= "resultat = assertion.match(/b.b/g);n";
         
$js .=    "if(resultat) { n";
        
$js .=  "tif ( resultat.length > 1 ) {n" ."ttmyform.{$name}.focus();nttwindow.alert( '".sprintf(_JUSTONEPOINT$name)."');nttreturn false;nt}n}";
        return 
$js;                
    }

Posté le : 27/06/2007 01:05
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

99 Personne(s) en ligne (82 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 99 | Plus ...