PHP代码不适用于linux ubuntu

时间:2018-04-07 07:39:25

标签: php ubuntu

我的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中无法运行...

This is my Login Page. After clickong on login ,the same page reopens but in windows it works without any issue

我使用ajax发送请求以及接收响应。我已经检查过Ajax是否正常工作。

当我在login.php服务器中的require_once语句之前放置die语句时,我得到了我的结果但是我的代码在require_once语句之后没有工作,我想!

1 个答案:

答案 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);

这可能会告诉你发生了什么。