<body>
    <div class="login-card">
        <h1>Log-in</h1><br>
        <form action="incident-form.php" method="POST">
            <input type="text" name="username" placeholder="Username">
            <input type="password" name="password" placeholder="Password">
            <input type="submit" name="submit" class="login login-submit" value="Login">
        </form>

        <div class="login-help">
            <a href="#">Register</a> <a href="#">Forgot Password</a>
        </div>
    </div>

</body>
</html>

<?php
    $connect = mysql_connect("localhost", "root", "");
    mysql_select_db("aid");

    if (isset($_POST['submit'])) {
        $username = $_POST['username'];
        $password = $_POST['password'];

        $query = mysql_query("SELECT * FROM users WHERE username='".$username."'");

        if (mysql_num_rows($query) > 0){
            while($row = mysql_fetch_assoc($query)) {
                if ($row = ['password'] == $password){
                    echo "Successfully logged in!";
                }else{
                    echo "Wrong password";
                }
            }
        }else{
            echo "Username not found";
        }
    }
?>

मैं PHP 5.5 के साथ phpMyAdmin का उपयोग कर रहा हूं। मेरा डीबी नाम सहायता और तालिका उपयोगकर्ता है। फॉर्म वहां है, डीबी और टेबल है, लेकिन यह उपयोगकर्ताओं को बिना जांचे सीधे टार्गेट पेज पर जाता है।

-2
Co2 23 नवम्बर 2015, 05:11

3 जवाब

सबसे बढ़िया उत्तर

यह भी कोशिश करें कि उपयोगकर्ता को यह संकेत न दें कि लॉगिन में क्या गलत है, रीडायरेक्ट फ़ंक्शन का उपयोग भी करें यहां है CODE:

if (!function_exists('redirect_to')) {
   function redirect_to($new_location) {
      header("Location: " . $new_location);
      exit;
   } 
}
<?php
$connect = mysqli_connect("localhost", "root", "", "aid");
if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    $query = "SELECT * FROM users";
    $result = mysqli_query($connect, $query);
    while($row = mysqli_fetch_assoc($result)) {
            if ($row['username'] == $username && $row['password'] == $password) {
                echo "Successfully logged in!";
                redirect_to("dashboard.php");
            } else{
                echo "Login Is wrong";
            }
        }
    } else{
        echo "Username/Password not found";
    }
    }
}
?>
0
lyndact 23 नवम्बर 2015, 04:01

पहले अपना action टैग बदलें।

<form action="" method="POST"> <!-- MEANS THAT PAGE WILL SUBMIT ON SELF FIRST -->

यदि आपके लूप के अंदर आपकी स्थिति होनी चाहिए:

if ($row['password'] == $password){

यदि लॉगिन सफल है तो फिर header() का उपयोग उपयोगकर्ता को incident-form.php करने के लिए करें।

header("LOCATION:incident-form.php"); /* PUT THIS INSIDE YOUR IF CONDITION */

कम से कम *_real_escape_string() को रोकने के लिए उपयोग करें SQL इंजेक्शन

$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

लेकिन फिर भी, डिप्रेसेर के बजाय mysqli_* का उपयोग करें {{X1 }} एपीआई।

5
Community 23 मई 2017, 12:23

PHP उस तरह से काम नहीं करता है, जो सर्वर भेजे गए अनुरोध पर प्रक्रिया करता है। आपको अपने कोड को incident-form.php के शीर्ष पर ले जाना होगा और केवल उस सामग्री को दिखाना होगा जब वह लॉग इन करता है या आपको इस कोड को पृष्ठ के बीच में रखना होगा, वहां फॉर्म को इंगित करें और {{का उपयोग करें X1}} कार्य पुनर्निर्देशित करता है या आपको कोड के लिए एक जावास्क्रिप्ट कॉल का निर्माण करना होगा और परिणाम के आधार पर जमा को ब्लॉक करना होगा।

आप के लिए एक समाधान पर विस्तार करने के लिए। आपको तीन पृष्ठों की आवश्यकता होगी

  1. आपका फ़ॉर्म जो लॉगिन-रीडायरेक्ट.php को इंगित करता है
  2. लॉगिन पेज जिसमें निम्नलिखित कोड होता है

    $connect = mysqli_connect("localhost", "root", "", "aid");
    if (isset($_POST['submit'])) {
        $username = $_POST['username'];
        $password = $_POST['password'];
    
        $query = "SELECT * FROM users";
        $result = mysqli_query($connect, $query);
        while($row = mysqli_fetch_assoc($result)) {
            if ($row['username'] == $username && $row['password'] == $password) {
                header("Location: incedent-form.php");
            } else{
                header("Location: login-form.php");
            }
        }
    } else {
        header("Location: login-form.php");
    }
    
    1. घटना-फ़ॉर्म। php
1
dops 23 नवम्बर 2015, 02:42