Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    156

    piccolo problema sul Replace

    ciao ragazzi,

    sto realizzando un pannello di gestione per l'inserimento di contenuti in un sito, ho ereditato una struttura già realizzata che funziona abbastanza bene ma mi da un piccolo prblema sul replace degli apici:

    quando inserisco un testo con apostrofi mi capita che l'apice viene sostituito dal doppio apice mentre poi se modifico il testo dopo averlo inserito si prende tranquillamente l'apice singolo.

    la funzione che fa i replace è questa:

    codice:
    public function FixData(campo,tipocampo,obbligatorio,lunghezzamassima)
    	if obbligatorio = 1 then
    		if campo = "" then response.redirect("error.asp")
    	end if
    	if lunghezzamassima <> "" and len(campo) > lunghezzamassima then response.redirect("error.asp")	
    	if campo <> "" then
    		select case tipocampo
    			Case 1 'testo semplice
    				FixData = Replace(campo,"'","''")
    			Case 2 'codice fiscale
    				FixData = Replace(campo,"'","''")
    			Case 3 'numero
    				FixData = Replace(campo,"'","''")
    			Case 4 'email
    				FixData = Replace(campo,"'","''")
    			Case 5 'data
    				FixData = Replace(campo,"'","''")
    			Case 6 'id numerico > 0
    				FixData = Replace(campo,"'","''")		
    		end select
    	end if
    	if campo = "" and obbligatorio = 0 then FixData = ""
    end function
    mentre la pagina di inserimento dei dati nel database è questa:

    codice:
    %
    Set SmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
    SmartUpload.Upload
    
    id_news = FixData(SmartUpload.Form.Item("id_news"),6,0,6)
    news_data = FixData(SmartUpload.Form.Item("news_data"),1,0,255)
    news_titolo = FixData(SmartUpload.Form.Item("news_titolo"),1,0,255)
    news_txt = FixData(SmartUpload.Form.Item("news_txt"),1,0,1000000000)
    
    ApriConnessione
    if id_news = "" then
    	Set rs = Server.CreateObject("ADODB.Recordset")
    	rs.Open "news", Conn, 3, 3
    	rs.addnew
    	rs("news_data") = news_data
    	rs("news_titolo") = news_titolo
    	id_news_new = rs("id_news")	
    
    	If SmartUpload.Files("news_all").Size > 0 Then
    		SmartUpload.Files("news_all").saveas "/all_news/" & id_news_new & "." & SmartUpload.Files("news_all").FileExt
    		news_all = id_news_new & "." & SmartUpload.Files("news_all").FileExt
    	End If
    
    	If SmartUpload.Files("news_img").Size > 0 Then
    		SmartUpload.Files("news_img").saveas "/all_news/" & id_news_new & "_img." & SmartUpload.Files("news_img").FileExt
    		news_img = id_news_new & "_img." & SmartUpload.Files("news_img").FileExt
    	End If
    	
    	rs.update
    	rs.movelast
    	id_news_new = rs("id_news")
    	rs.Close
    	set rs = Nothing
    
    	If SmartUpload.Files("news_all").Size > 0 Then
    		SmartUpload.Files("news_all").saveas "/all_news/" & id_news_new & "." & SmartUpload.Files("news_all").FileExt
    		news_all = id_news_new & "." & SmartUpload.Files("news_all").FileExt
    	End If
    	If SmartUpload.Files("news_img").Size > 0 Then
    		SmartUpload.Files("news_img").saveas "/all_news/" & id_news_new & "_img." & SmartUpload.Files("news_img").FileExt
    		news_img = id_news_new & "_img." & SmartUpload.Files("news_img").FileExt
    	End If
    
    	if SmartUpload.Files("news_all").Size > 0 then
    		strsql = "UPDATE news SET "
    		if news_all <> "" then strsql = strsql & "news_all = '" & news_all & "', "
    		strsql = left(strsql, len(strsql) - 2)
    		strsql = strsql & " WHERE id_news = " & id_news_new
    		Conn.Execute(strsql)
    	End if
    	
    	if SmartUpload.Files("news_img").Size > 0 then
    		strsql = "UPDATE news SET "
    		if news_img <> "" then strsql = strsql & "news_img = '" & news_img & "', "
    		strsql = left(strsql, len(strsql) - 2)
    		strsql = strsql & " WHERE id_news = " & id_news_new
    		Conn.Execute(strsql)
    	End if
    
    else
    	strsql = "UPDATE news SET news_data = '" & news_data & "', news_titolo = '" & news_titolo & "', news_txt = '" & news_txt & "' WHERE id_news = " & id_news
    	Conn.Execute(strsql)
    	
    	
    	If SmartUpload.Files("news_all").Size > 0 Then
    		SmartUpload.Files("news_all").saveas "/all_news/" & id_news & "." & SmartUpload.Files("news_all").FileExt
    		news_all = id_news & "." & SmartUpload.Files("news_all").FileExt
    	End If
    	If SmartUpload.Files("news_img").Size > 0 Then
    		SmartUpload.Files("news_img").saveas "/all_news/" & id_news & "_img." & SmartUpload.Files("news_img").FileExt
    		news_img = id_news & "_img." & SmartUpload.Files("news_img").FileExt
    	End If
    	
    	if SmartUpload.Files("news_all").Size > 0 then
    		strsql = "UPDATE news SET "
    		if news_all <> "" then strsql = strsql & "news_all = '" & news_all & "', "
    		strsql = left(strsql, len(strsql) - 2)
    		strsql = strsql & " WHERE id_news = " & id_news
    		Conn.Execute(strsql)
    	End if
    	if SmartUpload.Files("news_img").Size > 0 then
    		strsql = "UPDATE news SET "
    		if news_img <> "" then strsql = strsql & "news_img = '" & news_img & "', "
    		strsql = left(strsql, len(strsql) - 2)
    		strsql = strsql & " WHERE id_news = " & id_news
    		Conn.Execute(strsql)
    	End if
    	
    end if
    ChiudiConnessione
    
    if id_news = "" then
    	response.redirect ("news.asp")
    else
    	response.redirect ("news.asp?Funzione=VisualizzaNews&id_news=" & id_news)
    end if
    
    %>

    qualcuno riesce a capire dove sta l'errore?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    156

    Risolta una parte

    sono riuscito a risolvere il prblema degli apici:

    codice:
    FixData = Replace(campo,"'","&#39")
    solo che vorrei inserire un doppio replace in quanto vorrei che il valore del testo a capo "vbCr" venga sostituito da "
    " oppure "chr(13)".

    cope faccio ad aggiungere il nuovo replace nella stringa di prima?

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Lo devi fare in fase di visualizzazione non nel db.....
    codice:
    response.write(replace(test,VbCrLf,"
    "))
    Roby

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.