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,"","");
Statement stmt = db.createStatement();
String query = "SELECT * FROM [login] WHERE [account] = '" + request.getParameter("account") + "' AND [password] = '" + request.getParameter("password") + "' ";
ResultSet rs = stmt.executeQuery(query);
while (rs.next())
{
int id = rs.getInt(1);
String account = rs.getString(2);
session.setAttribute("user", id);
%>
<%=id%><br>
<%=account%><br>
<%=session.getAttribute("user")%>
<%
}
stmt.close();
db.close();
}
else {
%>
Inloggad
<%
}
%>
Tackar
Andreas
[Redigerat av AG den 03 apr 2001]