Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213

    [JSP]login(session,forward)

    ciao a tutti!ho una pagina (index.html)con 2 text,e una pagina login.jsp che verifica che i valori delle text siano presenti in un db e se lo sono apre una session e mi apre la pagina ricerca.jsp. il problema è che anche se inserisco il giusto user mi riporta a index.html e mai in ricerca.jsp
    ekko il codice delle 2 pagine:
    index.html:
    codice:
    <html>
      <head>	<title>index.html</title> 
    <script type="text/javascript">
    function Controllo() {
    	var c = new RegExp ("[^a-z]");
    	var control =   /^[0-9]+$/;
    		if ((document.getElementById("user").value == "") || (document.getElementById("pass").value == "")) {
    			alert("Riempi tutti i campi");
    			return;
    		}
    		if (c.test(document.getElementById("user").value)) {
    			alert("Non sono ammessi numeri nel campo username");
    			return;
    		}
    		if ((control.test(document.getElementById("pass").value))){
    			alert("La password non deve contenere solo numeri");
    			return;
    		}
    		else {
       			location.href=("login.jsp");
    		}
    }
    function Reg(){
    	location.href=("Registrazione.jsp");
    }
    </script>
      </head>
      <body>
      <form name="frmLogin" method="post" action="login.jsp">
        <h2 align="center">HOME PAGE</h2>
    
    
        <div align="center">
        <table width="308" height="123">
             <tr>
        	<td> 
        		Username:
     
        	</td>
        	<td>  
        	</td>
        	<td>
        		<input text name="uid" property="" id="user" size="20" tabindex=1/>    	</td>
        </tr>   
        <tr>
        	<td> 
        		Password:
     
        	</td>
        	<td> </td>
        	<td>
        		<input type="password" name="pwd" property="" id="pass" size="20" tabindex=2 />
        	</td>
        </tr>
        <tr>
        	<td> 
    		<p align="center">
    		<input type=submit value="Login" tabindex=3 onclick="Controllo()"/>
     </td>
    	<td>  </td>
    	<td>
    		<input type=button value="Registrami" tabindex=4 onclick="Reg()"/>
    	</td>
    </tr>
        </table></div> </form>	</body></html>
    login.jsp:
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ page language="java" import="java.util.*" import="java.sql.*"%>
    <html>  <head>    <title>'login.jsp'</title>  </head>
      <body>
       <%	String strUser = request.getParameter("uid");
       	String strSQL="SELECT id, user FROM UTENTI";
       
       	String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
         	String strNomeConnessione="jdbc:odbc:database";
      	 Class.forName(strDriver);
      	 Connection conn=null;
      	conn=DriverManager.getConnection(strNomeConnessione);
      	Statement stmDb=conn.createStatement();
      	 ResultSet rsRisultato=null;
      	rsRisultato=stmDb.executeQuery(strSQL);
      	 	
      	 while(rsRisultato.next()){
      	 	if(strUser == rsRisultato.getString("user")){
                              	String nome = request.getParameter("uid");
       	  		session.setAttribute("uid", nome); 
       	 		Hashtable prod = new Hashtable();
       	  		session.setAttribute("Prodotto", prod);	  
       	  %>
      			 <jsp:forward page="ricerca.jsp"></jsp:forward>
      	<%	 }
      		 else{
      	%>
      			<jsp:forward page="index.html"></jsp:forward>
    	<% 	} 
    	}%>
      </body></html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Prova a fare i confronti così

    invece di
    codice:
    if(strUser == rsRisultato.getString("user")){
    metti
    codice:
    if(strUser.equals(rsRisultato.getString("user"))) {
    Fai anche un po' di debug: togli i vari forward e accertati che le variabili siano tutte propriamente valorizzate: ossia stampa a video tutte le String. Se tutto arriva a dovere (Dalle query, dal post etc etc) allora il problema risiede da qualche altra parte.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    così funziona..grazie mille!!quindi quando si tratta di parametri presi da form metto equals() al posto di ==.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    c'è solo un piccolo bug che probabilmente dipenderà dall'html e dal javascript della prima pagina che ho postato. il controllo jsp lo deve fare solo sull'user. se inserisco correttamente l'user ma non inserisco la password,compare l'alert ma mi porta cmq sulla pagina ricerca.jsp

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    altro problema, funziona solo se inserisco il primo user della tabella utenti...con gli altri torna sempre alla pagina index.html

  6. #6
    Per il primo problema devi sostituire nel codice javaScript i "return" con "return false"

    Per il secondo problema non hai impostato la clausola WHERE nella query, quindi ti viene ritornata l'intera tabella UTENTI e il il confronto avviene sempre col primo record della tabella.


  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    con i return false non funziona cmq,ora nonostante gli alert mi apre una pagina bianca con nell'url login.jsp.x la query ho sistemato con:
    String strUser = request.getParameter("uid");
    String strSQL="SELECT id, user FROM UTENTI where user='"+strUser+"'";

  8. #8
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    a cosa ti serve usare location.href? via...
    codice:
    function Controllo() {
    	var c = new RegExp ("[^a-z]");
    	var control =   /^[0-9]+$/;
    		if ((document.getElementById("user").value == "") || (document.getElementById("pass").value == "")) {
    			alert("Riempi tutti i campi");
    			return false;
    		}
    		if (c.test(document.getElementById("user").value)) {
    			alert("Non sono ammessi numeri nel campo username");
    			return false;
    		}
    		if ((control.test(document.getElementById("pass").value))){
    			alert("La password non deve contenere solo numeri");
    			return false;
    		}
    }

    poi: nn ho mai usato le regex in js, ma non e' che devi fare:
    codice:
    var control = new RegExp("/^[0-9]+$/");
    altrimenti quando poi fai:
    codice:
    if ((control.test(document.getElementById("pass").value))){
    ti da' errore?

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    le reg exp sono giuste,o almeno non mi danno errori. togliendo l'else e quindi location.href mi da cmq gli stessi problemi di prima

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    non capisco xkè una volta che compaiono gli alert si impianta su login.jsp. Anche se ci fosse un problema di javascript che non mi fa restare su index.html, c'è cmq un forward in login.jsp che mi dovrebbe riportare in index.htm

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.