সর্বশেষ সম্পাদনা করেছেন ????????????? (১৬-০৬-২০০৮ ১৩:৫৭)

টপিকঃ স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

টিউটোরিয়ালের ৩য় পর্বে স্বাগতম।

এই পর্বে আমরা একটি রেজিষ্ট্রেশন ফরম বানানো শুরু করব।
কাজের সুবিধার্থে আমরা প্রজেক্টটিকে কয়েকভাগে ভাগ করে নেই।
১)দুটি ইনপুট বক্স তৈরি করে তাদের মান দুটি ভেরিয়েবলে সংরক্ষন করা।
২)ডেটাবেজ তৈরি করে তাতে টেবিল তৈরি করা।
৩)টেবিলে ভেরিয়েবলদ্বয়ের মান সংরক্ষন করা।

আজ ইনপুট বক্স তৈরি করে তার মান ভেরিয়েবলে সংরক্ষন করার নিয়ম শিখব।
প্রথমে test3.htm নামে ফাইল তৈরি করে তাতে নিচের কোড টাইপ করে সেভ করুন।

<html>
<head>
<title>UserName</title>
</head>
<body>
<form method="POST" action="test3.php">
  UserName <input type="text" name="username" size="20"></p>
    <p><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>
</body>
</html>

যেহেতু এটা পিএইচপি টিউটোরিয়াল তাই এখানে এইচটিএমএল কোডের ব্যাখ্যা দিলাম না।তবে এখানে ৩নং লাইনটি গুরুত্বপূর্ণ তাই এর ব্যাখ্যা দেওয়া হল।
এখানে action="test3.php" দ্বারা এই ফরমের মান test3.php ফাইলের নিকট পাঠানো হয়েছে।
পিএইচপিতে নেটওয়ার্কের মধ্য দিয়ে ডেটা প্রেরণের জন্য দুটো মেথড ব্যবহার করা হয়।POST ও GET  মেথড।GET  মেথড এ তথ্য URL হিসেবে সার্ভারের কাছে যায় তাই এটা ব্যবহার করা নিরাপদ নয়।তাই আমরা এখানে POST মেথড ব্যবহার করেছি। method="POST" দ্বারা এটাই নির্দিষ্ট করা হয়েছে।

এবার test3.php নামে ফাইল তৈরি করে তাতে নিচের কোড যোগ করুন।

<?php
$username=$_POST[‘username’];
echo $username;
?>

ব্যাখ্যা
২য় লাইনে test3.htm ফাইলের username নামক টেক্সটবক্সের প্রদত্ত মানকে $username ভেরিয়েবলে ধারন করা হয়েছে।বিশেষভাবে লক্ষ্যকরুন যে test3.htm এর  টেক্সটবক্সের নাম যদি username না হয়ে t1 হত তাহলে [‘’] এর মধ্যে username এর বদলে t1 হত।অর্থাৎ [‘’] এর মধ্যে সর্বদা কাঙ্খিত টেক্সটবক্সের নাম হবে।

এখন ৩নং কোডকে নিচের কোড দ্বারা পরিবর্তন করতে পারেন।

echo “Username is”.$username;

এখন ফলাফল দেখুন।
এখানে ডট(.) দ্বারা দুটো স্ট্রিংকে(একাধিক অক্ষরের সমষ্টি) যুক্ত করা হয়েছে।

এবার আজকে শেখা বিষয়গুলো বিভিন্নভাবে অনুশীলন করুন।

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

এখানে action="test3.php" দ্বারা এই ফরমের মান test3.php ফাইলের নিকট পাঠানো হয়েছে।

এবার text3.php নামে ফাইল তৈরি করে তাতে নিচের কোড যোগ করুন।

এটি মনে হয় text3.php এর পরিবতে test3.php নামে সেইভ করতে হবে।

রক্তের গ্রুপ AB+

microqatar'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

সর্বশেষ সম্পাদনা করেছেন microqatar (১৬-০৬-২০০৮ ১৩:৫৬)

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

১)দুটি ইনপুট বক্স তৈরি করে তাদের মান দুটি ভেরিয়েবলে সংরক্ষন করা।

করলাম

২)ডেটাবেজ তৈরি করে তাতে টেবিল তৈরি করা।

একটা ডেটাবেজ তৈরি করে রাখলাম ( হে হে আগে ভাগেই করে ফেললাম), টেবিল এখনো করি নাই। আপনার নিদেশমালার জন্য অপেক্ষা করছি।

৩)টেবিলে ভেরিয়েবলদ্বয়ের মান সংরক্ষন করা।

এইটা কখন করবো, জলদি গুরু, করো শুরু

রক্তের গ্রুপ AB+

microqatar'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

microqatar লিখেছেন:

এখানে action="test3.php" দ্বারা এই ফরমের মান test3.php ফাইলের নিকট পাঠানো হয়েছে।

এবার text3.php নামে ফাইল তৈরি করে তাতে নিচের কোড যোগ করুন।

এটি মনে হয় text3.php এর পরিবতে test3.php নামে সেইভ করতে হবে।

অনাকাঙ্খিত ভুল ধরিয়ে দেওয়ার জন্য ধন্যবাদ।

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

microqatar লিখেছেন:

১)দুটি ইনপুট বক্স তৈরি করে তাদের মান দুটি ভেরিয়েবলে সংরক্ষন করা।

করলাম

২)ডেটাবেজ তৈরি করে তাতে টেবিল তৈরি করা।

একটা ডেটাবেজ তৈরি করে রাখলাম ( হে হে আগে ভাগেই করে ফেললাম), টেবিল এখনো করি নাই। আপনার নিদেশমালার জন্য অপেক্ষা করছি।

৩)টেবিলে ভেরিয়েবলদ্বয়ের মান সংরক্ষন করা।

এইটা কখন করবো, জলদি গুরু, করো শুরু

পরীক্ষার কারনে বেশি পোস্ট করতে পারছি না।আগামীকাল ২য় অংশ পোস্ট করবো ইনশাআল্লাহ।

সর্বশেষ সম্পাদনা করেছেন microqatar (১৬-০৬-২০০৮ ১৪:১৭)

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

কোড:
  1. echo “Username is”.$username;

অথা্ৎ

<?php
  $username=$_POST[‘username’];
   echo “Username is”.$username;
   ?>

এটা প্রয়োগ করে , সাবমিট বাটনে ক্লিক করলে নিচের মতে এরর আসে

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\wamp\www\test3.php on line 3

কিন্তু আগেরটা
কোড:
  1. <?php
  2. $username=$_POST[‘username’];
  3. echo $username;
  4. ?>
দিয়ে করলে কোন ইরর ম্যাসেজ আসে না। তবে পেইজও কিছু দেখা যায় না, অথাৎ ব্ল্যাঙ্ক পেইজ আসে। thinking

রক্তের গ্রুপ AB+

microqatar'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

স্পাইডার ভাই, আপনার পরীক্ষা আগে, ভালমত পরীক্ষা দিন। আমরা তো আছি। একটু না হয় ধৈর্য্য ধরলাম। পরীক্ষার পড়া রেখে টিউটরিয়াল লিখা ঠিক না।

কাতার ভাই, গড়াগড়ি থামায় একটু উঠে বসেন।;q

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

মহাকাল লিখেছেন:

কাতার ভাই, গড়াগড়ি থামায় একটু উঠে বসেন।;q

rollbrokenheartnailbiting:">:">:">:">
উঠে বসার চেষ্টা করছি। donttell

রক্তের গ্রুপ AB+

microqatar'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

microqatar লিখেছেন:

কোড:
  1. echo “Username is”.$username;

অথা্ৎ

<?php
  $username=$_POST[‘username’];
   echo “Username is”.$username;
   ?>

এটা প্রয়োগ করে , সাবমিট বাটনে ক্লিক করলে নিচের মতে এরর আসে

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\wamp\www\test3.php on line 3

কিন্তু আগেরটা
কোড:
  1. <?php
  2. $username=$_POST[‘username’];
  3. echo $username;
  4. ?>
দিয়ে করলে কোন ইরর ম্যাসেজ আসে না। তবে পেইজও কিছু দেখা যায় না, অথাৎ ব্ল্যাঙ্ক পেইজ আসে। thinking

আপনি সম্ভবত কোডটি এই পোস্ট থেকে কপি করেছেন।
কপি না করে নিজে একটি ফাইল তৈরি করে লিখুন।তাহলে আশাকরি সমস্যা হবে না।

১০

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

মহাকাল লিখেছেন:

স্পাইডার ভাই, আপনার পরীক্ষা আগে, ভালমত পরীক্ষা দিন। আমরা তো আছি। একটু না হয় ধৈর্য্য ধরলাম। পরীক্ষার পড়া রেখে টিউটরিয়াল লিখা ঠিক না।

আপনাদেরকে হয়তো একটু ধৈর্য ধরতে হবে।সামনে টানা চারটি পরীক্ষা আছে।এই কদিন পোস্ট করতে পারব না।২৫ তারিখের পরে আবার পোস্ট করবো।

@কাতার ভাই
আপনার সমস্যার সমাধান হলো কিনা জানান।
আর একটু ধৈর্য ধরুন।২৫ তারিখে কয়েকটা টিউটোরিয়াল একসাথে পোস্ট করবো ইনশাআল্লাহ।

১১

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

<?php
 $username=$_POST[‘username’];
 echo $username;
 ?>

শেখার জন্য নিজের কম্পিউটারে এ ধরনের ছোট উদাহরণ ঠিক আছে। কিন্তু যখন কোন সাইট বানাবেন ভুলেও এ ধরনের কোড লিখবেন না। বা এ ধরনের কোন কোড কোন সার্ভারে রাখবেন না।

username এ যদি কেউ কোন জাভাস্ক্রিপ্ট ঢুকিয়ে দেয় কী হতে পারে, ভেবে দেখুন। এ ধরনের হ্যাকিং/ক্র্যাকিংকে বলে ক্রস সাইট স্ক্রিপ্টিং।

১২

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

আলমগীর লিখেছেন:
<?php
 $username=$_POST[‘username’];
 echo $username;
 ?>

শেখার জন্য নিজের কম্পিউটারে এ ধরনের ছোট উদাহরণ ঠিক আছে। কিন্তু যখন কোন সাইট বানাবেন ভুলেও এ ধরনের কোড লিখবেন না। বা এ ধরনের কোন কোড কোন সার্ভারে রাখবেন না।

username এ যদি কেউ কোন জাভাস্ক্রিপ্ট ঢুকিয়ে দেয় কী হতে পারে, ভেবে দেখুন। এ ধরনের হ্যাকিং/ক্র্যাকিংকে বলে ক্রস সাইট স্ক্রিপ্টিং।

ধরুন আমি টেক্সটবক্স থেকে ইনপুট নিয়ে ডেটাবেসে জমা করব।তাহলে ইনপুট নেওয়ার জন্য কি কোড ব্যবহার করব?

১৩

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

মহাকাল লিখেছেন:

স্পাইডার ভাই, আপনার পরীক্ষা আগে, ভালমত পরীক্ষা দিন। আমরা তো আছি। একটু না হয় ধৈর্য্য ধরলাম। পরীক্ষার পড়া রেখে টিউটরিয়াল লিখা ঠিক না।

পুরোটাই ব্যক্তিগত মতামত। কেউ এটাকে নিয়ম বা রুল ভেবে বসবেন না। মহাকালের কথাটা প্রসঙ্গ মাত্র, কিন্তু বলছি সবাইকে উদ্দেশ্য করেই।

কেউ স্বতঃস্ফুর্তভাবে কিছু করা শুরু করলে শুরুতেই এমন ১০০% অনুৎসাহব্যাঞ্জক কথা বলা ঠিক না। shame
বাঙ্গালী (না বাংলাদেশি) এসব কথা বলায় খুব পটু। এসবই সকল ভাল উদ্যোগকে গোড়াতেই নষ্ট করে দেয়। নিজের মধ্যে যে ক্রেজটা থাকে তা যদি নষ্ট হয়, সেটা আর কোন দিনই আসবে না।  উদ্যোক্তাকে নিজের মত চলতে দিন। তাহলে ভাল কিছু বেরিয়ে আসবে।

Feed থেকে ফোরাম সিগনেচার, imgsign.com
ব্লগ: shiplu.mokadd.im
মুখে তুলে কেউ খাইয়ে দেবে না। নিজের হাতেই সেটা করতে হবে।

শিপলু'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

১৪

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

স্পাইডারম্যান লিখেছেন:

ধরুন আমি টেক্সটবক্স থেকে ইনপুট নিয়ে ডেটাবেসে জমা করব।তাহলে ইনপুট নেওয়ার জন্য কি কোড ব্যবহার করব?

ইউজারের ইনপুট করা ডেটা সম্পর্কে কোন ধরনের ধারনা (assumption) করা যাবে না। যেমন, ওখানে ধরে নিচ্ছেন যে ইউজার তার নামটা দিবে, কিন্তু সে একটা জাভাস্ক্রিপ্ট দিতে পারে, অথবা সযতনে লেখা কোন মাইএসকিএল কুয়েরি।

যে কোন ডাটা গেট/পোস্ট থেকে পড়ার পর, চেক করতে হবে। ইউজারনেমের মধ্যে সেরকম কিছু আছে কিনা তা দেখার জন্য পিএইচপিতে  ফাংশন পাবেন।

১৫

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

আলমগীর ভাই,
সিকিউরিটির চাপটারগুলো সাধারণতঃ বইয়ের ৫০% পরে থাকে। এতদ্রুতো এসব বললে নবিস শিক্ষার্থীদের বুঝতে একটু কষ্টই হবে।b-(b-( কেউ না আবার ভয় পেয়ে যায়।

Feed থেকে ফোরাম সিগনেচার, imgsign.com
ব্লগ: shiplu.mokadd.im
মুখে তুলে কেউ খাইয়ে দেবে না। নিজের হাতেই সেটা করতে হবে।

শিপলু'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

১৬

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

আলমগীর লিখেছেন:

ইউজারের ইনপুট করা ডেটা সম্পর্কে কোন ধরনের ধারনা (assumption) করা যাবে না। যেমন, ওখানে ধরে নিচ্ছেন যে ইউজার তার নামটা দিবে, কিন্তু সে একটা জাভাস্ক্রিপ্ট দিতে পারে, অথবা সযতনে লেখা কোন মাইএসকিএল কুয়েরি

আমি যখন ইউজারনেম ইনপুট গ্রহন করছি তখন তো তাকে mysql_query() ফাংশনের মধ্যে রাখছি না।তাহলে মাইএসকিএল কুয়েরি লিখে কি কোন সমস্যা সৃষ্টি করা যাবে?

১৭ সর্বশেষ সম্পাদনা করেছেন স্পাইডারম্যান (১৬-০৬-২০০৮ ২৩:৪৮)

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

শিপলু লিখেছেন:
মহাকাল লিখেছেন:

স্পাইডার ভাই, আপনার পরীক্ষা আগে, ভালমত পরীক্ষা দিন। আমরা তো আছি। একটু না হয় ধৈর্য্য ধরলাম। পরীক্ষার পড়া রেখে টিউটরিয়াল লিখা ঠিক না।

পুরোটাই ব্যক্তিগত মতামত। কেউ এটাকে নিয়ম বা রুল ভেবে বসবেন না। মহাকালের কথাটা প্রসঙ্গ মাত্র, কিন্তু বলছি সবাইকে উদ্দেশ্য করেই।

কেউ স্বতঃস্ফুর্তভাবে কিছু করা শুরু করলে শুরুতেই এমন ১০০% অনুৎসাহব্যাঞ্জক কথা বলা ঠিক না। shame
বাঙ্গালী (না বাংলাদেশি) এসব কথা বলায় খুব পটু। এসবই সকল ভাল উদ্যোগকে গোড়াতেই নষ্ট করে দেয়। নিজের মধ্যে যে ক্রেজটা থাকে তা যদি নষ্ট হয়, সেটা আর কোন দিনই আসবে না।  উদ্যোক্তাকে নিজের মত চলতে দিন। তাহলে ভাল কিছু বেরিয়ে আসবে।

আপনার সাথে কিঞ্চিৎ ভিন্নমত পোষণ করছি।
আমার মনে হয় মহাকাল ভাই আমার প্রতি সহানুভূতিশীল হয়েই উক্ত মন্তব্য করেছেন।এতে অনুৎসাহিত করার কোন উদ্দেশ্য নেই।আমি তাকে ধন্যবাদ জানাই।

আর উৎসাহের ব্যপারটি বলি।আমার নিজের একটি নতুন সাইট আছে।এই সাইটের জন্য আমার কাজ করা প্রয়োজন।তার পরেও আমি সময় ব্যায় করে টিউটোরিয়াল লিখি।এটা শুধু মনের আনন্দের জন্য।আমার টিউটোরিয়াল পড়ে যত মানুষ উপকৃত হবে আমিও তত উৎসাহ পাব।এজন্য যারা আমার টিউটোরিয়াল পড়ে কিছু শিখে থাকেন তারা যদি কোন রিপ্লাই করেন তাহলে নিঃসন্দেহে আমার উৎসাহ বৃদ্ধি পাবে।
এটা শুধু আমার ক্ষেত্রেই নয় সম্ভবত সকলের ক্ষেত্রেই প্রযোজ্য।

১৮

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

আলমগীর লিখেছেন:
স্পাইডারম্যান লিখেছেন:

ধরুন আমি টেক্সটবক্স থেকে ইনপুট নিয়ে ডেটাবেসে জমা করব।তাহলে ইনপুট নেওয়ার জন্য কি কোড ব্যবহার করব?

ইউজারের ইনপুট করা ডেটা সম্পর্কে কোন ধরনের ধারনা (assumption) করা যাবে না। যেমন, ওখানে ধরে নিচ্ছেন যে ইউজার তার নামটা দিবে, কিন্তু সে একটা জাভাস্ক্রিপ্ট দিতে পারে, অথবা সযতনে লেখা কোন মাইএসকিএল কুয়েরি।

যে কোন ডাটা গেট/পোস্ট থেকে পড়ার পর, চেক করতে হবে। ইউজারনেমের মধ্যে সেরকম কিছু আছে কিনা তা দেখার জন্য পিএইচপিতে  ফাংশন পাবেন।

এই রকম কঠিন কিছু শুরু তে আলোচনা করলে আমি কইলাম বহুত চিল্লামু--(--(--(--(--(--(

রক্তের গ্রুপ AB+

microqatar'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

১৯

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

কাজ হয়ছে, এই বার ফলাফলসহ দেখা যায়। dancingdancing)+D)+D)+D)+D)+D
Username ismosaraf
ধন্যবাদ

স্পাইডারম্যান লিখেছেন:
মহাকাল লিখেছেন:

স্পাইডার ভাই, আপনার পরীক্ষা আগে, ভালমত পরীক্ষা দিন। আমরা তো আছি। একটু না হয় ধৈর্য্য ধরলাম। পরীক্ষার পড়া রেখে টিউটরিয়াল লিখা ঠিক না।

আপনাদেরকে হয়তো একটু ধৈর্য ধরতে হবে।সামনে টানা চারটি পরীক্ষা আছে।এই কদিন পোস্ট করতে পারব না।২৫ তারিখের পরে আবার পোস্ট করবো।

@কাতার ভাই
আপনার সমস্যার সমাধান হলো কিনা জানান।
আর একটু ধৈর্য ধরুন।২৫ তারিখে কয়েকটা টিউটোরিয়াল একসাথে পোস্ট করবো ইনশাআল্লাহ।

রক্তের গ্রুপ AB+

microqatar'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

২০

Re: স্পাইডারম্যানের পিএইচপি টিউটোরিয়াল-৩

শিপলু লিখেছেন:

আলমগীর ভাই,
সিকিউরিটির চাপটারগুলো সাধারণতঃ বইয়ের ৫০% পরে থাকে। এতদ্রুতো এসব বললে নবিস শিক্ষার্থীদের বুঝতে একটু কষ্টই হবে।b-(b-( কেউ না আবার ভয় পেয়ে যায়।

সহমত।
আমরা যেহেতু নবীন শিক্ষার্থী তাই সিকিউরিটির ব্যাপারে কিছু দুর্বলতা থাকবে।কিছুদুর শেখার পরে সিকিউরিটির বিষয়গুলো আলোচনা করবো।

আর আলমগীর ভাইকে গুরুত্বপূর্ণ বিষয়ে দৃষ্টি আকর্ষনের জন্য এবং শিপলু ভাইকে মূল্যবান মতামতের জন্য + রেপু।