Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

लगातार लॉगिन PHP और SQL

सबसे पहले, constants.php . नाम की एक नई फ़ाइल बनाएं ।

<?php
//This is constants.php file
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
define('DB_NAME', 'conference');
?>

आपको id . नामक एक नया कॉलम परिभाषित करना चाहिए जिसमें int type . है और यह है auto_increment तो यह आपकी प्राथमिक कुंजी होगी। प्राथमिक कुंजी अद्वितीय होनी चाहिए और आपकी तालिका में ऐसे कॉलम की कमी है। तो, अपने phpMyAdmin में SQL टैब में लिखें:

ALTER TABLE `users` ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;

फिर, अपनी लॉगिन फ़ाइल में आप अन्य उपयोगकर्ताओं से ऊपर बताए अनुसार पीडीओ का उपयोग कर सकते हैं (यदि आप इसके लिए तैयार नहीं हैं तो आप यहां और यहां )

<?php
function SignIn() {
    require_once("constants.php"); //Now constants will be accessible
    session_start(); 
    try {
        $link = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USER, DB_PASSWORD);
        $username = $_POST['username']; //no need to esaping as we will use prepared statements
        $password = $_POST['password'];
        if (!empty($username) && !empty($password)) {
            //You need to define a new column named "id" which will be int auto_increment and it will be your primary key

            $sql = "SELECT id, username, password FROM users where username = :username AND password = :password";
            //Prepare your query
            $stmt = $link->prepare($sql);
            //Execute your query binding variables values
            $stmt->execute(array(':username'=>$username, ':password'=>$password));
            //Fetch the row that match the criteria
            $row = $stmt->fetch();

            if (!empty($row['username']) && !empty($row['password'])) {
                $_SESSION['is_logged'] = true; //Now user is considered logged in
                $_SESSION['username'] = $row['username'];
                $_SESSION['id'] = $row['id'];

                //Never store passwords in $_SESSION

                echo "Welcome to your User Account for CSIT Conference. Click to go home: ";
                echo '<a href="index.html"> Home Page </a>. ';
                echo "Or here to go to your assigned papers: ";
                echo '<a href="assigned.php"> Assigned Papers </a>. ';
            } else {
                echo "SORRY... YOU ENTERED WRONG ID AND PASSWORD... PLEASE RETRY...";
            }

            $link = null;
        } else {
            echo 'Please enter username and password.';
        }
    } catch(PDOException $e) {
        echo $e->getMessage();
    }
}

if (isset($_POST['submit'])) {
    SignIn();
}
?>

अंत में, आपकी फ़ाइल में assigned_papers.php आप $_SESSION . तक पहुंच सकते हैं वेरिएबल जो आपने पहले ही संग्रहीत कर लिए हैं और फिर उस उपयोगकर्ता के लिए सभी असाइन किए गए कागजात प्राप्त करें जो अभी लॉग इन है।

<?php
//assigned_papers
session_start();
require_once("constants.php"); //Now constants will be accessible
if (!empty($_SESSION['is_logged'])) {
    echo 'Hello, '.$_SESSION['username'].'! Here are your assigned papers: ';

    try {
        $link = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USER, DB_PASSWORD);
        $sql = "SELECT * FROM assigned_papers where users_id = :users_id";
        $stmt = $link->prepare($sql);
        //We want all assigned papers for the particular user
        $stmt->execute(array(':users_id'=>$_SESSION['id']));
        $result = $stmt->fetchAll();
        foreach ($result as $row) {
            //You can echo what you want from table assigned_papers
            //echo '<p>'.$row['paper_name'].'</p>';
        }
    } catch(PDOException $e) {
        echo $e->getMessage();
    }

} else
    header("Location: login.php"); //If user isn't logged in then redirect him to login page
    die();
}
?>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. गिनती संसाधन आईडी #11 . के साथ मैसकल क्वेरी

  2. MySQL कनेक्शन त्रुटि जो मैंने कभी नहीं देखी

  3. MySQL में संग्रहीत फ़्लोट मान गड़बड़ा जाता रहता है

  4. MySQL में सम्मिलित करते समय कॉलम छोड़ें

  5. JSON_OBJECT () - MySQL में कुंजी/मान जोड़े की सूची से JSON ऑब्जेक्ट बनाएं