Mfumo Kamili wa Login kwa PHP (Step by Step)

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&lt;/p&gt;
";

πŸ‘‰ 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&quot;;
πŸ” 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&lt;/p&gt;
";
πŸ” 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&quot;;
πŸ” 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 πŸš€