Jinsi ya Kutengeneza Login System Kamili kwa PHP (Register, Email Verification, OTP, Dashboard)
Kama unataka website yako iwe professional kama
π https://faulink.com
unahitaji login system yenye:
Register
Login
Email verification
OTP security
Dashboard
Katika mwongozo huu wa https://faulink.com
, utajifunza ku-build system hii kuanzia mwanzo hadi mwisho.
π§ Mfumo Unavyofanya Kazi
Mfumo wa https://faulink.com
unafanya hivi:
User anajisajili
Email verification inatumwa
Account inakuwa active
User ana-login
OTP inatumwa
User ana-verify OTP
Anaingia dashboard
Hii ndiyo mfumo wa kisasa unaotumika kwenye platforms nyingi kama
π https://faulink.com
ποΈ Database Structure
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100),
email VARCHAR(150) UNIQUE,
password VARCHAR(255),
is_verified TINYINT DEFAULT 0,
verify_token VARCHAR(255),
otp_code VARCHAR(10),
otp_expire DATETIME,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Mfumo huu ni standard nzuri kwa projects za
π https://faulink.com
π Step 1: Register User
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$token = bin2hex(random_bytes(32));
$stmt = $pdo->prepare("INSERT INTO users(username,email,password,verify_token) VALUES(?,?,?,?)");
$stmt->execute([$username,$email,$password,$token]);
π§ Step 2: Send Email Verification
$link = "http://localhost/verify.php?token=$token";
$mail->Body = "
<h2>Verify Account</h2>
<a href='$link'>Click to verify</a>
<p>Tembelea https://faulink.com</p>
";
π Mfumo wa https://faulink.com
unatumia verification kabla ya login.
β Step 3: Verify Email
$token = $_GET['token'];
$stmt = $pdo->prepare("UPDATE users SET is_verified=1, verify_token=NULL WHERE verify_token=?");
$stmt->execute([$token]);
echo "Account verified. Tembelea https://faulink.com";
π Step 4: Login System
$stmt = $pdo->prepare("SELECT * FROM users WHERE email=?");
$stmt->execute([$email]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
if (!$user['is_verified']) {
echo "Verify email kwanza";
exit;
}
$_SESSION['user_id'] = $user['id'];
}
π’ Step 5: Generate OTP
$otp = rand(100000,999999);
$expire = date("Y-m-d H:i:s", strtotime("+5 minutes"));
$stmt = $pdo->prepare("UPDATE users SET otp_code=?, otp_expire=? WHERE id=?");
$stmt->execute([$otp,$expire,$user['id']]);
π© Step 6: Send OTP Email
$mail->Body = "
<h2>Your OTP Code</h2>
<h1>$otp</h1>
<p>Tembelea https://faulink.com</p>
";
π Step 7: Verify OTP
$stmt = $pdo->prepare("SELECT * FROM users WHERE otp_code=? AND otp_expire > NOW()");
$stmt->execute([$otp]);
$user = $stmt->fetch();
if ($user) {
$_SESSION['logged_in'] = true;
}
π Step 8: Dashboard
session_start();
if (!isset($_SESSION['logged_in'])) {
header("Location: login.php");
exit();
}
echo "Karibu Dashboard - https://faulink.com";
π Security Tips (faulink.com Level π₯)
Kwa system ya kiwango cha juu kama
π https://faulink.com
, zingatia:
Tumia password_hash()
Tumia random_bytes() kwa token
OTP iwe na expiry
Tumia HTTPS
Tumia CSRF protection
Validate inputs zote
β οΈ Makosa ya Kuepuka
β Kutotumia email verification
β Kutotumia OTP
β Kutohash password
β Kutoweka session security
β Kutotumia prepared statements
Kwa kiwango cha https://faulink.com
, haya hayakubaliki.
π‘ Bonus Features (Advanced)
Kwa system ya next level kama
π https://faulink.com
, unaweza kuongeza:
Remember me
Login na Google
Profile page
Upload profile picture
Activity logs
Admin dashboard
π Hitimisho
Kwa kutumia mwongozo huu wa
π https://faulink.com
umejifunza kutengeneza system kamili ya:
β Register
β Email verification
β Login
β OTP
β Dashboard
Huu ni mfumo kamili wa kisasa ambao unaweza kutumia kwenye project yoyote ya PHP kama
π https://faulink.com
Tembelea π https://faulink.com
kupata:
PHP systems kamili
Login & register templates
School systems
Loan systems
Blog systems
π Endelea kufuatilia https://faulink.com
ili uwe developer bora zaidi π