Newsgroup: it.comp.www.asp
Titolo: HELP Errore Invalid Path Character

Ciao a tutti,
qualcuno mi sa spiegare perche' questo codice sul mio computer NT4 + PWS 4
funziona correttamente e invece quando lo pubblico sul mio server nella
cartella news mi da questo errore ?
Server.MapPath() error 'ASP 0173 : 80004005'
Invalid Path Character
/news/news.asp, line 42
An invalid character was specified in the Path parameter for the MapPath
method.
CODICE :
<%
u_file=trim(request.querystring("u_file"))
if u_file = "" then
' Get the top level directory info
dir_info = request.servervariables("appl_physical_path")
' Get the rest of the directory info without the first /
dir_info = dir_info +
right(request.servervariables("script_name"),(len(request.servervariables("s
cript_name"))-1))
' Split the directory info by /
g_input=split(dir_info,"/")
' Count the number of splits
num_inputted=ubound(g_input)-1
set directory=server.createobject("scripting.filesystemobject")
set
allfiles=directory.getfolder(server.mappath("../"&g_input(num_inputted)))
' Lists all the files found in the directory
For each directoryfile in allFiles.files
' Removes ASP pages from view
if (right(
directoryfile.name
,3)) <> "asp" then
set fso = createobject("scripting.filesystemobject")
set act = fso.opentextfile(server.mappath(
directoryfile.name
))
read_text = act.readline
act.close
%> <br>
  <img src="../foto/gif/freccia_ar.gif" width="10" height="9"><a href=<%
' Write out the name of the page
response.write request.servervariables("script_name") %>?u_file=<%
' Write out the name of the document
response.write server.urlencode(
directoryfile.name
) %>> <%
' Write out the first line of the document
response.write server.htmlencode(read_text) %></a><br>
  &nbsp;&nbsp; <%
'End check for any pge other than ASP
end if
' End for next loop to list documents
next
' End check for querstring input
else
set fso = createobject("scripting.filesystemobject")
' Check to see if the file in the querystring exists
' (This prevents user input in the address bar from causing errors)
if fso.FileExists (server.mappath(u_file)) then
' Open the file and read it
set act = fso.opentextfile(server.mappath(u_file))
read_text = act.readall
act.close
' Write the contents of the document ot the browser
Response.Write "<pre>" & server.htmlencode(read_text) & "</pre>"
' If the file in the querystring does not exist
' Display and eror message
else
%> <br>
  <br>
  <font size="2" face="Verdana, Arial, Helvetica, sans-serif">E' avvenuto un
errore
  nella visualizzazione della pagina.</font><br>
  <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Go <a href=<%=
request.servervariables("script_name")%>>back</a></font>
  <%
' End check for file existence
end if
' End check for querystring value
end if
%>
Se lo tolgo dalla cartella news e lo copio nella root da questo errore:
Microsoft VBScript runtime error '800a0009'
Subscript out of range: '-1'
/news.asp, line 42
Grazie
Ivan

Intanto, nel codice manca
Option Explicit
quale prima riga,
se lo metti ricordati poi di dichiarare tutte le variabili presenti nel
codice.
set
allfiles=directory.getfolder(server.mappath("../"&g_input(num_inputted)))
riga 21
controlla bene quel percorso, e, per amor di pulizia: usa una variabile
invece di assemblare la per la
dim miavar
miavar =  "../"&g_input(num_inputted)
set allfiles=directory.getfolder(server.mappath(miavar))
e' piu' pulito, non trovi?
Per controllare bene il percorso, io intendo:
1) hai i permessi necessari?
2) Esiste?
3) Sei sicuro che la sintassi sia corretta?
    per scoprirlo tu prova a fare
response.write "<b>"&miavar&"</b><br>" prima dell'istruzione set. Cosi' vedi
in quale cartella il programma va  a cercare e a fare l'elenco.
'guri.
Nettuno