3

そこで、PHP でゼロから Web サイトを構築し、テストに WAMP サーバーを使用しました。

すべてがローカルホストで機能していますが、コードをサーバーにアップロードした後、データベースへの接続を使用するすべてが機能しません。

PHPのPOSTがサーバーで機能しているかどうかを確認しましたが、機能しており、php.iniグーグルでいくつかの構成を変更し、これを実行しました:

register_globals = off; (was default)

allow_url_fopen = on; (was default)

magic_quotes_gpc = off; (was default)

フォームコード

http://i.imgur.com/k5kMx9N.png

クラス内のログイン関数

function LoginUser($UserName, $Password)
{
    //Protect from SQL Injection
    $clientusername = stripslashes(mysql_real_escape_string($UserName));
    $clientpassword = stripslashes(mysql_real_escape_string($Password));

    $clientusername = trim($clientusername);
    $clientpassword = trim($clientpassword);

    if($clientusername != "" && $clientusername != "Username" && $clientpassword != "" && $clientpassword != "Password")
    {           
        $this->ConnectToMySQL();
        $sql = "SELECT * FROM Users WHERE UserName = '" . $clientusername . "' AND Password = '" . $clientpassword . "'";
        $result = mysqli_query($this->DBConnection, $sql);
        mysqli_close($this->DBConnection);      
        // Mysql_num_row is counting table row      
        $count = mysqli_num_rows($result);
        // If result matched $myusername and $mypassword, table row must be 1 row
        if($count == 1){
            if(!isset($_SESSION))
                session_start();
            $row = mysqli_fetch_array($result);
            $_SESSION['ID'] = session_id();
            $_SESSION['timeout'] = time();
            session_write_close();
            return("O seu login foi feito com sucesso.</br></br><a href='privatemenu.php'>Ir para o Menu</a>");
        }
        else return("Não foram encontrados utilizadores com os dados fornecidos.</br></br><a href='login.php'>Voltar á pagina de Login</a>");

    }
    else return("Ocorreu um erro com a entrada dos seus dados.</br></br><a href='login.php'>Voltar á pagina de Login</a>");
}

したがって、問題はこれです。関数は常にログイン関数で「Ocorreu um erro com a entrada dos seus dados」というテキストを返します。

ログインデータを書き込み、ログインボタンを押します。同じフォームでテストした投稿が機能し、フォームからの投稿を別のページにエコーしますが、機能が最初に通過することはありません。

それは関数によるものではないと思うので、助けていただければ幸いです。データベースに挿入するだけで、まったく同じことを行う別の関数があります。そして奇妙なのは、データがページを正しく通過していることです。

これについて何か混乱している場合は、私に尋ねてください。よりよく説明できます。


したがって、Paddyd のおかげで、正しいコードは完全に機能しています。

function LoginUser($UserName, $Password)
{
    //Protect from SQL Injection
            $this->ConnectToMySQL();
    $clientusername = stripslashes(mysqli_real_escape_string($this->DBConnection, $UserName));
    $clientpassword = stripslashes(mysqli_real_escape_string($this->DBConnection, $Password));

    $clientusername = trim($clientusername);
    $clientpassword = trim($clientpassword);

    if($clientusername != "" && $clientusername != "Username" && $clientpassword != "" && $clientpassword != "Password")
    {           
        $sql = "SELECT * FROM Users WHERE UserName = '" . $clientusername . "' AND Password = '" . $clientpassword . "'";
        $result = mysqli_query($this->DBConnection, $sql);
        mysqli_close($this->DBConnection);      
        // Mysql_num_row is counting table row      
        $count = mysqli_num_rows($result);
        // If result matched $myusername and $mypassword, table row must be 1 row
        if($count == 1){
            if(!isset($_SESSION))
                session_start();
            $row = mysqli_fetch_array($result);
            $_SESSION['ID'] = session_id();
            $_SESSION['timeout'] = time();
            session_write_close();
            return("O seu login foi feito com sucesso.</br></br><a href='privatemenu.php'>Ir para o Menu</a>");
        }
        else return("Não foram encontrados utilizadores com os dados fornecidos.</br></br><a href='login.php'>Voltar á pagina de Login</a>");

    }
    else return("Ocorreu um erro com a entrada dos seus dados.</br></br><a href='login.php'>Voltar á pagina de Login</a>");
}
4

1 に答える 1