الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار عن عمل Login

بدأه waelmax في 13 يوليو 2008 · 10 رد · 1,209 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلاااااااااااااام

أنا اعمل مشروع صغير وهو عبا رة عن برنامج لادارة مطار

الان اريد أن اعرف عن كيفية بناء كود تسجيل دخول مع ال gui

أنا عندي قواعد بيانات :

أسم الجدول: User

الحقول:

duty : وهي لتحديد وظيفة المستخدمة اذا كان ادمن او يوزير عادي

UserName : اسم المستخدم

Password : الباسوورد

أنا لا اطلب كود جاهز لكي لا اتعدى حدودي في قوانين المنتدى ولكن اريد طرف الخيط او مقالات فيها شرح لكيفية عمل ذلك .

ولكم جزيل الشكر

#2

سأضع لكم محاولتي:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class login extends JFrame {
	 Connection con;
	 Statement stmt;
	JLabel l1 = new JLabel("User name :");
	JLabel l2 = new JLabel("Password :");
	JButton button = new JButton("log me in !");
	Container cp = getContentPane();
	JTextField userId = new JTextField(20);
	JPasswordField pass = new JPasswordField(20);
	login() { super("Login"); cp.add(l1);
	cp.add(userId); cp.add(l2); cp.add(pass);
	cp.add(button); cp.setLayout(new FlowLayout());
	button.addActionListener(new ActionListener(){ 
		public void actionPerformed(ActionEvent ae)
		{ 
			Statement stmt = null;
			Connection con = null;
			try {
				con =DatabaseConnection.getConnection();
				stmt = con.createStatement();
				ResultSet rs2 = stmt.executeQuery("select UserName from User");
				rs2=  stmt.executeQuery("select Password from User");
			} 
			catch(Exception re)
			{

			}
			if(pass.getText().equals("UserName") && userId.getText().equals("Password")) JOptionPane.showMessageDialog(null,"Thanks for loggin on, Adel ","GREAT",JOptionPane.PLAIN_MESSAGE);
			else JOptionPane.showMessageDialog(null,"Wrong password or log in name","Error",JOptionPane.ERROR_MESSAGE);
} }); setSize(350,120); show(); }

	public static void main(String[] args) {
	new login();

	}

	}

ولكن لا يعمل

ما هو الخطأ الموجود في الكود ؟؟

:(

تم تعديل هذه المشاركة بواسطة waelmax في 13 يوليو 2008 في 01:08

#3

بداية جملة الطلب من قاعدة البيانات فيها مشكلة

 ResultSet rs2 = stmt.executeQuery("select UserName from User where UserName='"+userTextField"' and Password ='"+passTextField+"'");

بالنسبة للجملة التالية فيها مشكلة

pass.getText().equals("UserName")

أنت تقارن هنا مع الكلمة UserName

وهذا خطأ منطقي

أنت تريد المقارنة مع اسم المستخدم الراجع من قاعدة البيانات

فستكون الجملة كالتالي

pass.getText().equals(rs.getString("Password "))

قم بعمل التعديلات وإن واجهتك مشاكل أخبرني

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4

مشكوووووور اخي علاء على الشرح

بس لسة شوي الامور متلخبطة عندي

اعذرني لسه مبتدأ في الجافا

أنا عملت الكود ده ولسه بيطلع اخطأ :

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class login extends JFrame {
	 protected static final String JPasswordField = null;
	protected static final String JTextField = null;
	Connection con;
	 Statement stmt;
	JLabel l1 = new JLabel("User name :");
	JLabel l2 = new JLabel("Password :");
	JButton button = new JButton("log me in !");
	Container cp = getContentPane();
	JTextField userId = new JTextField(20);
	JPasswordField pass = new JPasswordField(20);
	login() { super("Login"); cp.add(l1);
	cp.add(userId); cp.add(l2); cp.add(pass);
	cp.add(button); cp.setLayout(new FlowLayout());
	button.addActionListener(new ActionListener(){ 
		public void actionPerformed(ActionEvent ae)
		{ 
			Statement stmt = null;
			Connection con = null;
			try {
				con =DatabaseConnection.getConnection();
				stmt = con.createStatement();
				ResultSet rs2 = stmt.executeQuery("select UserName from User where UserName='"+JTextField+"' and Password ='"+JPasswordField+"'");
			} 
			catch(Exception re)
			{

			}
			ResultSet rs;
			if(pass.getText().equals(rs.getString("Password") && userId.getText().equals(rs.getString("UserName")) JOptionPane.showMessageDialog(null,"Thanks for loggin on, Adel ","GREAT",JOptionPane.PLAIN_MESSAGE);
			else JOptionPane.showMessageDialog(null,"Wrong password or log in name","Error",JOptionPane.ERROR_MESSAGE);
} }); setSize(350,120); show(); }

	public static void main(String[] args) {
	new login();

	}

	}
#5

ما نوعية الأخطاء التي تحصل عليها

وفي أي مكان بالضبط؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

انا استخدم Eclips

وهو يعلم بالخط الأحمر على ده بالتحديد:

rs.getString("Password") && userId.getText().equals(rs.getString("UserName")
#7

ها قد قمت بضبط الشيفرة

المشكلة كانت في الأقواس

أنصحك بترتيب شيفراتك قليلاً

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class login extends JFrame {
	 protected static final String JPasswordField = null;
	protected static final String JTextField = null;
	Connection con;
	 Statement stmt;
	JLabel l1 = new JLabel("User name :");
	JLabel l2 = new JLabel("Password :");
	JButton button = new JButton("log me in !");
	Container cp = getContentPane();
	JTextField userId = new JTextField(20);
	JPasswordField pass = new JPasswordField(20);
	login() { super("Login"); 
	cp.add(l1);
	cp.add(userId); 
	cp.add(l2); cp.add(pass);
	cp.add(button);
	cp.setLayout(new FlowLayout());
	button.addActionListener(new ActionListener(){
		public void actionPerformed(ActionEvent ae)
		{
			Statement stmt = null;
			Connection con = null;
			try {
				con =DatabaseConnection.getConnection();
				stmt = con.createStatement();
				ResultSet rs2 = stmt.executeQuery("select UserName from User where UserName='"+JTextField+"' and Password ='"+JPasswordField+"'");
			}
			catch(Exception re)
			{

			}
			ResultSet rs;
			if(pass.getText().equals(rs.getString("Password"))&& userId.getText().equals(rs.getString("UserName")))
					JOptionPane.showMessageDialog(null,"Thanks for loggin on, Adel ","GREAT",JOptionPane.PLAIN_MESSAGE);
			else 
				JOptionPane.showMessageDialog(null,"Wrong password or log in name","Error",JOptionPane.ERROR_MESSAGE);} 
		}); 
		setSize(350,120); 
		show();
	}

	public static void main(String[] args) {
	new login();

	}
}

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#8

الكود لسه مش شغال

يطلع خط أحمر تحت كل من :

rs.getString("Password")

و

rs.getString("UserName")

على كل حال اجرب غدا ارتب الكود قليلا الان اريد الذهاب الى النوم

تصبحون على الف الف خير

#9
ResultSet rs;
			if(pass.getText().equals(rs.getString("Password"))&& userId.getText().equals(rs.getString("UserName")))

أنتبه أن الـ rs لم تسند لها أي شئ , (لم تقم بعمل initialize لقيمتها ) . ؟؟

جرب الآن:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public Class login extends JFrame {
	 protected static final String JPasswordField = null;
	protected static final String JTextField = null;
	Connection con;
	 Statement stmt;
	JLabel l1 = new JLabel("User name :");
	JLabel l2 = new JLabel("Password :");
	JButton button = new JButton("log me in !");
	Container cp = getContentPane();
	JTextField userId = new JTextField(20);
	JPasswordField pass = new JPasswordField(20);
	login() { super("Login");
	cp.add(l1);
	cp.add(userId);
	cp.add(l2); cp.add(pass);
	cp.add(button);
	cp.setLayout(new FlowLayout());
	button.addActionListener(new ActionListener(){
		public void actionPerformed(ActionEvent ae)
		{
			Statement stmt = null;
			Connection con = null;
ResultSet rs = null;
			try {
				con =DatabaseConnection.getConnection();
				stmt = con.createStatement();
				 rs = stmt.executeQuery("select UserName from User where UserName='"+JTextField+"' and Password ='"+JPasswordField+"'");


			if(rs.next() && pass.getText().equals(rs.getString("Password"))&& userId.getText().equals(rs.getString("UserName")))
					JOptionPane.showMessageDialog(null,"Thanks for loggin on, Adel ","GREAT",JOptionPane.PLAIN_MESSAGE);
			else
				JOptionPane.showMessageDialog(null,"Wrong password or log in name","Error",JOptionPane.ERROR_MESSAGE);}


}
			catch(Exception re)
			{

			}	});
		setSize(350,120);
		show();
	}

	public static void main(String[] args) {
	new login();

	}
}

تم تعديل هذه المشاركة بواسطة malek_sa في 13 يوليو 2008 في 03:25

SCJP 5.0

#10

للاسف لم يعمل !!!

:(

#11

هناك ملاحظة على جمله الاستعلام فانت نستدعي العمود UserName فقط

بينما في جملة الشرط تستدعي rs.getString("Password")

على اي حال يحتوي الملف المرفق على برنامجك بعد اجراء بعض التغييرات

login_java.rar

تم تعديل هذه المشاركة بواسطة العيافـي في 14 يوليو 2008 في 07:47

مواضيع مشابهة