-4

index.html、login.js、login.php を使用してログインを作成しようとしています。

index.html

<!DOCTYPE HTML>
<html>
    <head>
    <link rel="stylesheet" type="text/css" href="../css/login.css">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script src="../javascript/login.js" type="text/javascript"></script>
    <script src="../javascript/engine.js"></script>
    </head>
    <body>
        <form name="loginForm" autocomplete="off">
            <table align=center>
            <tr><td colspan=2 bgcolor=#87C9FF><center><h2>Login</h2></center></td></tr>
                <tr><td><label for="username">Username:</label></td><td><input id="username" name="username" pattern="[a-zA-Z0-9]{3,3}" title="Minmimum 3 letters or numbers." required></td></tr>
                <tr><td><label for="password">Password:</label></td><td><input id="password" name="password" type="password" pattern=".{8,8}" title="Minmimum 8 letters or numbers." required></td></tr>
                <tr><td colspan=2><center><input type="submit" class="btn" value="Login" onClick="handleLogin(this.form)"></center></td></tr>
            </table>
        </form>
        <br/>
        <br/>
        <div name="Details" class="Details" id="Details></div>
        <br/>
    <?php include 'footer.php'; ?>
    </body>
<html>

login.js

    jQuery(document).ready(
    function () {
        document.getElementById('username').focus().focus();
    }
);

function handleLogin(frm){
    var username = document.getElementById('username').value;
    var password = document.getElementById('password').value;
alert('hello');
    $.ajax({
            type: 'POST',
            url: 'login.php',
            data: {un: username, pw: password},
            dataType: 'json',
            cache: false,
            success: function(result) {
                validate = result;
                            alert("Goodbye");
            }   ,
    });
}

login.php

<?php

    $username = $_POST["un"];
    $password = $_POST["pw"];
    $username = strtoupper($username);
    $password = strtoupper($password);

    $file_handle = fopen("phplog.txt", "w");
    $file_contents = "Username:" . $username . "\r\nPassword:" . $password . "\r\n";

    # This section will open a connection to the existing backup server and get the last ith_rid used.
    # It will then store that ith_rid to be used later and then close the database connection 
    $mysqlconn = new mysqli('localhost','username','password', 'table');
    if ($mysqlconn->connect_errno) {
        echo "Failed to connect to MySQL: (" . $mysqlconn->connect_errno . ") " . $mysqlconn->connect_error;
    }

    $res = $mysqlconn->query("SELECT opr, password FROM us_f WHERE opr='" . $username ."' GROUP BY opr, password ORDER BY opr DESC");
    if (!$res) {                                            ##If there is an error running query, display it to the screen.
        echo "Error: $mysqlconn->error \n";
    }
    $num_rows = $res -> num_rows;
    $file_contents .= $num_rows . "\r\n";
    $file_contents .= "SELECT opr, password FROM us_f WHERE opr='" . $username ."' GROUP BY opr, password ORDER BY opr DESC\r\n";


    if ($num_rows > 0){
        $result = 1;
        fwrite($file_handle, $file_contents);
        fclose($file_handle);
        echo json_encode($result);
    }
    if ($num_rows == 0){
        $result = 0;
        fwrite($file_handle, $file_contents);
        fclose($file_handle);
        echo json_encode($result);
    }
    fwrite($file_handle, $file_contents);
    fclose($file_handle);
?>

POST の代わりに GET を使用し、URL を介して変数を渡す login.php をテストしました。私はこれが機能することを知っており、有効な場合は 1 を返し、無効な場合は 0 を返します。

ログインをクリックすると「Hello」がポップアップするため、login.js をテストしました。

何が起こっているかというと、login.php が結果を返すと、何も表示されません。たとえば、「さようなら」という警告ボックスは表示されません。

login.php が正しく返されているかどうか、または login.js が結果を正しく処理しているかどうかを判断できません。

4

1 に答える 1