পিএইচপি দিয়ে ছোট্ট ছোট্ট মজার প্রজেক্ট – সিম্পল লগিন সিস্টেম এবং সেশন ক্রিয়েট

শীত ও দেশের দুর্দশার মধ্যেও ভালো আছেন, আশা করি।

পিএইচপি, আমার খুব প্রিয় একটা জিনিস। এইটা নিয়ে খেলতে ভালো লাগে সব সময়। চেষ্টা করবো, পিএইচপি দিয়ে কিছু মজার প্রজেক্ট দেখাতে।

প্রথমেই বানিয়ে নিবো, একটা লগিন সিস্টেম। যেখানে লগিন করা ছাড়া আমাদের নিরাপদ পেজে যাওয়া যাবেনা। ধরা যাক, আমাদের একটা পেজ আছে home.php যেখানে শুধু লগড ইন লোকজন যেতে পারবে। অন্যয় কেউনা। অন্য কেউ যেতে চাইলে তারে বের করে দিবো।

আচ্ছা, শুরুতে এখানে গিয়ে পিএইচপি দিয়ে করা ছোট্ট একটা ফাইজলামী দেখে আসেন। আর  কমেন্টে জানান, আপনার নামের মানে কি দাঁড়ালো! 😀

যা যা লাগবেঃ

- আপনার wamp/xamp সার্ভার।
- কয়েকটা পিএইপি পেজ। ( .php )
- ছোট্ট মোট্ট HTML/CSS ডিজাইন।

শুরু করা যাকঃ

আমি ধরে নিসি আপনি ব্যসিক পিএইচপি, এইচটিএমএল,সিএসএস এসব পারেন।

প্রথমে ডিজাইন দেখে নেই -

simple-login

তারপর wamp/xampp server স্ট্যারট করে ব্রাউজারে localhost/phpmyadmin এ গিয়ে একটা ডাটাবেজ বানাই, “login” নামে। তার ভেতর একটা টেবিল বানাই “tab1” নামে। সেখানে ৩টা কলাম দিয়ে নিচের ছবির মত ডাটা টেবিল বানাই। এর পর SQL এ গিয়ে নিচের ছবির মত বেশ কিছু ইউজারের সাথেসাথে পাসওয়ার্ডও এড করি।

login নামের ডাটাবেজে, tab1 নামে টেবিল ক্রিয়েট। Type গুলো খেয়াল করবেন।
Insert এ ক্লিক করে, ইউজার এড করছি উপরের লেখাটা লিখে।

এরপর লগিন এর জন্য, index.php বানাই, সেটার কোড দেখে নেই-

index.php এর ভেতরের কোড।
index.php এর বাহিরের দিক ( firefox browser )

আচ্ছা, কোডে ২৮-৩৪ নাম্বার লাইন হচ্ছে HTML এ লগিন ফর্ম দেখানোর জন্য। এইটা সবাই বুঝতেসেন। এখান থেকে ইউজার থেকে ইনপুট দিয়ে ডাটা ধরে তা PHP দিয়ে পাঠাবো ডাটাবেজে। সেটা ঠিক থাকলে লগিন হবে, না হলে এরর মেসেজ দিবে।

আচ্ছা, এইবার পিএইচপি কোড এর প্রতি লাইনের নিচে কমেন্ট আউট করে লিখে দিচ্ছি এই লাইনটা কেন লিখলাম।


<?php
if(isset($_POST['username']))
>// যখন ইউজারনেম পাবো
{
session_start();
// সেশন শুরু করছি। শুরু করা সেশন কাজে লাগবে যখন আমি লগডইন হয়ে অন্যয় পেজে যাব, সেখানে যাতে এই
// লোকটা ছাড়া অন্য কেউ না যেতে পারে, তার জন্য।
include('./db.php');
ডাটাবেজ কানেকশানের জন্য এইটা ইনক্লুড করলাম। ঐ পেজে, ডাটাবেজের নাম, ডাটাবেজ ইউজার এক্সস
// ইনফরমেশান দেওয়া আছে।
$qry = mysql_query("SELECT * FROM tab1");
// mySQL কুয়েরি চালিয়ে, ডাটাবেজের সব ডাটা সিলেক্ট করলাম।
$u = array(); //keep username
$p = array(); //keep password

// $u, $p নামে দুইটা এরে নিলাম, যারে আমি এই সিলেক্ট করা ডাটাবেজের ইউজারনেম আর পাসওয়ার্ড গুলো বের করে এনে রাখতে পারি।

$htmlu = $_POST['username'];
 $htmlp = $_POST['password'];
 // ইউজার লগিন পেজে যেই ডাটা দিবে তা উপরের দুই ভদ্র লোক ধরবে।
 $i=0;
 while($row = mysql_fetch_array($qry))
 {
 $u [] = $row['username'];
 $p [] = $row['password'];
 $i++;
 }
 // হোয়াইল লুপ চালিয়ে, ডাটাবেজ এর ইউজার নেম আর পাসওয়ার্ড বের করে আনলাম, যা এখন $u, $p দুইটা এরে'তে জমা আছে। এরপর আমরা ইউজার এর দেওয়া ইনপুট আর ডাটবেজ থেকে বের করে আনাটা চেজ করবো।

// login check
 for( $j=0; $j <= sizeof($u); $j++ ) {
 // একটা ফর লুপ চলবে, $u এরের শেষ পর্যন্ত
 if( $u[$j] == $htmlu && $p[$j] == $htmlp) {
 // ইউজারের দেওয়া ইন্টপুট $htmlu ডাটাবেজের কারও সাথে মিল পেলে এবং $htmlp সেইম রো'র পাসওয়ার্ড এর সাথে মিল পেলে সেশনরে ইউজারের //দেওয়া ইউজার নেম ঢুকিয়ে home.php তে রিডিরেক্ট করবে।
 $_SESSION['username'] = $_POST['username'];
 header('Location: ./home.php');
 }
 }
 echo "
<div>
<h6>RuBin Alert: Wrong Username/Password!</h6>
</div>
";
 // যদি ইউজারনেম ও পাসওয়ার্ড ঠিক না থাকে, তাহলে এরর মেসেজ দেখাবে।

}
 ?>

পরের কাণ্ডঃ

home.php পেজের একদম শুরুতে, নিচের কোড লিখে দিবেন। এরকম যত সিকিউরড পেজ চান, সবখানেই এই কোড এড করে দিবেন শুরুতে।

home.php পেজের শুরুতে এইটা না থাকলে, লগিন না করেও এক্সেস করা যাবে।

লগআউট এর logout.php নামে একটা পেজ বানান তারপর নিচের কোড দিয়ে দেন। আর সিকিউরড পেজের কোথায় এই logout.php লিঙ্ক( <a href="./logout.php">Logout Here </a> )  করে দিবেন।

লগআউট ফর্ম

এতক্ষণ যা করলাম, তার ডেমো এখানে দেখুন।  ইউজারনেমঃ visitor পাসওয়ার্ড demo


লগিন করে, স্ট্যাটাস দিতে ভুলবেন না। 😉

আর হ্যাঁ, কোন প্রশ্ন থাকলে, আমাকে সহজেই পাবেন, এখানে ফেসবুকে।

ভালো থাকবেন। সুখে থাকবেন।
নিরাপদে থাকবেন।

Level 0

আমি Rubel Orion। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 11 বছর 1 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 4 টি টিউন ও 15 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

ধনবাদ ভাই

Level 0

ভাই রেজিস্ট্রেশান ফর্ম বানাবো কিভাবে?

প্রিয় টিউনার,
আপনি টিউনটি যেহেতু কোডিং সংক্রান্ত তাই আপনার টিউনে ব্যবহৃত কোডগুলি সুন্দরভাবে দেখানোর জন্য টেকটিউনস এর রয়েছে “কোড হাইলাইডার”।

টেকটিউনস এ কিভাবে কোড হাইলাইডার ব্যবহার করতে হয় জানতে নিচের টিউনটি পড়তে পারেন এবং কোডগুলি আরো সুন্দর করে সাজাতে পারেন।
https://www.techtunes.io/web-design/tune-id/77692

ধন্যবাদ।
মেতে উঠুন প্রযুক্তির সুরে !

অসাম তো ! তবে আপনার কোডের কয়েক জায়গায় বোধহয় ভুল হয়েছে 😛

    @সাইফুল ইসলাম: ভুলটা ধরায়ে দেন ভাই… পিলিজ… 🙁

db.php er code konta vai?

@Rubel Orion আপনি লুপ দিয়ে userid and pass match korlen কেন? mysql select statment কেন use korlen na? বড় ডাটা বেস হলে তখন কি হবে? আর এখানে মজার কি হলো? @পিএইচপি দিয়ে ছোট্ট ছোট্ট মজার প্রজেক্ট

Level 0

Kajer post

Level 0

@ফখরুল ইসলাম
boro db hole ki array futa hoye jabe? :p tobe jotodur mone hoy hevy soktisali system ta. sql injection prevented ki bolen apnara/Rubel Orion?