【问题标题】:PHP and HTML checking if username is in databasePHP和HTML检查用户名是否在数据库中
【发布时间】:2019-03-22 12:29:04
【问题描述】:

我正在尝试解决与 PHP 相关的问题。 到目前为止,我已经创建了一个 html 登录表单 login.html 和一个 PHP 文件 login-insert.php。我无法检测用户名是否已存在于使用 phpmyadmin 创建的数据库中。我对 PHP 编码非常陌生,因此感谢您提供任何帮助

PHP和html代码请参考链接https://liveweave.com/rAE7Cy

【问题讨论】:

  • 此“表单”是否具有将数据发布/获取到login-insert.php 的操作?如果login-insert.php 存在,您可以在这里分享该代码吗?
  • 您的数据库中没有表单,请在此处查看如何制作表单:w3schools.com/html/html_forms.asp
  • 对于你的php脚本,你必须自己做,在这里学习如何使用php连接到你的数据库:w3schools.com/php/php_mysql_connect.asp并在这里执行选择查询:w3schools.com/php/php_mysql_select.asp
  • @tshimkus 看我在描述中分享了我的 login-insert.php 代码链接,请参考。
  • 这里有人可以帮帮我吗?

标签: php html phpmyadmin


【解决方案1】:

第 1 步 创建文件config.php

<?php
   define('DB_SERVER', 'localhost:3036');
   define('DB_USERNAME', 'root');
   define('DB_PASSWORD', 'rootpassword'); //modify it as per your password
   define('DB_DATABASE', 'database'); //modify it as per your databse
   $db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>

第 2 步 创建另一个文件login.php

<?php
   include("config.php");
   session_start();

   if($_SERVER["REQUEST_METHOD"] == "POST") {
      // username and password sent from form 

      $myusername = mysqli_real_escape_string($db,$_POST['uname']);
      $mypassword = mysqli_real_escape_string($db,$_POST['psw']); 

      $sql = "SELECT id FROM admin WHERE username = '$myusername' and password = '$mypassword'";
      $result = mysqli_query($db,$sql);
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
      $active = $row['active'];

      $count = mysqli_num_rows($result);

      // If result matched $myusername and $mypassword, table row must be 1 row

      if($count == 1) {
         session_register("username");
         $_SESSION['login_user'] = $myusername;

         header("location: home.php");
      }else {
         $error = "Your Login Name or Password is invalid";
      }
   }
?>

【讨论】:

  • 感谢伙伴的帮助,但仍然缺少一些东西。第 13 行“$row = mysqli_fetch_array($result,MYSQLI_ASSOC);”第 16 行“$count = mysqli_num_rows($result);”发生了错误。错误为 1。“警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在 C:\xampp\htdocs\copy\login-insert.php 第 13 行给出”和“警告:mysqli_num_rows() 期望参数 1是 mysqli_result,在第 16 行的 C:\xampp\htdocs\copy\login-insert.php 中给出的布尔值"。
  • 嘿,这里有人能帮帮我吗?
【解决方案2】:

使用扩展名 login.php 而不是 login.html 更改文件名,然后在同一页面中通过 ajax 发送变量值

<?php

    // starting the session
    session_start();

    // checking if username and password entered of not
    if(isset($_POST['userid']) && isset($_POST['userpass'])){
        $server = 'server_name';
        $user = 'server_username';
        $pass = 'server_password';
        $db = 'database_name';

        $conn = new mysqli($server, $user, $pass, $db);

        $userid = base64_encode($_POST['userid']);
        $userpass = base64_encode($_POST['userpass']);
        $useremail = $_POST['userid'];

        $q = "SELECT * FROM table_name WHERE UserID='$userid' AND UserPWD='$userpass'";  // Fetching data from table
        $d = mysqli_query($conn, $q);
        if(mysqli_num_rows($d) == 1){
            while ($t = mysqli_fetch_assoc($d)) {
                $_SESSION['login_status'] = 1; // Creating A login status variable in case of logout make this variable value 0
                echo '1';
            }
        }else{
            echo '2';
        }
        mysqli_close($conn);
    }else{  //if username and password not entered
        ?>
            <input type="text" class="userid" placeholder="Username">
            <input type="password" class="userpass" placeholder="Password">
            <a href="#" class="login_btn ">login</a>

            <script>

                $('.login_btn').on('click',function(){
                    var userid = $('.userid').val();
                    var userpass = $('.userpass').val();
                    if(userid != ""){
                        if(userpass != ""){
                            $.ajax({
                                type:'post',
                                data:{
                                    userid:userid,
                                    userpass:userpass,
                                },
                                url:'login.php',  // Sending variable to same page

                                success:function(e){
                                    if(e == 1){ // Userid and password is correct
                                        window.location = 'index.php';
                                    }else if(e == 2){
                                        alert("Invalid Username and password");
                                    }else{
                                        console.log(e);
                                    }
                                }
                            })
                        }else{
                            alert("Password Required");
                        }
                    }else{
                        alert("Username Required");
                    }
                })
            </script>
        <?php        
    }

?>

【讨论】:

  • 如果你能解释我会的
  • liveweave.com/LKpy8a 请检查此链接,到目前为止我已经这样做了。
  • 好像刚刚开始html css
  • 我已经在上面的代码中告诉过你,如果有什么困惑可以专门问
  • 根据您的代码,我已经根据我的数据库名称和表名称进行了一些修改,但仍然缺少一些东西。 liveweave.com/tAOyYg请检查我修改后的代码这段代码包含html和php文件。
猜你喜欢
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 2012-01-26
  • 2021-12-15
相关资源
最近更新 更多