-1

一日中このコードと戦っていたので、ほとんどのバグが解決されましたが、今ではこのエラーメッセージが表示されます

致命的なエラー: 26 行目の /home/jsnow/public_html/registration.php の非オブジェクトに対するメンバー関数 prepare() の呼び出し

これが私のコードです:

<?php

if(isset($_POST['username']) && isset($_POST['password']))
{
$db =connect('********','*********');
if($db!=false)
{
   register($db);
   echo "User registered";
}

}

function connect($dbuser,$dbpassword)
{
    try{
        $db = new PDO('mysql:host=localhost;dbname=jsnow_login', '*******' , '*********');
        return $db;
    }catch(PDOException $e){
        echo $e;
        return false;}
}

function register($db)
{
    $result_set = $pdo->prepare("INSERT INTO `users` (`username`, `password`) 
                            VALUES (:username, :password)");
 $result_set->execute(array(
':username' => $username, ':password' => $password
));

}




?>


<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="http://vps8383.***********.com/~jsnow/registration.php" method="post">
username:<input type="text" name="username"/>
password:<input type="password" name="password"/>
email<input type="text" name="e_mail"/>
<input type="submit"/>

</form>


</body>
</html>
4

1 に答える 1

1

の中register()$pdoは、定義されていません。代わりに次を使用します。

$result_set = $db->prepare("INSERT INTO `users` (`username`, `password`) 
                        VALUES (:username, :password)");

$sername関数内でおよび変数が初期化されないことに関して、$password関数定義を次のように変更します。

function register($db,$username,$password)

次のように呼び出します。

register($db,$_POST['username'],$_POST['password']);
于 2013-10-16T20:39:45.580 に答える