Ciao a tutti,

mi trovo davanti ad un progettino, cioè la creazione di una specie di modulo rewrite sull'url.

Funzionamento:

Passo le variabili da un form ad una pagina asp che li elabora, tramite una Regula Expression sostituisco gli spazi con un carattere, creo una pagina .asp contenente una query che mi permette di visualizzare il contenuto di quella news, una volta cliccato sul link inerente alla news scelta visualizzo le informazioni della news selezionata.

form.asp

Codice PHP:
<form action="aggiungi.asp" method="POST">
    
    
TITOLO <input name="titolo" type="text">


    
    
CONTENUTO <textarea name="contenuto" cols="" rows=""></textarea>


    
    
PAGINA <input type="text" name="link_news">


    
    <
input name="ok" type="submit" value="OK">

</
form
Niente di speciale, il form trasmette i dati alla pagina aggiungi.asp, il campo che andrà a comporre il link sarà link_news

aggiungi.asp

Codice PHP:

<%
dim TitoloContenutoDataPagina

Titolo 
Replace(Request.Form("titolo"),"'""''")

Contenuto Replace(Request.Form("contenuto"),"'""''")

Pagina Replace(Request.Form("link_news"),"'""''")

Data date()


Function 
NoHTML(Stringa)
  
Set RegEx = New RegExp
  RegEx
.Pattern "<[^>]*>"
  
RegEx.Global = True
  RegEx
.IgnoreCase True
  NoHTML 
RegEx.Replace(Stringa"")
End Function

Function 
ConvertiTitoloInNomeScript(Pagina)
  
Pagina Pagina
  Pagina 
NoHTML(Pagina)
  
Pagina LCase(Pagina)
  
Pagina Replace(Pagina" ""-")
  
Pagina Replace(Pagina"\", "-")
  Pagina = Replace(Pagina, "
/", "-")
  Pagina = Replace(Pagina, "
:", "-")
  Pagina = Replace(Pagina, "
*", "-")
  Pagina = Replace(Pagina, "
?", "-")
  Pagina = Replace(Pagina, "
<", "-")
  Pagina = Replace(Pagina, "
>", "-")
  Pagina = Replace(Pagina, "
|", "-")
  Pagina = Replace(Pagina, """", "")
  Pagina = Replace(Pagina, "'", "-")
  Pagina = Pagina &  ".asp"
  ConvertiTitoloInNomeScript = Pagina
End Function


Set FSO = CreateObject("Scripting.FileSystemObject")
Set Documento = FSO.OpenTextFile(Server.MapPath("../partito/news/") & "\" & ConvertiTitoloInNomeScript(Pagina), 2, True)
 
ContenutoFile = "" 
ContenutoFile = ContenutoFile & "<" & "%" & vbCrLf 
ContenutoFile = ContenutoFile & "dim link_news" & vbCrLf
ContenutoFile = ContenutoFile & "link_news = "" "&Pagina&" "" "
ContenutoFile = ContenutoFile & "%" & ">" & vbCrLf 
ContenutoFile = ContenutoFile & "  "
Documento.Write ContenutoFile 
 

sql_insert = "INSERT INTO informazioni (titolo, contenuto, data_invio, link_news) values"&_
"('"&Titolo&" ',' "&Contenuto&" ',' "&Data&" ',' "&Pagina&"')" 

Set rs = Server.CreateObject("ADODB.Recordset")

conn.execute(sql_insert)

Set FSO = nothing 
conn.close
set rs= nothing
Set conn=Nothing

%> 
Questa pagina elabora i dati passati dal form, tramite una regular expression elabora la variabile link_news eseguendo un replace sugli spazi sostituendoli con il carattere "-". Infine crea un file con estensione .asp, inserendo all'interno un include e la dichiarazione della variabile link_news

inc_pagina.asp

Codice PHP:


<html>
<
head>
    <
title></title>
</
head>

<
body>
<%

sql "SELECT * FROM news WHERE link_news='" &Pagina"'"
Set RS Server.CreateObject("ADODB.Recordset")
rs.Open SQLConn33
    

%>
    [
b]<%=rs("titolo")%>[/b]

</
body>
<%


set RS nothing
conn
.Close
set conn 
Nothing
%>
</
html
In sostanza ecco il risultato

1. Passo i dati dal form alla pagina aggiungi.asp, inserisco nel db i parametri passati
(FUNZIONA)

2. Tramite la regular expression elaboro la variabile link_news sostituendo gli spazi con il carattere "-"
(FUNZIONA)

3. Creo il file .asp inserendo nel contenuto la dichiarazione della variabile link_news e il file include inc_pagina.asp
(Funziona)

4. Estraggo il contenuto del db nella homepage, inserisco un link Leggi contenente l'URL link_news
(FUNZIONA)

Il problema sta nella visualizzazione della singola news, cioè quando clicco sulla news "titolo-della-news.asp" dovrei vedere tutte le informazioni inerenti al record "titolo-della-news.asp". Ma con la query postata (nella pagina inc_pagina.asp) visualizzo una pagina bianca.

Procedo a postare la pagina titolo-della-news.asp

titolo-della-news.asp
Codice PHP:
<%
dim link_news
link_news 
" titolo-della-news.asp " 
%> 
Dove sbaglio