通过 JQuery 运行外部 php mysql 查询时出错

Posted

技术标签:

【中文标题】通过 JQuery 运行外部 php mysql 查询时出错【英文标题】:Error when running external php mysql query through JQuery 【发布时间】:2015-09-19 10:50:10 【问题描述】:

嘿,我正在使用 JQuery 调用文件“login.php”。当我在弹出模式上单击登录时,我收到错误

Access denied for user 'urbanas8'@'localhost' (using password: NO)

当我知道与数据库的连接是正确的并且它可以与不调用外部 PHP 文件的其他页面一起工作时。我不明白为什么会发生这个错误,但也许你们中的一个人可以告诉我这里发生了什么?

登录模式

<!--LOGIN MODAL -->
<?php require_once( "./inc/connect.inc.php" ); ?>
<div class="modal fade col-sm-4 col-sm-offset-4" id="login" role="dialogue">
    <div class="modal-dialogue">
        <div class="modal-content">
        <form action="" method="POST">
            <div class="modal-header">
                <h4>Login</h4>
            </div>
            <div class="modal-body row">    
                <div class="form-group">
                    <div class="col-sm-12">
                        <input type="text" class="form-control" id="userName" placeholder="email address">
                    </div>
                    <div class="col-sm-12">
                        <input type="password" class="form-control" id="userPassword" placeholder="password">
                    </div>
                    <!-- END ADDRESS FORM -->
                </div>
            </div>
            <div class="modal-footer">
                            <button type="button" class = "btn btn-warning" id="loginButton" value="login" name="/login">Login</button><a class = "btn btn-warning" data-dismiss = "modal">Cancel</a>
            </div>
                </form>
                <script>
                $(document).ready(function()
                    $("#loginButton").click(function()
                        console.log("test123");
                        var username = $("#userName").val();
                        var password = $("#userPassword").val();
                        $.post("../login.php", login:username, password:password, function(data)
                        console.log(data);
                    );
                );
            );
            </script>
        </div>
    </div>
</div>

login.php

<?php   

if(isset($_POST['login']))
    echo "<br>login is set<br>";
    $user_login = strip_tags($_POST['login']);  
    echo $user_login."<br>";
    $password_login = strip_tags($_POST['password']);
    echo $password_login."<br>";
    $password_login = md5($password_login);
    echo $password_login."<br>";
    $sql = mysql_query("SELECT * FROM users WHERE email='$user_login' AND password='$password_login' LIMIT 1") or die(mysql_error());
    $userCount = mysql_num_rows($sql);
    echo $userCount."<br>";
    if($userCount == 1)
        while($row = mysql_fetch_array($sql))

            $user_id = $row["id"];
            $user_fname = $row["first_name"];
            $user_lname = $row["last_name"];
            $user_membersince = $row["date"];

        

        $_SESSION['user_email'] = $user_login;
        $_SESSION['user_fname'] = $user_fname;
        $_SESSION['user_lname'] = $user_lname;
        $_SESSION['user_membersince'] = $user_membersince;

        echo("logged in!");

    else 
        echo("invalid username/password");
    

?>

connection.inc.php

<?php
$db = mysql_connect("localhost:3306", "urbanas8_login", "Ure1982*") or die(mysql_error);
mysql_select_db('urbanas8_db', $db) or die(mysql_error());
?>

【问题讨论】:

login.php上没有定义连接 【参考方案1】:

登录mysql的用户名有问题。您的错误消息显示用户名“urbanas8”,但您的连接文件显示“urbanas8_login”。

您没有在 login.php 中包含文件“connection.inc.php”

我建议你使用 mysqli 而不是 mysql。它已被弃用。

<?php 
//conection: 
$link = mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($link)); 

//consultation: 

$query = "SELECT name FROM mytable" or die("Error in the consult.." . mysqli_error($link)); 

//execute the query. 

$result = $link->query($query); 

//display information: 

while($row = mysqli_fetch_array($result))  
  echo $row["name"] . "<br>"; 
 
?> 

【讨论】:

我已经通过 connection.inc.php 连接了。我将代码添加到 login.php 的顶部并得到了相同的结果。 我该怎么做?我将发布我的连接文件 这就是登录名,connection.php 在所有其他页面上都可以正常工作 您的错误消息显示的用户名与您的连接文件不同,请参阅@MichaelCollins 你认为这是为什么呢?

以上是关于通过 JQuery 运行外部 php mysql 查询时出错的主要内容,如果未能解决你的问题,请参考以下文章

jQuery / PHP - 从外部页面嵌入图像

使用jQuery计时器通过PHP检查数据库以获取新记录?

MySQL 使用 XAMPP 连接到外部数据库

jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?

jQuery+PHP+MySQL实现二级联动下拉菜单

在 jQuery 中附加外部 PHP 文件