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

    Strano comportamento con if else

    Ciao a tutti,
    mi sono accorto di un errore in una pagina di iscrizione di un sito che sto realizzando in asp.
    Non credo che sia importante dato che lo script è lato server ma l'errore mi compare solo se utilizzo un computer con internet explorer 7.
    Cosa mi succede....
    Ho un form per registrarsi che va ad una pagina di conferma registrazione.
    In questa pagina di conferma registrazione verifico se l'email esiste con una select
    a questo punto faccio un
    if miorecordset.eof then
    inserisco l'utente e gli mando anche un email di conferma
    e scrivo a video che la registrazione è andata a buon fine
    else
    scrivo a video che esiste già un iscrizione con questo utente

    come avete capito una cosa classica e semplice
    purtroppo non so perchè mi esce sempre scritto che l'utente esiste già, ma la cosa problematica e che mi inserisce anche l'utente nel db e mi manda l'email, come se entrasse nel primo if perchè non aveva trovato l'utente e poi va anche nell'else

    cosa che secondo i canoni della programmazione dovrebbe essere impossibile
    ho pensato, forse ricarica la pagina per qualche strano motivo e così esegue due volte il ciclo
    allora invece di fare uscire i messaggi faccio due redirect uno nell'if e uno nell'else a due pagine diverse

    come prima mi va sempre nella pagina di KO
    ma mi scrive nel db e mi manda l'email

    come premesso me lo fa solo da un pc e indifferentemente dai dati che scrivo....ma essendo che lo script è lato server....non dovrebbe cambiare se uso un explorer nuovo o vecchio o un'altro browser che sia chrome o firefox.
    A voi è mai capitato?
    Avete qualche suggerimento per ovviare al problema?
    Ciao e grazie in anticipo

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Vediamolo questo script.

    Roby

  3. #3
    codice:
    
    email=(trim(request("email")))
    email=injectionMail(email)
    
    pswMoment=password_mista(10)
    
    'response.Write(keyUser)
    
    	sql="select [id_Utente] from UtentiMaster where email='"& email &"'"
    	set rsCtrl= server.CreateObject("adodb.recordset")
    	rsCtrl.open sql,connM
    	if not rsCtrl.eof and not rsCtrl.bof then
    	
    
    		ctrlMail="true"
    		IdEsistente=rsCtrl("id_Utente")
    		response.Redirect("IscrizioneKo.asp")
    		
    	else
    	
    			set rs=server.Createobject("ADODB.Recordset")
    			rs.activeconnection=connM
    			rs.cursortype=1
    			rs.locktype=3
    			rs.source="UtentiMaster"		
    			rs.open
    			rs.addnew
    	
    			rs("Email")=email	
    			rs("psw")=pswMoment
    			rs.update
    			UtenteAnaID=rs("id_Utente")
    			
    			rs.close
    			set rs = nothing
    	
    		connM.close
    		set connM=nothing
    	
    	
    			
    			Msg = Msg & "<body bgcolor='#d7eaf1'>" 
    			
    			
    			ctrlMail="false"
    				 
    	
    			
    			invio= SendMail("Registrazione al sito",Msg,"mioIndirizzo",Email,cc,bcc,repley)
    
    			 response.Redirect("IscrizioneOk.asp")
    
    	
    		
    	
    	end if
    	
    	
    	set rsCtrl=nothing

  4. #4
    ho naturalmente provato a mettere dei response.write a posto dei response.redirect e mi scrive nel punto in cui dovrebbe andare alla pagina dell'ok

    quindi è come se arrivasse li, ma di questo ne ero già certo perchè partiva l'email e lo inseriva nel db, e poi rifacesse la select di controllo , ma questo non lo posso dimostrare perchè non mi compare il response.write della presenza almeno che non metto un email realmente presente

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.