0

単純なユーザー クラスを作成しようとしていますが、データベース内のデータを取得できません。さまざまなコードを試してみましたが、これがユーザー クラスです。

namespace MonetizeMedia;

class User {
private $uid;
private $fields;

public function __construct() {
    $this->uid = null;
    $this->fields = array('username' => '',
                          'password' => '');
}

public function __get($field) {
    if($field == 'uid')
    {
        return $this->uid;
    }
    else
    {
        return $this->fields[$field];
    }
}

public function __set($field, $value) {
    if(array_key_exists($field, $this->fields))
    {
        $this->fields[$field] = $value;
    }
}

public function createUser() {
    try {

    $db = new \MonetizeMedia\Database;
    $bcrypt = new \MonetizeMedia\Bcrypt(15);

    $sql = "INSERT INTO users(username, password) VALUES(:username, :password)";

    $stmt = $db->prepare($sql);

    $stmt->bindParam(":username", $username);
    $stmt->bindParam(":password", $bcrypt->hash($password));

    $stmt->execute();

    return "Registration Successful";

    } catch ( PDOException $e ) {
        return $e->getMessage();
    }

}

そして登録ページはこちら

<?php

ob_start();
session_start();

include 'classes/user.class.php';

if(isset($_POST['submitted'])) {

$username = $_POST['username'];
$password = $_POST['password'];

$User->username = $username;
$User->password = $password;

if($User->createUser()) {
    echo "DONE!";
}
else
{
    echo "An error occured while creating your account. Please try later.";
    return;
}

}

?>
 <!DOCTYPE html>
 <html>
 <head>

<meta charset="UTF-8" />

<title>Register</title>

 </head>
 <body>

 <form method="post" action="">
 <ul>
<li>
<label for="usn">Username : </label>
<input type="text" name="username" />
</li>

<li>
<label for="passwd">Password : </label>
<input type="password" name="password" />
</li>

<li class="buttons">
<input type="submit" name="register" value="Register" />
</li>

  </ul>
  </form>

 </body>
 </html>

私はphpとpdoを学ぼうとしているので、現時点ではあまり得意ではありません

4

0 に答える 0