Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 41

Discussione: Replace: non funziona

  1. #1

    Replace: non funziona

    Salve,

    ho questo script che dovrebbe convertire i simboli strani in formato compatibile per insere i dati in un db.

    tutto parte da un pulsante posizionato in un'altra pagina
    nella pagina dedicata all'inserimento nel db c'è:
    codice:
      dim azienda, articolo, prezzo
    
      prezzo=replace(request.QueryString("prezzo"),"'","''")
      azienda=replace(request.QueryString("azienda"),"'","''")
        rticolo=replace(request.QueryString("articolo"),"'","''")
    ......
    ... e questo non capisco perchè non funziona

    poi ho un altro dubbio: se ho le virgolette che sono presenti in diverse descrizioni, come faccio ad inserirle nella stessa riga utilizzando sempre replace?

    In altre parole, voglio la conversione sia degli apici che delle virgolette.
    Grazie
    Pochi sanno, molti presumono di sapere.

  2. #2
    Il replace di sopra mi sembra OK, dovresti chiarire meglio che intendi per "non funziona".

    Per il replace delle virgolette (mi pare di capire le doppie virgolette, correggimi se sbaglio), basta fare qualcosa i questo tipo:

    codice:
    variabile = replace(variabile, """", "& q u o t ;")
    P.S.: -->& q u o t ;<-- senza spazi nel codice, mi raccomando.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  3. #3
    Per il replace delle virgolette ti ringrazio poichè non conoscevo quel "quote".

    Ma per la prima parte intendo "NON FUNZIONA" quando clicco sull primo script posizionato in un'altra pagina, mi dà sulla barra del browser (IE) "errore di visualizzazione..." e non mi aggiunge il record nel db(e quindi non esegue il comando java di apertura pagina).

    Da quì ho ipotizzato un problema sulle virgolette e quant'altro, ma guarda caso il problema sta su tutti i nomi contenenti l'apice o le virgolette...
    I campi del DB sono impostati come testo per evitare blocchi strani.

    Ho provato a visualizzare i parametri che passo, ma non apre la finestra di visualizzazione..... rimane fermo.

    Poi Maximun, come posso integrare il tuo script con il replace? Va bene se faccio due righe con due replace?

    e poi ... forse il replace va nella prima pagina?

    Grazie 1000
    Pochi sanno, molti presumono di sapere.

  4. #4
    Originariamente inviato da Rob2002
    Ma per la prima parte intendo "NON FUNZIONA" quando clicco sull primo script posizionato in un'altra pagina, mi dà sulla barra del browser (IE) "errore di visualizzazione..." e non mi aggiunge il record nel db(e quindi non esegue il comando java di apertura pagina).

    Da quì ho ipotizzato un problema sulle virgolette e quant'altro, ma guarda caso il problema sta su tutti i nomi contenenti l'apice o le virgolette...
    I campi del DB sono impostati come testo per evitare blocchi strani.
    Posta qua il collegamento (il link che viene generato dal browser), quando passi sul link che dovrebbe aprire la pagina.

    Originariamente inviato da Rob2002
    Poi Maximun, come posso integrare il tuo script con il replace? Va bene se faccio due righe con due replace?

    e poi ... forse il replace va nella prima pagina?

    Grazie 1000
    Riguardo la prima domanda puoi fare un'unica riga con tanti replace quanti ti servono (stati attento alle parentesi e alla corretta sintassi, mi racomdnao).

    Riguardo la seconda domanda, non ho ben capito...
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  5. #5
    Questa è la riga di comando dove viene chiamata un'altra pagina che inserisce nel db l'articolo:

    poi c'è la pagina che esegue l'inserimento (list1.asp) ed è:

    codice:
    <%response.Buffer=true%>
    
    
    
    <%
      dim azienda, articolo, prezzo
      prezzo=replace(request.QueryString("prezzo"),"'","''")
       azienda=replace(request.QueryString("azienda"),"'","''")
        articolo=replace(request.QueryString("articolo"),"'","''")
    	articolo=replace(articolo, """", "&quot;")
    	 	
     if session("identifica") = "" and articolo <> "" then
      id_cliente = Session.SessionID
      session("identifica") = id_cliente
      
      '*** inserisce l'articolo
      Set addrDB = server.CreateObject("ADODB.Connection")
      addrDB.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBpath & ";"
      set addrRS = Server.CreateObject("ADODB.Recordset")
      addrRS.Open "SELECT * FROM webstore", addrDB, 3, 3
      addrRs.Addnew
      addrRs.Fields("azienda").value = azienda
      addrRs.Fields("descrizione").value = articolo
      addrRs.Fields("prezzo").value = prezzo
      addrRs.Fields("id_cliente").value = session("identifica")
    	 Azienda = ""
    	 articolo =""
    	 Prezzo = ""
    	 
      addrRS.Update
      addrRS.Close
    
      set addrDB = nothing
      set addrRS = nothing
       response.Redirect("view.asp")
       end if
     '*********************************************************
      if session("identifica")<> "" AND articolo <> "" then
    
      Set addrDB2 = server.CreateObject("ADODB.Connection")
      addrDB2.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBpath & ";"
      set addrRS2 = Server.CreateObject("ADODB.Recordset")
      addrRS2.Open "SELECT * FROM webstore", addrDB2, 3, 3
      addrRs2.Addnew
      addrRs2.Fields("azienda").value = Azienda
       addrRs2.Fields("descrizione").value = articolo
        addrRs2.Fields("prezzo").value = Prezzo
    	 addrRs2.Fields("id_cliente").value = session("identifica")
    	
     addrRS2.Update
      addrRS2.Close
      set addrDB2 = nothing
      set addrRS2 = nothing
       response.Redirect("view.asp")   
         end if
    
    %>
    e poi mi incasino perchè non saprei come concatenare i "replace" per virgolette e apici e poi non inserisce i dati nel db anche se uso replace .
    Forse il problema è altrove?

    Spero che sia riuscito a spiegarmi in modo esauriente.

    Grazie Maximum
    Pochi sanno, molti presumono di sapere.

  6. #6
    Originariamente inviato da Rob2002
    Spero che sia riuscito a spiegarmi in modo esauriente.

    Grazie Maximum
    Non tanto...
    Spiega in sostanza, chiaramente cosa devi fare nella pagina "list1.asp".
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  7. #7
    La pagina list1.asp ha il compito di inserire le variabili nel db ed eseguire alcune verifiche.
    Il problema è che, appunto, non inserisce nel db tutti quei record che contengono (nel campo articolo) un'apice o le virgolette pur utilizzando il comando replace.

    Forse ho troppo condensato, ma questo è il succo del problema.
    Pochi sanno, molti presumono di sapere.

  8. #8
    ...poi tra i vari tentativi ho provato a mettere il replace sulla pagina dove è presente il pulsante del carrello (sembra che il problema parta da lì)

    ho notato che il paramentro non lo passa se contiene quei maledetti caratteri.

    ... ma anche così non va. Non so più che prove fare... è finita la logica.
    Pochi sanno, molti presumono di sapere.

  9. #9
    Punto N.1: leva l replace dal pulsante, dal link per intenderci.

    Punto N.2: per il campo articolo, prova a fare questo:
    codice:
    articolo = replace(request.QueryString("articolo"), "'", "''")
    articolo = replace(articolo, """", "& q u o t ;")
    Se ti servono altre replace per la variabile articolo, applicale nella stessa maniera di come scritto alla seconda riga.
    Infine vedi se l'insert viene eseguita e se non viene eseguita, spiega cosa accade...

    P.S.: -->& q u o t ;<-- senza spazi nel codice, mi raccomando.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  10. #10
    Ciao Maximum
    grazie ancora per aver dato seguito al mio problema.

    Ho tolto i replace dal pulsante, come mi avevi suggerito, ho inserito la tua sintassi anche se è stata la prima cosa che ho fatto, ma non va ugualmente.

    Se ad esempio, la descrizione contiene "Olio d'oliva" è come se il pulsante non funzionasse quindi
    1) non passa la variabile
    2) non aggiunge nel db il record
    3) non esegue il comando Java contenuto nel bottone.

    Ma questo replace l'ho utilizzato altre volte ... e funzionava non capisco perchè in questo contesto non va.

    Gli script non sono poi così complicati... non so più cosa fare
    Pochi sanno, molti presumono di sapere.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.