• User

    Mod Rewrite in puro asp senza componenti per aruba

    Sono un programmatore e volevo condividere una porzione di codice utile per tutti quelli che utilizzano spazi web non gestibili da server tipo aruba e altri.

    Volevo condividere il codice che nello specifico fà questo:

    effettua una chiamata tramite XMLHTTP, se tutto va bene e la pagina restituisce lo stato 200 immagazzina il contenuto in una variabile (per contenuto intendo il codice html nella sua totalità) e crea fisicamente un file html.

    Per fare questo ho creato due funzioni che lavorano tra loro, quindi facilmente utilizzabili. Per la creazione del file in principio avevo utilizzato il componete fso, ma ho dovuto sostituirlo con ADODB.Stream, visto che il primo era poco perfommante e tra la chiamata con la prima funzione e la seconda non riusciva a memorizzare la variabile.

    [html]<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" -->
    <%
    call SaveFile("/ewe.htm",geturl("qui và la pagina da richiamare"))

    Function GetUrl(Url)
    Dim Http
    Set Http = Server.CreateObject("Microsoft.XMLHTTP")
    Http.open "GET",Url,False
    Http.Send()
    GetUrl = Http.ResponseText
    Set Http=Nothing
    End Function

    Function SaveFile(PathFile,Content)

    Set oStream = Server.CreateObject("ADODB.Stream") 
    oStream.Open 
    oStream.Charset = "ascii" 
    oStream.Type = adTypeText 
    oStream.WriteText Content
    oStream.SaveToFile Server.MapPath("/public"&PathFile) , adSaveCreateOverWrite 
    oStream.Close 
    set oStream = Nothing 
    

    End Function
    %>[/html]Mi sono deciso a scrivere anche io dopo aver letto il libro di Giorgio e anche quello di Carta. Complimenti per l'ottimo lavoro e spero di poter essere utile a questa grande comunità.:smile5:


  • Super User

    Ciao moican, grazie per il contributo!

    Una domanda: ma hai previsto di chiamare SaveFile(-) "a mano" o hai cercato di automatizzare il tutto?


  • User

    Grazie a voi,

    io queste due funzioni le uso agganciandole ad eventuali variabili prese da db es.

    mettendo queste funzioni in una eventuale pagina che processa i dati per l'inserimento in un db prelevo il nome del pulsante creato e lo metto al posto (qui record&".htm").

    per richiamare tale funzione o si usa:

    <%
    call SaveFile("/ewe.htm",geturl("qui và la pagina da richiamare"))
    %>
    oppure
    <%=geturl("qui và la pagina da richiamare")%>

    il tutto avviene in autoamtico.

    Un mio scenario classico è creazione di pulsante es. Hotel a Cattolica

    funzione che converte e bonifica il nome, sostituendo spazi e carateri speciali e con il nome del pulsante creazione fisica della pagina cioè:

    public/Hotel-a-Cattolica.htm

    se necessita vi posto anche la terza funzione che automatizza la creazione del nome della pagina


  • User

    Non sarebbe male! Posta posta


  • User

    Le altre due funzioni sono queste:

    <%
     Function NoHTML(Stringa)
      Set RegEx = New RegExp
      RegEx.Pattern = "<[^>]*>"
      RegEx.Global = True
      RegEx.IgnoreCase = True
      NoHTML = RegEx.Replace(Stringa, "")
     End Function
     Function unisci(testo, id)
      Risultato = testo
      Risultato = NoHTML(Risultato)
      Risultato = LCase(Risultato)
      Risultato = Replace(Risultato, " ", "-")
      Risultato = Replace(Risultato, "\", "-")
      Risultato = Replace(Risultato, "/", "-")
      Risultato = Replace(Risultato, ":", "-")
      Risultato = Replace(Risultato, "*", "-")
      Risultato = Replace(Risultato, "?", "-")
      Risultato = Replace(Risultato, "<", "-")
      Risultato = Replace(Risultato, ">", "-")
      Risultato = Replace(Risultato, "|", "-")
      Risultato = Replace(Risultato, """", "")
      Risultato = Replace(Risultato, "'", "-")
      Risultato = id & "-" & Risultato & ".asp"
      unisci = Risultato 
     End Function%>
    

    Le ho fatte seguendo la logica degli url che usa anche questo forum.

    Spero possano essere utili,

    Ciao Max


  • User

    Ciao, la discussione è un po' vecchia ma mi interessa.

    Scusa non capisco come riesci a fare un url rewrite, il codice che hai postato è chiaro, però se fai un pulsante che punta ad una pagina (tu fai l'esempio di Hotel-a-cattolica.htm) questa deve già esistere sul server e non può essere generata "al volo". Quindi, correggimi se sbaglio, le suddette pagine le crei prima tramite uno script automatizzato che legge parametri da un db e utilizza le funzioni che hai postato, giusto?

    Insomma se ho capito bene è un sistema più per creare mappe del sito piuttosto che un rewrite vero e proprio.

    Ciao e grazie.


  • User

    Ho letto solo ora (scusate),

    il mio codice crea la pagina fisicamente non bisogna metterle manualmente ecc... Non crea mappe ma decidi tu: htm html txt ecc...