通过 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 - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?