webForumDet fria alternativet
Logga in / Bli medlem

Validering?

JavaScript

5 svar · 276 visningar · startad av Quid

Medlem sedan juni 20006 022 inlägg
Trådstart#1

Jag har gjort ett script i asp som laddar upp filer till servern via asp-upload. Men jag vill förhindra uppladdning av .asp och .php filer.

Så det jag egentligen vill göra att kolla om fälten (3 st) i mitt formulär har .asp eller .php på slutet och isåfall skriva typ "Ajabaja" osso får man göra om.

Hur löser man detta med ett javascript?

Medlem sedan juni 20004 308 inlägg
#2

Om vi tänker oss att du i formuläret har en onSubmit="return checkForm(this);"

Så kan du i functionen checkForm(obj) använda;

if(obj.foo.value.toLowerCase().substring(obj.foo.value.length-4,obj.foo.value.length) == '.asp' || obj.foo.value.toLowerCase().substring(obj.foo.value.length-4,obj.foo.value.length) == '.php'){
alert('Inga ASP eller PHP filer tack');
return false;
} else if ... osv.

Medlem sedan juni 20006 022 inlägg
#3

Tack så mycket...

om jag vill kolla om filerna har mellanslag i namnet då? Hur går jag tillväga då?

------------------
Quid - Quake Nexus

Medlem sedan juni 20004 308 inlägg
#4

Filnamnet har du i obj.foo.value, således;

if(obj.foo.value.indexOf(' ')>-1){

}
Medlem sedan juni 20014 421 inlägg
#5

Är det inte smartare att köra en serverside på den?.....då kan man använda metoden LIKE och då får man ju bort alla som heter något med *.php eller *.asp
Då kan man ju även ladda upp dessa i en mapp utan körningsrättigheter om du vill kolla på innehållet......då får man ju även kanske lite fri kod ;)

för det finns ju även fler liknande filer men kan ladda upp:

  • *.aspx
  • *.php3
  • *.pl
  • *.cgi
  • *.shtml
  • *.cfm
  • *.jsp

för at nämna några

Medlem sedan juni 20008 205 inlägg
#6

Ja, att köra en serversidekoll är direkt nödvändigt, eftersom man annars bara behöver stänga av javascript för att sabba allt. Men visst är klientsidevalidering nice.
En något mer kortfattad variant av Jojoxx script:

var exts = /\.(asp|php)$/i;
if (exts.test( obj.foo.value )){
// slutar med .asp eller .php, case insensitive
} else {
// allt är OK
}
257 ms totalt · 4 externa anrop · v20260731065814-full.c32e866c
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)