0

接続.php

<?php
$host = "localhost";
$user = "root";
$pass = "mikred###";
$db = "itsupportdb";

$mysqli = new mysqli($host, $user, $pass, $db);
if(mysqli_connect_errno())
{
    printf("Connection Failed: %s\n", mysqli_connect_error());
    exit();
}
?>

glbLoginFunct.php

<?php
        include("connection.php");  
        class Functions {

            public static function __Login()
            {           
                session_start();

                if(isset($_POST['btnLogin']))
                {           
                    $id = $_POST['user'];
                    $pass = $_POST['pass'];

                    $query = $mysqli->prepare("SELECT * FROM syslogin WHERE username=? AND password=? LIMIT 1");
                    $query->bind_param('ss', $id, $pass);
                    $query->execute();
                    $query->bind_result($id, $pass);
                    $row = $query->fetch();
                    if($row == true) 
                    {
                        $_SESSION['LogID'] = 1;
                        $_SESSION['ProfID'] = 2;
                        header('Location: test.php');
                        exit();
                    }
                    else 
                    {
                        ?><script type="text/javascript"> alert('ERROR!'); </script><?php
                    }
                }
            }

        }
    ?>

mainLogin.php

<?php require("includes/glbLoginFunct.php"); ?>
<form action="<?php $_PHP_SELF ?>" method="POST">
<fieldset>
    <legend>LOGIN FORM:</legend>
    <label id="user">Username: <input type="text" name="user" maxlenght="10"/></label><br />
    <label id="pass">Password: <input type="password" name="pass" maxlenght="7"/></label><br />
    <label id="buttons"><input type="submit" class="imgBtn" name="btnLogin" value="Login User"/></label><br />              
    <a href="index.php?link=Forgot">Forgot Password</a>
</fieldset>
</form>
<?php Functions::__Login() ?>

なぜそれは言うのですか:

注意: 未定義の変数: 14 行目の ...\includes\glbLoginFunct.php の mysqli

致命的なエラー: 14 行目の ...\includes\glbLoginFunct.php の非オブジェクトに対するメンバ関数 prepare() の呼び出し

4

1 に答える 1

0

$mysqli関数のパラメーターを作成するか、次のように入力します。

global $mysqli;

関数の先頭に__Login

ところで、関数にその名前を使用しないでください。Magic Methodsのドキュメントから:

注意: PHP は、__ で始まるすべての関数名を魔法のように予約しています。ドキュメント化された魔法の機能が必要でない限り、PHP では関数名に __ を使用しないことをお勧めします。

于 2013-11-11T03:22:38.580 に答える