Showing posts with label mysql. Show all posts
Showing posts with label mysql. Show all posts

Monday, August 19, 2019

ஜாவாவில் லாக் இன் பக்கம்.



பொதுவாக ஒரு பயன்பாட்டில் முதலாவதாக பயனரின் பெயரும் அவருடைய கடவுச்சொல்லும் பெறப்பட்டு அவை பொருந்தியிருந்தாலே அடுத்த பக்கத்திற்கு செல்லும் படி அமைக்கப்பட்டிருக்கும்.
இந்த கட்டுரையில் ஜாவாவில் எவ்வாறு JDBC பயன்படுத்தி நாம் கொடுக்கும் பெயர் மற்றும் கடவுச் சொல் தகவல் தளத்தில் உள்ளதா என் எவ்வாறு செய்வது என்று பார்ப்போம்.
முதலில் Mysql பயன்படுத்தி டேட்டா பேஸில் என்னவெல்லாம் செய்ய வேண்டும் எனப் பார்ப்போம்.
User என்ற பெயரில் தகவல் தளம்(data base) உருவாக்கவும். தகவல் தளத்திற்கு நீங்கள் விரும்பிய  பெயரைக் கொடுத்துக் கொள்ளலாம்.
பிறகு login என்ற் பெயரில் ஒரு டேபிளை உருவாக்கவும்.
அதில் id என்ற பெயர், டேட்டா டைப் int , பிரைமரி கீ, ஆட்டோ இங்கிரிமெண்ட் என்ற் ஒரு காலம் உருவாக்கவும். அடுத்து uname, pass என்று இரு காலம் உருவாக்கவும். இவை இரண்டின் டேட்டா டைப்பும் varchar ஆகவும் அதன் அளவு 50 ஆகவும் இருக்கட்டும்.
இப்பொழுது அதன் இன்புட் கொடுக்கவும்.
உதாரணமாக இரண்டு ரோ அமைத்துள்ளேன்.
1 , muthu, abc
2, karthi, xyz
அதாவது muthu என்ற பயனருக்கு abc என்பதை கடவுச் சொல்லாகவும்(password) karthi என்ற பயனருக்கு xyz என்பது கடவுச்சொல்லாகவும் டேபிளில் சேமிக்கப்பட்டுள்ளது.
இப்பொழுது netbeans என்பதை இயக்கவும். முதலில் loginApp என்ற பெயரில் பிராஜெக்ட் உருவாக்கவும். இடது புறம் உள்ள பிராஜெக்ட் என்ற விண்டோவில் loginApp என்பதில் source packages என்பதை வலது கிளிக் செய்து புதிதாக loginForm என்ற JFrame ஒன்றை இணைக்கவும்.
இதில் கீழே உள்ள படத்தில் உள்ளது போல் டிசைன் செய்யவும்.
இதில் முதலில் உள்ள டெக்ஸ்ட் ஃபீல்டில் வலது கிளிக் செய்து  variable name என்பதில் tfuser என்றும் , இரண்டாவது உள்ள பாஸ்வேர்டு ஃபீல்டில் வலது கிளிக் செய்து வேரியபிள் பெயராக tfpass என்றும் கொடுக்கவும்.
பட்டனின் டெக்ஸ்ட் ஆக submit என்றும் அதன் வேரியபிள் பெயராக btnSubmit என்றும் கொடுக்கவும்.
இப்பொழுது mysql-connector.java  என்பதை இணையத்தில் இருந்து டவுன்லோட் செய்யவும். பிறகு பிராஜெக்ட் விண்டோவில் loginApp என்பதில் libraries என்பதை வலது கிளிக் செய்து add jar file என்பதை கிளிக் செய்து டவுன் லோட் செய்யப்பட்டுள்ள கனக்டரை சேர்த்துக் கொள்ளவும்.

இப்பொழுது சோர்ஸ் என்ற டேப்பை கிளிக் செய்து கிளாஸிற்க்குள் பின் வருமாறு டைப் செய்யவும்.
Connection con;
   PreparedStatement stmt;
    ResultSet rs;
பிறகு loginform() என்ற கன்ஸ்ட்ரக்டர் ஆனது பின் வருமாறு இருக்கட்டும்.
  public loginForm() {
        initComponents();
       
        try
        {
           Class.forName("com.mysql.jdbc.Driver"); 
 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/user","root","");  
   JOptionPane.showMessageDialog(null,"connection success");
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }
    }

அதாவது DriverManager.getConnection("jdbc:mysql://localhost:3306/user","root","");   என்பதில் mysql  போர்ட்  ஆக 3306 என்பதுவும் , டேட்டாபேஸ் பெயராக user என்பதையும் , பயனர் பெயராக root என்பதையும் மற்றும் டிஃபால்ட் கடவுச்சொல் ஏதும் இல்லாததால் வெற்று மேற்கோள் கொடுக்கப்பட்டுள்ளது.
மேற்கண்ட நிரலாக்க வரிகள் try மற்றும் catch பகுதிக்குள் கொடுக்கப்பட்டுள்ளது. கனக்சனில் தவறுகள் ஏற்பட்டால் catch பகுதி இயக்கப்பட்டு பிழைச் செய்தி காட்டப்படும்.
பிறகு submit பட்டனை வலது கிளிக் செய்து events->Actions->actionPerformed
என்பதை கிளிக் செய்யவும்.
இப்பொழுது actionPerformed என்ற ஈவண்ட் பின் வருமாறு இருக்கட்டும்.
  private void btnSubmitActionPerformed(java.awt.event.ActionEvent evt) {                                         
      try
      {
        stmt=con.prepareStatement("select * from login where uname=? and pass=? "); 
        stmt.setString(1, tfuser.getText());
        stmt.setString(2, tfpass.getText());
        rs=stmt.executeQuery();
        if(rs.next())
        {
            JOptionPane.showMessageDialog(null, "login success");
           
        }
        else
        {
           JOptionPane.showMessageDialog(null, "user name or password invalid");
        }
      }
      catch(Exception e)
    {
    JOptionPane.showMessageDialog(null, e.getMessage());
    }
    }   
பிராஜெக்டில் loginform.java என்பதை வலது கிளிக் செய்து shift+f6  கீயை அழுத்தவும்.பின் வருமாறு விண்டோ வரும்.                        
நாம் கொடுத்த பயனர் பெயர் மற்றும் கடவுச் சொல் பெறப்பட்டு அந்த குறிப்பிட்ட தகவல் ஆனது டேட்டா பேஸில் உள்ள தகவல் உடன் பொருந்தியிருந்தால் மட்டுமே ஒரு ரோ பெறப்படும். rs என்ற ரிசல்ட் செட்டில் டேட்டா இருந்தால் அதாவது rs.next() என்பது true ஆக இருந்தால்
Login success எனவும் இல்லையெனில் user name or password invalid எனவும் மெஸ்ஸேஜ் காட்டப்படும்.
-நன்றி.
முத்து கார்த்திகேயன்,மதுரை.


ads Udanz

Wednesday, March 6, 2019

Php-யில் லாக் இன் பக்கம்


.

அறிமுகம்.
நாம் நம் இணைய பயன்பாட்ட்டை அணைவரும் அணுகாமல் அதை குறிப்பிட்ட நபர்கள் மட்டும் அணுகுவதற்கு login சிஸ்டம் பயன்படுகின்றது.நாம் நம் பயனர் பெயர்(user name) மற்றும் கடவுச்சொள்(password) கொடுத்து லாக் இன் செய்து கொள்ளலாம்.

இதற்கு தேவைப்படுவன:
  • HTML
  • CSS
  • PHP
  • MySQL
  • Xampp/Wamp server
Sign-In வெப் பக்கம்.
முதலில் நாம் sign-in என்கின்ற இணைய பக்கத்தை உருவாக்க வேண்டும்.அதற்கான கோடிங்க் கீழே கொடுக்கபட்டுள்ளது.
 Listing 1: Sign-In.html
<!DOCTYPE HTML>
<html>
<head>
<title>Sign-In</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body id="body-color">
<div id="Sign-In">
<fieldset style="width:30%"><legend>LOG-IN HERE</legend>
<form method="POST" action="connectivity.php">
User <br><input type="text" name="user" size="40"><br>
Password <br><input type="password" name="pass" size="40"><br>
<input id="button" type="submit" name="submit" value="Log-In">
</form>
</fieldset>
</div>
</body>
</html>


கீழே உள்ள பட த்தில்
உள்ளவாறு SIGN-IN.HTML வெளியீடு இருக்கும்.இதற்கு ஏற்றாற் போல் CSS ஸ்டைல் ஃபைல் எழுத வேண்டும்.

SIGN-IN .HTML பற்றிய குறிப்பு:
இந்த ஃபைலில் முதலில் ஒரு Fieldset பயன்படுத்துகின்றோம்.
அது ஒரு கண்டைனராக செயற்படுகின்றது. அதன் வித் ஆக 30% என குறிப்பிட்டு இருக்கின்றோம். டேட்டாவானது சப்மிட் பட்டனை அழுத்திய பிறகு connectivity.php என்ற பக்கத்திற்கு டேட்டா செல்ல வேண்டும். இரண்டு மெத்தடில் டேட்டா பாஸ் செய்யலாம் ஒன்று get மற்றொன்று post. மற்றும் குறிப்பிட்டு சொல்லும் படி ஒரு விசயம் இன்புட் டைப் password என்று கொடுத்திருக்கின்றோம். எனவே நாம் டைப் செய்யும் பொழுது கேரக்டர் தோன்றாது அதற்கு பதில் டாட்ஸ் தோன்றும்.
Post மற்றும் get மெத்தட் வித்தியாசம்:
Post மெத்தட் பாதுகாப்பானதாகும். Get மெத்தடில் டேட்டா பாஸ் செய்யும் பொழுது டேட்டாவானது url(இணைய தள முகவரி) உடன் வெளிப்படுத்தப்படும் . பாஸ்வேர்டு போன்ற பாதுகாப்பான டேட்டாக்கள் வெளிப்படுத்தப்படும். மேலும் url லெங்க்த் 255 யை தாண்டக்கூட்டது போன்ற கட்டுப்பாடுகள் உள்ளன.  
Css பற்றிய குறிப்புகள்.
பார்போரை ஈர்க்கும் படியாய் இணைய பக்கங்களை வடிவமைப்பதற்கு ஸ்டைல் ஷீட் உதவியாய் உள்ளது. இந்த பக்கத்திற்கான style.css கீழே உள்ளது
Stylecss
/*CSS File For Sign-In webpage*/
#body-color{
    background-color:#6699CC;
    }
    #Sign-In{
    margin-top:150px;
    margin-bottom:150px;
    margin-right:150px;
    margin-left:450px;
    border:3px solid #ff0000;
    padding:9px 35px;
    background:#6699CC;
    width:400px;
    border-radius:20px;
    box-shadow: 7px 7px 6px;
    }
    #button{
    border-radius:10px;
    width:100px;
    height:40px;
    background:#ffff00;
    font-weight:bold;
    font-size:20px;
    }
   
 Description of style.css
மூன்று ஐடி பயன்படுத்தப்பட்டுள்ளது. ஒன்று பாடி ஐடி. அதன் பின் பக்க நிறம் குறிப்பிடப்படுள்ளது. மற்றொன்று டிவ் டேக் ஐடி. மற்றொன்று பட்டன் ஐடி. மூன்றுக்கும் உரிய டிசைன்களும் குறிப்பிடப்படுள்ளன.

Figure 3: Sign-in webpage after applying CSS Style (linking the style.css webpage)
Using PHP and MySQL to get Log In user Profile page: முதலில் ஒரு டேட்டா பேஸ் உருவாக்க வேண்டும். பிறகு UserName என்ற பெயரில் டேபிள் உருவாக்கவும்.
Listing 4: creating table
CREATE TABLE UserName
(
UserNameID int(9) NOT NULL auto_increment,
userName VARCHAR(40) NOT NULL,
pass VARCHAR(40) NOT NULL,
PRIMARY KEY(UserNameID)
);
மேலே உள்ளவாறு டேபிள் உருவாக்கவும். பிறகு கீழே உள்ளவாறு டேட்டா இன்செர்ட் செய்யப்பட வேண்டும்.
Listing 5: Inserting data to the table UserName:
INSERT INTO
UserName (userName, pass)
VALUES
("muthu","karthi");
Listing 6: connectivity.php
<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'practice');
define('DB_USER','root');
define('DB_PASSWORD','');

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
/*
$ID = $_POST['user'];
$Password = $_POST['pass'];
*/
function SignIn()
{
session_start();   //starting the session for user profile page
if(!empty($_POST['user']))   //checking the 'user' name which is from Sign-In.html, is it empty or have some text
{
    $query = mysql_query("SELECT *  FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error());
    $row = mysql_fetch_array($query) or die(mysql_error());
    if(!empty($row['userName']) AND !empty($row['pass']))
    {
        $_SESSION['userName'] = $row['pass'];
        echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE...";

    }
    else
    {
        echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
    }
}
}
if(isset($_POST['submit']))
{
    SignIn();
}

?>


சரியான யூசர்னேம், பாஸ்வேர்டு கொடுக்கப்பட்டால் கீழே உள்ள விண்டோ தோன்றும்.
Connectivity.php
 இதில் செலெக்ட் கொரி பயன்படுத்தப்பட்டுள்ளது. குறிப்பிட்ட username, pass கொடுக்கப்பட்டால் அடுத்தப் பக்கதிற்கு செல்லும்.  Where பகுதியில் நாம் html form ஆனதில் என்ன யூசர்நேம் மற்றும் பாஸ்வேர்டு கொடுக்கின்றோமோ அந்த டேட்டா மேட்ச் செய்யப்பட்டு ரோ ஆனது சேமிக்கப்படுகின்றது. அந்த ரோவில் உள்ள யூசர்நேம் ,பாஸ்வேர்டு ஆனவை நம் ஃபார்மில் உள்ள யூசர்நேம், பாஸ்வேர்டுடன் மேட்ச் ஆனால் நாம் அடுத்த பக்கத்திற்கு செல்கின்றோம்.
நன்றி
முத்து கார்த்திகேயன்,மதுரை.

ads Udanz