Newsgroup: it.comp.www.asp
Titolo: Problema querystring

Salve a tutti, ho un problema mai incontrato (colpa della mia poca
esperienza) fino ad ora.
Ho una pagina asp che viene generata a seconda di una querystring passata.
http://www.miosito.com/dir/home.asp?p=foto/photoalbum.asp
per fare questo ho usato
<%Server.Execute(Request.QueryString("p"))%>
come al solito.
Il mio problema è che ora la pagina in questione (photoalbum.asp)
deve prendere dei parametri:
http://www.miosito.com/dir/home.asp?p=foto/photoalbum.asp?Page=2&ShowSub=prova1
che mi restituisce un errore del tipo
Server object error 'ASP 0173 : 80004005'
Invalid Path Character
/tana2/home.asp, line 130
An invalid character was specified in the Path parameter for the MapPath 
method
Se però testo le pagine da sola
http://www.miosito.com/dir/foto/photoalbum.asp?Page=2&ShowSub=prova1
essa funziona correttamente.
Cosa potrebbe essere?
Grazie Giò

 
http://www.miosito.com/dir/home.asp?p=foto/photoalbum.asp?Page=2&ShowSub=prova1
é un "problema" noto da sempre, se cercavi con google avresti trovato
risposta immediata:
 
http://makeashorterlink.com/?O255222CB
Già la prima che vedi è esaustiva: 
 
http://www.aspfaq.com/show.asp?id=2030
Togli semplicemente la querystring dal path, la pagina chiamata può leggere
querystring (e così quantomeno fai qualche verifica, quel
Server.Execute(qualsiasiCosaGliArrivaComeParametroP) fa una paura,
quantomeno non reclamizzarlo troppo...al primo bug ti spareranno un bel
Server.Execute("cmd \k:format c:")...)
-- 
"Voi abili a tenere sempre un piede qua e uno là
 avrete un avvenire certo in questo mondo qua
 però la dignità
 dove l'avete persa?"
									    V.R.

 
Perchè non usi Response.Redirect, invece di Server.Execute?
Mi pare di capire che tu voglia far passare alla pagina che arriva come 
parametro, quindi Response.Redirect fa quello che vuoi e non ci 
dovrebbero essere problemi di caratteri. Invece Server.Execute, se non 
sbaglio serve per eseguire programmi sul computer, perciò il carattere 
"&" non gli piace!
-- 
Stefano
--------------------
www.thepisu.tk
www.experiencenet.it

 
Secondo me nn avete capito bene la domanda, io devo includere 
dinamicamente una pagina in una cella di una tabella (quindi questa 
pagina deve essere un parametro di paginachecontienelatabella.asp) e a 
volte capita che questa pagina inclusa abbia dei parametri...

 volte capita che questa pagina inclusa abbia dei parametri...
Non puoi usare gli IFRAME?

> 
http://www.miosito.com/dir/home.asp?p=foto/photoalbum.asp?Page=2&ShowSub=prova1
ho letto molto velocemente il tuo post...pero' c'e' un errore che salta 
subito all'occhio, e cioe'
l'utilizzo di due punti interrogativi....
come prima cosa prova, cambia il punto interrogativo con la "&";
(la stringa sara' quindi 
http://www.miosito.com/dir/home.asp?p=foto/photoalbum.asp&Page=2&ShowSub=prova1
)
quando fai la chiamata al file request.querystring("p") con il 
server.execute, i valori (page, showsub...) dovrebbero essere
passati automaticamente alla seconda pagina che richiami.
se non va, prova allora a fare:
<%
page = Request.QueryString("p")
datas= "?page=" & request.querystring("page") & "&showSub=" & 
request.querystring("showsub")
Server.Execute(page & datas)
%>
in questo modo passi tutti i valori alla tua pagina (home.asp) e ti 
ricostruisci poi la chiamata al file photoalbum.asp
con tutti i valori.
facci sapere...
ciaps :P 

ho dato un'occhiata ad alcuni script che ho
basta che tu sostituisca il secondo punto interrogativo con un "&"
poi la seconda pagina che richiami con il request.querystring("p"), 
automaticamente
si trovera' le variabili gia' definite e possono essere richiamate tramite 
il request.querystring
(quindi senza costringerti a cambiare nulla nel codice)
ciau