Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Da texarea a database.. andare a capo

    Ho letto decine di discussioni sul 'replace' ma ci ho capito poco, sono un dilettante

    Ho questa pagina asp per l'inserimento di commenti:

    codice:
    <%
    Commenti("test/commenti")
    %>
    <%
    
    Sub Commenti(pagina)
    
    	strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("mdb-database/commenti.mdb")
    	set conn = Server.CreateObject("ADODB.Connection")
    	conn.Open strConn
    
    	'Inserimento nuovo commento
    	If Len(Request.Form("nome"))>3 and Len(Request.Form("commento"))>5 then
    		conn.Execute "INSERT INTO commenti (nome, commento, pagina, IP) VALUES (" & _
    				"'" & Replace(Request.Form("nome"), "'", "''") & "', " & _
    				"'" & Replace(Request.Form("commento"), "'", "''") & "', " & _
    				"'" & Replace(Request.Form("pagina"), "'", "''") & "', " & _
    				"'" & Request.ServerVariables("REMOTE_ADDR") & "')"
    			end if
    	
    	' estrai record
    	set rs = Conn.Execute("SELECT nome, commento FROM commenti WHERE Pagina = '" & Replace(pagina, "'", "''") & "'")
    
    	' non ci sono record
    	if rs.Eof then Response.Write("<p style='font-family: Meiryo, Arial; font-size: 13px; color: #666666'>Scrivi un commento a questo articolo</p>")
    
    
    	' ciclo su tutti i record
    	do until rs.eof
    Response.Write("<table class='tb_menu_c'><tr><td class='td_menu_c1'>Autore</td><td class='td_menu_c2'>" & Server.HtmlEncode(rs("nome")) & "</td></tr><td class='td_menu_c1' valign='top'>Post</td><td class='td_menu_c4'>")
    Response.Write(Server.HtmlEncode(rs("commento")) & "
    </td></tr><tr><td></td></tr></table>")
    rs.moveNext
    loop
    %>
    
    <p style="font-family: Meiryo; font-size: 13px; color: #444444;">Scrivi un commento</p>
    
    <form method="post" id="formcommenti">
    <input type="hidden" name="pagina" value="<%=pagina%>">
    Nome o nickname:
    <input type="text" name="nome" id="inputxt">
    
    Commento:
    <textarea name="commento" rows="5" id="areatxt"></textarea>
    <input type="submit" value="Invia" id="pulsante">
    </form>
     
    
    <%
    	conn.Close
    	set conn = Nothing
    
    End Sub
    
    %>
    Dove devo inserire il replace per visualizzare gli a capo inseriti nel campo commento?

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    io di solito il replace lo faccio in fase di scrittura nel db.

    stringa = replace(stringa, vbcrlf, "
    ")

    e poi faccio la insert
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non conviene sporcare la base dati...
    Fa il replace SOLO quando devi stampare a video ciò che è contenuto nel db:

    codice:
    stringa = rs("campo")
    stringa = replace(stringa, vbcrlf, "
    ")
    response.write (stringa)
    Roby

  4. #4
    Ma 'stringa' equivale a?

    Ho provato

    codice:
    Response.Write(Server.HtmlEncode(rs("commento, vbcrlf, '
    '"))
    ma nn va

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi solo copiare...
    stringa è il contenuto del campo del db.

    Roby

  6. #6
    Copiare dove ? :master:

    gli altri script che utilizzo stampano a monitor il contenuto del campo utilizzando
    codice:
    <%= replace(x_SmallNotes & "",chr(10),"
    ") %>
    quindi nessun problema ma in questo c'è l'htmlencode

    il fatto è che nn conosco il linguaggio asp

  7. #7
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    codice:
    Response.Write(Server.HtmlEncode(rs("commento")) & "
    </td></tr><tr><td> </td></tr></table>")
    da sostituire con

    codice:
    dim STRcommento
    STRcommento = rs("commento")
    STRcommento = replace(STRcommento, vbcrlf, "
    ")
    
    Response.Write(STRcommento)
    response.write("
    </td></tr><tr><td> </td></tr></table>")
    provalo.
    se funziona cerca di capirlo e poi passa al prossimo problema!
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  8. #8
    Oook, va, vedo il testo andare a capo.
    Grazie per la pazienza
    alla prossima

  9. #9
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371
    io il replace lo faccio prima, che tipo di errori potrebbe generare questo "sporcare" il campo del db?

    sono un nabbo, sorpattutto su queste finezze

  10. #10
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Originariamente inviato da StegcO
    io il replace lo faccio prima, che tipo di errori potrebbe generare questo "sporcare" il campo del db?

    sono un nabbo, sorpattutto su queste finezze
    Per esempio se devi modificare il testo rimettendolo in una textarea devi rifare il replace da "
    " a vbcrlf...... altrimenti visualizza i
    nella textarea
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

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.