私は OOP の世界に不慣れで、それについてできる限り読んでいて、これほど混乱したことはありません。コードを整理したり、保守性を高めたりするのに最適であることは理解しています.OOPコードをいくつか書いたことがありますが、それが適切かどうかはわかりませんが、正常に動作します.
public
private
関数とextends
およびについて混乱していますconstructors
。私は自分のコードでそれらをまだ使用しておらず、実際の例でそれらを使用する場所がわかりません。読んで理解しようとすればするほど、ますます混乱していきます。私は自分のコードを含めましたが、誰かが間違い、改善、適切な使用法、組織を指摘できるかどうか疑問に思っていました. 多くの経験を持つ誰かが私のコードを見て、私に指針を与えてくれれば、理解を深めるのに役立つと思います.
class userFunctions{
const SALT_LENGTH = 9;
//Retrieves encrypted password from database returns in variable $salt
public function retrievePassword($conn,$username) {
try{
$stmt = $conn->prepare('SELECT `password` FROM `users` WHERE `userName`= :userName');
$stmt->bindValue(':userName', $username);
$stmt->execute();
$salt = $stmt->fetchColumn();
} catch (PDOException $e){
echo 'Connection failed: ' . $e->getMessage();
}
return $salt;
}
//End of retrieve password method
////////////////////////////////////////////////////////////////
//Generate an encrypted password method
public function generateHash($password, $salt = null)
{
if ($salt === null) {
$salt = substr(md5(uniqid(rand(), true)), 0, self::SALT_LENGTH);
} else {
$salt = substr($salt, 0, SALT_LENGTH);
}
return $salt . sha1($salt . $password);
}
//End of generate encrypted password method
////////////////////////////////////////////////////////////////
//Check database for duplicate username
public function userCheck($conn,$userName){
try{
$stmt = $conn->prepare('SELECT COUNT(*) FROM `users` WHERE `userName` LIKE CONCAT("%",:userName)');
$stmt->bindValue(':userName', $userName);
$stmt->execute();
$count = $stmt->fetchColumn();
return $count;
} catch (PDOException $e){
echo 'Connection failed: ' . $e->getMessage();
}
}
//End of Check databade for duplicate username
////////////////////////////////////////////////////////////////
//Add user to database
public function Register($conn,$userName,$encryptedPass){
try{
$stmt = $conn->prepare('INSERT INTO users (userName, password) VALUES (:userName, :password)');
$stmt->execute(array(':userName' => strip_tags($userName), ':password' => $encryptedPass));
} catch (PDOException $e){
echo 'Connection failed: ' . $e->getMessage();
}
}
//End of add user to database
////////////////////////////////////////////////////////////////