Har nu två problem att ta itu med.
Jag håller på och bygger upp ett inloggningsscript i java, arbetar mot en databas.
Det jag först försöker göra är att sätta in ett "int"-värde i en session, "user", enligt följande kod praxis:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
int id = rs.getInt(1);
String account = rs.getString(2);
session.setAttribute("user", id);
'Error
/login/inloggad.jsp:40: Incompatible type for method. Can't convert int to java.lang.Object.
session.setAttribute("user", id);
Har försökt på alla möjliga sätt utan att lyckas.
Kommer vi till problem nr2. Vid själva inloggningen kollar systemet om användaren finns i databasen. Om användaren inte finns skall systemet skriva ut ett meddelande, men så blir inte fallet.
Alltså hur skriver jag ut om rs är eof?
Kör med hela koden jag har för närvarande, så kanske folk har lust att förbättra o sånt :)
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
<%@ page language=java %>
<%@ page import='java.sql.*' %>
<%@ page import='javax.sql.*' %>
<%
if (session.getAttribute("user") == null){
String driverName="sun.jdbc.odbc.JdbcOdbcDriver";
String dbUrl="jdbc:odbc:login";
Class.forName(driverName);
Connection db =DriverManager.getConnection(dbUrl,"","");
/login/inloggad.jsp:40: Incompatible type for method. Can't convert int to java.lang.Object
Du måste lagra int:en i en wrapperklass:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
session.setAttribute("user", new Integer(id));
Sen kan du plocka ut värdet med dinInteger.intValue().
Hur du kollar om ett ResultSet är tomt finns det flera svar på... den ballaste i min mening är:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
if(!rs.next()){
// Inga matchande rader
} else do {
// Bla bla bla..
} while(rs.next());
... sen så har även ResultSetMetaData lite jox som kan vara till hjälp också...
------------------ Life feeds on life feeds on life feeds on life feeds on life...
Fungerade alldeles utmärkt, får tacka ödmjukast för det.
Nu över till ännu ett problem. Om man lägger in koden som spango visade i min kod så fungerar det fint när man kommer från sidan med textbox, men hur skall man inkludera sidan som kommer i vanliga fall, om session user har ett värde, koden måste ju skrivas på två ställen isf om man kör med else, eller?
Är ju just det problemet, det enda som skiljer emllan de två fälten när man är inloggad är sättet att hämta från databasen, allyså ena hämtar den där formulären stämemr öerens, på det andra där session user är samma som ett id, sen skall ju informationen presenteras som vanligt.
Andreas
276 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25