Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    Scelta automatica in seguito a controllo dell'avvenuta registrazione dell'utente

    Salve a tutti , vi ringrazio in anticipo per la cortese attenzione e le eventuali risposte

    Ho creato, al fine di impratichirmi e imparare Asp (premetto che sono un neofita) un semplie e forse banale sito che emula le funzioni principali di un sito di commercio elettronico, questi funziona correttamente ad eccezione di una parte che propio non riesco come correggere.
    Ho un problema di "privilegi" che il codice non garantisce, mi spiegherò meglio nelle righe a seguire.

    Premetto:
    Il sito tiene traccia dell'utente mediante session: se l'utente ha inserito i propi dati (mediante apposita pagina) può effettuare l'acquisto, vedere aluni dati aggiuntivi sui prodotti altrimenti gli viene negato una parte dei dati e la possibilità di osufruire di taluni servizi(o così dovrebbe essere). Non ho problemi con session in alcuna pagina del sito.

    Problema:
    La pagina acquisti in particolare dovrebbe verificare che l'utente sia registrato , se si permettere la visualizzazione e interazione con essa altrimenti avvertire il cliente della necessaria registrazione mancante , magari mediante popup e reindirizzamento o apertura della pagina per la registrazione in automatico. Ma non lo fa e non riesco a risolvere la cosa. senza interventi radicali sulla pagina , potreste suggerirmi una correzione adeguata ?


    Qui di seguito segue la parte del codice che a mio giudizio crea il problema (l'if viene praticamente ignorato dai browser ):


    ....

    <div id="content">
    <h2>Acquisto.</h2>
    <p class="centra">

    <% @LANGUAGE="JScript" %>




    <% regis = Session("ricon")%>
    <% nit = Session("nome")%>
    <% conit = Session("cognome")%>


    <%if (regis=!true) {
    Response.write("&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&lt;alert(&#39;Per Procedere é necessario registrarsi!&#39;");
    Response.write("window.open(&quot;ident.asp&quot;&lt;&#47;SCRIPT&lt;");
    }%>

    Gentile <%Response.write(conit)%><%Response.write(nit)%>
    se desidera acquistare uno dei nostri prodotti basterà che lei indichi le quantità dei prodotti che le interessano nele apposite caselle e compli correttamente lo spazio dedicato a dati necessari alla transazione.


    ...

    regis é la variabile che se esistente e con valore True assegnato attesta la registrazione avvenuta dell'utente .
    Eventualmente come dovrei fare a verificare che una variabile non esista in session senza crearla?


    Grazie Invinite .
    Evander

  2. #2
    beh, vedere che una certa chiave session non esiste credo sia un po' come dire che la sua chiave e' vuota. Pertanto dovrebbe andare :
    codice:
    if(Session("nomeSessione")==""){
    // non esiste
    } else {
    // esiste
    }
    Per quanto riguarda l'if, non e' che salvi il valore TRUE come stringa (cioè Session("ricon") = "True") e non come un booleano (cioè Session("ricon") = True) ?

    Ciau!
    - Atari

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    Grazie

    Grazie per il consiglio , effettivamente non fa una piega quello che mi hai suggerito , ho provato ad applicarlo ma anche io mi sorprendo al constatare che non continui a funzionare.
    C'é qualche altro modo che mi permetta di non riscrivere da capo la pagina o qualcuno nota errori che continuo a non vedere? non so più dove sbattere la testa.


    Grazie.
    Evander

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250
    Ho provato a fare un'altra cosa molto apparentemente banale ma che fore portebbe dare spunti per risolvere l'enigma:

    Ho creato una nuova variabile

    <%var ter=true;%>

    e la ho confrontata con quella a cui é assegnato a inizio pagina il valore della variabile di controllo ubicata in sessio...

    <%if (regis=!ter) {
    Response.write("&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&lt;alert(&#39;Per Procedere é necessario registrarsi!&#39;");
    Response.write("window.open(&quot;ident.asp&quot;&lt;&#47;SCRIPT&lt;");
    }%>


    Il risultato é lo stesso: é come se fosse sempre considerata vera e quindi non mi blocca.
    ho altre variabili che se l'utente non é registrato dovrebbero risultare o inesistenti o "vuote".
    Suggerimenti?
    Evander

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    Forse il problema é un'altro....

    Penso di aver identificato il problema ma non ne ho la soluzione :

    Ho tentato in un'altra pagina di fare controlli di diversa natura che però prevedevano la creazione di cosice javascript in caso di ipotesi verificata . quello che succede é questo:

    se "Response.write" inserisce nella pagina codice HTML tutto ok, ma se inserisce anche nuovo codice JS questo non viene eseguito benché non vengano segnalati errori dal BR.

    Come posso fare? O meglio , come posso fare eseguire quel codice?

    PS - se al codice JS inserito in tag opportuni ecc ec sostituisco semplice testo o HTML + testo il controllo si dimostra efficiente .
    Evander

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    ..

    C'é qualc'uno in grado di rispondermi per favore.
    E' una cosetta abbastanza importante quella che sto tentando di fare.

    Formulo la domanda quindi anche in altro modo: E' possibile , mediante Response.write() far comparire non solo testo e codice html anche codice JavaScript?Confermate?
    Se si :dove abaglio?
    Se no : come potrei risolvere il problema con soluzioni alternative (che al momento purtroppo non mi vengono in mente o non conosco?

    Grazie

    :messner :
    Evander

  7. #7
    se non erro il codice javascript lo devi mettere o in una function che viene richiama all'onload della pagina oppure all'interno del tag body

    e cmq l'operatore "diverso" si scrive != e non =! (a meno secondo il reference)


    un suggerimento, per comodità se devi scrivere codice html/vario fai questo
    codice:
    if(regis != iter){
    %>
    <script language="javascript">...</script>
    <%
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    grazie ma...

    Grazie per aver tentato di darmi una mano ma non é questo il punto purtroppo

    =! o != pare non siano il problema inquanto il controllo IF così come é funge perfettamente , non é quello il punto .
    Il codice che mi hai suggerito per scrivere aplet JS fa svolgere il'if dal server e il js normale sempre e comunque dal client che regis sia vero o falso , non é quello che devo sviluppare; in pratica se il controllo é vero deve comparire quella riga di codice e quindi il client la deve eseguire , altrimenti se l'IF, calcolato sul server, da esito negativo (regis é vero) allora il codice non deve comparre e la pagina verra visualizzata normalmente.

    Ho apportato cmq una modifica al codice ma le cose non cambiano :


    < body <% if(((nul2-qm2)<0)||((nul1-qm1)<0)||((nul3-qm3)<0)||((nul4-qm4)<0)||((nul5-qm5)<0)){Response.write( "onLoad=&quot;allert (&quot;Quantità richiesta superiore alla quantità disponibile,RIFORMULARE L'ORDINE!&quot;&quot;");} %> >
    In pratica se l'if é verificato compare un codice js che il client dovrebbe eseguire onLoad , ho provato anche con "onUnload" ma nulla di fatto , il controllo viene eseguito (ne son quasi certo al 120%) e il codice viene "scritto " ma non ESEGUITO. mannaggia!! HELP!
    Evander

  9. #9
    mi spiace ma non riesco a seguirti...però mi sembra che tu ti stia perdendo in un bicchiere di acqua...

    asp lavora prima che tu veda la pagina, quindi una volta che hai caricato hai solo latoclient

    mentre asp lavora ci si trova in un ambito lato server che, in soldoni, scrive codice html da mandare al browser

    finchè il codice non arriva al browser, il javascript non parte

    se l'if è negativo, non viene neanche scritto nella pagina

    detto questo, ti suggerisco di fare degli if fuori dai tag html, in maniera che pure tu screivi in maniera piu lineare, e con delle flag poi stampi...

    es:

    codice:
    dim flag1
    if a<b then
    flag1=true
    else
    flag1=false
    end if
    
    %>
    <body onLoad="<% if flag1 then response.write ("messaggio();") %>">
    dove messaggio(); sarà una funzione javascript nel tag head:
    codice:
    <script language="javascript">
    function messaggio()
    {
    alert('Quantità superata');
    }
    </script


    ah, ribadisco un appunto:

    codice:
    if(regis != iter){
    %>
    <script language="javascript">...</script>
    <%
    }
    se vai a leggerepoi l'html troverai scritto il javascript SOLO E SOLTANTO se quell'if si verifica...

    ciao e buona serata

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    ...

    Grazie per la pazienza ,in effetti avevi ragione ma non avevo compreso bene io,
    Pare tu abbia centrato il problema ma il fatto é che non comprendo perché continui a non fungere, sto impazzendo! e dato che la cosa non é solo per hobby sto perdendo il senno.

    Posto dinuovo il codice modificato in base ad alcuni suggerimenti datimi :

    1)

    <body <%if(((nul2-qm2)<0)||((nul1-qm1)<0)||((nul3-qm3)<0)||((nul4-qm4)<0)||((nul5-qm5)<0)){%>onLoad="allert('Quantità richiesta superiore alla quantità disponibile,RIFORMULARE L'ORDINE!');"<%};%> >

    2 )

    <%if (regis=!true) {%>
    <script language="javascript">alert('Per Procedere é necessario registrarsi!');
    window.open("ident.asp");</SCRIPT><%};%>

    li ho "rismontati " per controllare la validità degli if che pare funzionino , il brouser (Mozzilla e Explorer) indipendentemente dai valori assunti dalle variabili ora non stampano il codice e quindi non lo eseguono come se l'if fosse perennemente non verificato , hosostituito onload con onUnload, ma nulla, i browser non danno comunque errori.

    Lo so che sembreranno banalità e anche per questo vi ri ringrazio per la cortesia e pazienza.

    Evander

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.