我的PHP代码是: -
<?php
/*************************************************
* PHP file for generating index (Login) Page *
*************************************************/
?>
<link href="../assets/css/bootstrap.css" rel="stylesheet" />
<link href="../assets/css/login.css" rel="stylesheet" />
<link href="../assets/css/ajax.css" rel="stylesheet" />
<html>
<head>
<script>
function login_func(form_id)
{
if(Empty_check('gui'))
alert("Please Enter username and password");
else
{
var ajax_object = new Ajax();
var data = ajax_object.create_url_data(form_id);
ajax_object.processPOST('ajax_server/login.php',POST_AJAX_login,data);
}
}
function POST_AJAX_login(response)
{
if(response == '1')
{
window.location.href="homepage.php";
}
else
{
alert("Invalid username or password");
}
}
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<script src="../assets/js/jquery-1.10.2.js"></script>
<script src="../lib_js/ajax.js"></script>
<script src="js/my_javascript.js"></script>
</head>
<body>
<div id="ajax-loader" class="ajax-loader"><img src="../assets/img/loading_apple.gif" class="img-responsive" /></div>
<div class="container">
<div class="row" id="vertical-offset">
<div class="col-md-4 col-md-offset-4">
<div class="panel panel-default">
<div class="panel-heading panel">
<h3 class="panel-title">Please sign in</h3>
</div>
<div class="panel-body">
<form id="gui">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="username" name="username" type="text" required>
</div>
<div class="form-group">
<input class="form-control" placeholder="password" name="password" type="password" required>
</div>
<input class="btn btn-lg btn-success btn-block" type="button" value="Login" onclick="login_func('gui');">
</fieldset>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
登录服务器
<?php
/***************************************************************************
* Login Server *
****************************************************************************/
session_start();
$root=$_SERVER["DOCUMENT_ROOT"];
require_once $root. '/School_Soft/config/ClassConnectDB.php';
$username = $_REQUEST["username"];
$password = $_REQUEST['password'];
$sql = "SELECT * from Admin where admin_id='$username' and password='$password'";
$result = $DB_CONN->query($sql);
if($obj = $result->fetch_object())
{
$_SESSION['user'] =$obj->admin_id;
echo '1';
}
else
echo '0';
?>
相同的代码在Windows中完美运行但在Ubuntu中无法运行...
我使用ajax发送请求以及接收响应。我已经检查过Ajax是否正常工作。
当我在login.php服务器中的require_once语句之前放置die语句时,我得到了我的结果但是我的代码在require_once语句之后没有工作,我想!
答案 0 :(得分:2)
显而易见的答案是,你的套管是错误的。
在Windows上:
require_once $root. '/School_Soft/config/ClassConnectDB.php';
与(或任何套管变化)相同:
'/school_soft/config/classconnectdb.php';
在Linux上,文件系统区分大小写,因此如果大小写错误,则不会对文件进行细化。文件名必须与include中给出的名称完全匹配。
如果我没有在你的代码中提到SQLInjection问题
,我会感觉不舒服$password = $_REQUEST['password'];
$sql = "SELECT * from Admin where admin_id='$username' and password='$password'";
正如我已经多次发布的那样,你可以在这里阅读它
How can I prevent SQL injection in PHP?
<强>更新强>
我唯一能想到的是因为这包括一个连接到DB的文件(基于名称)
require_once $root. '/School_Soft/config/ClassConnectDB.php'
本地数据库和实时数据库可能需要不同的凭据。因此,您获得数据库连接错误并非不可能,但只是看不到它。但是,这只是猜测。
在任何一种情况下,您都应该启用错误报告
ini_set('display_errors', 1);
error_reporting(-1);
这可能会告诉你发生了什么。