اسفند ۳, ۱۳۹۷ Mostafa بدون دیدگاه

اگر دنبال برنامه نویس برای ساخت افزونه ،قالب،سایت،برنامه ویندوز،اپلیکیشین اندروید،ربات تلگرام و.... هستید ،سفارش برنامه نویسی را مطالعه نمایید.

توجه : درخواست افزونه ،قالب، اسکریپت و نرم افزار و ... و سوالات و مشکلات خود را در انجمن ارسال نمایید

Sessions در PHP

جلسه یا Sessions در PHP برای ذخیره اطلاعات کاربر استفاده می‌شود. در کل فرایند سشن در کامپیوتر به معنای باز کردن یک نرم افزار و ایجاد یک سری تغییرات در نرم افزار و بستن آن است. اما در سیستم وب و اینترنت این موضوع به صورت دیگری رخ می‌دهد.

هاست یا سرور سایتی که شما بازدید کننده آن هستید، نمی‌تواند اطلاعاتی راجع به شما به سرور بدهد زیرا مرورگر HTML هیچ اطلاعاتی راجع به شما نمی‌تواند بگوید. و در این شرایط تمایز کاربران از هم دچار مشکل می‌شود و سرور نمی‌تواند به شما خدماتی ارائه دهد. برای حل این مشکل، برنامه نویسی PHP بخشی به نام Sessions را تعریف نموده است. اطلاعات شما با استفاده از این دستور در سرور سایتی که از آن بازدید می‌کنید ذخیره می‌شود. بنابراین برای مشاهده صفحات مختلف یک سایت نیاز نیست در هر صفحه نام کاربری و رمز عبور خود را وارد نمایید.  راحتی ای که شما در بازدید صفحات یک سایت دارید به دلیل این دستور است.

هاست سایتی که به ان وارد می‌شوید در لحظه ورود یک Sessions خاص به نام unique ID – UID برایتان می‌سازد و این اطلاعات را در سشن ذخیره می‌کند. این اطلاعات تا زمانی که در سایت هستید یا Sessions دارای اعتبار است در سرور ذخیره می‌شود همچنین این اطلاعات در کوکی نیز ذخیره می‌شود.

Sessions نیز همانند کوکی ها موقتی هستند و تا یک زمان خاص ذخیره می‌شود.

شروع Sessions در PHP

قبل از ذخیره شدن اطلاعات در سشن، شما باید Sessions را شروع کنید. برای این کار باید دقت داشته باشید که تابع ()session_start باید قبل از برچسب <html> نوشته شود.

<?php session_start(); ?>
 
<html>
<body>
 
</body>
</html>

 

این کد به شما اجازه می‌دهد زمانی که کاربر در سایت ثبت نام می‌کند،اطلاعاتش ذخیره شود و یک UID برای session کاربر می‌سازد.

ذخیره متغیرهای session درPHP

درست ترین راه برای ذخیره و بازیابی اطلاعات درون سشن  استفاده از متغیر SESSION_$ در PHP است. به دستور زیر دقت کنید.

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
 
<html>
<body>
 
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
 
</body>
</html>

 

این دستور می‌خواهد تعداد  دفعات نمایش صفحه  را مشخص کند بنابراین خروجی به صورت زیر است:

Pageviews=1

مثال زیر یک دستور است که با تعداد دفعات بازدید یک صفحه را نشان می‌دهد. با استفاده از تابع ()isset متغیری به نام view را که در session ذخیره شده است را بررسی می‌کند، اگر کاربر برای بار اول  وارد سایت شده است عددی برابر با ۱ را نمایش می‌دهد و در ورود های بعدی مقدار آن را افزایش می‌دهد.

<?php
session_start();
 
if(isset($_SESSION['views']))
$_SESSION['views']=$_SESSION['views']+1;
else
$_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

 

پاک کردن یک session در PHP

هنگامی که بخواهید اطلاعاتی را از یک session پاک کنید، می‌توانید از تابع های ()unset و ()session_destroy استفاده کنیم. تابع ()unset برای آزاد کردن یک متغیر در session استفاده می‌شود. به مثال زیر دقت کنید:

<?php
session_start();
if(isset($_SESSION['views']))
  unset($_SESSION['views']);
?>

 

برای پاک کردن کامل یک session از تابع ()session_destroy استفاده می‌شود:

<?php
session_destroy();
?>

 

باید دقت داشته باشید این دستور تمام اطلاعات درون session را پاک می‌کند.

ارسال ایمیل در PHP

در این بخش به معرفی تابع E-mail و چگونگی ارسال ایمیل در PHP می‌پردازیم.از فرم ها در سایت برای عضویت کاربران، ایجاد خبرنامه ، تماس با ما و … استفاده میشود و همه این فرم ها دارای یک بخش ایمیل هستند. با استفاده از این بخش میتوان ایمیلی مبتنی بر عضویت در سایت یا خبر برای کاربر فرستاد. تابع ()Email این امکان را در PHP ایجاد میکند.

این تابع به صورت زیر نوشته میشود:

mail(to,subject,message,headers,parameters)

 

هر کدام از پارامترهایی که در مقابل این تابع تعریف شده است یک وظیفه خاص دارند. این وظایف به شرح زیر است:

  • to :  نوشتن این پارامتر اجباری است و ایمیل گیرنده و یا گیرندگان را مشخص میکند.
  • subject : نوشتن این پارامتر اجباری است و از نوع متن بوده و تنها میتواند یک خط باشد. موضوع عنوان ایمیل را مشخص میکند
  • message : نوشتن این پارامتر اجباری است و از نوع متن بوده و نباید بیش از ۷۰ کاراکتر باشد. متن نوشته شده داخل ایمیل را مشخص میکند و هر خط باید با کاراکتر (n/) از خط قبل و بعد جدا شود.
  • header :  نوشتن این پارمتر اختیاری است.  Cc یا Bcc را مشخص میکند. برای جدا کردن هر خط از خط قبلی باید از کارکتر (\r\n) استفاده شود.
  • Parametrs : نوشتن این بخش اختیاری است. برای اضافه کردن پارامتر ها به برنامه ارسال ایمیل استفاده میشود.

ارسال ایمیل در PHP

کد نویسی زیر ساده ترین روش برای ارسال یک ایمیل از طریق PHP است. البته فرستادن یک ایمیل به این سادگی بعید است در ادامه به روش کامل فرستادن ایمیل از طریق PHP را آشنا خواهید شد.

در مثال زیر متغیر های  to ، $subject، $message، $header، $form تعریف شده اند و  از این متغیر ها در تابع ()Email استفاده شده است. این تابع ایمیل را ارسال کرده و یک پیام مبتنی بر تایید برای کاربر میفرستد

<?php
$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

 

 بخش ایمیل در یک فرم PHP

مثال زیر بخشی از یک فرم که شامل ایمیل است را نشان میدهد. در این  مثال متغیر ها اطلاعات را از کاربر گرفته و در متغیر REQUEST_$ ذخیره میکند. در If بررسی میکند  که پارامترهای دلخواه در این متغیر برای ذخیره شدن نوشته شده اند یا خیر اگر نوشته شده بودند که ذخیره کرده و ایمیلی برای کاربر میفرستند در غیر این صورت دوباره آن فرم را نمایش میدهد.

<html>
<body>
 
<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
  {
  //send email
  $email = $_REQUEST['email'] ;
  $subject = $_REQUEST['subject'] ;
  $message = $_REQUEST['message'] ;
  mail("someone@example.com", $subject,
  $message, "From:" . $email);
  echo "Thank you for using our mail form";
  }
else
//if "email" is not filled out, display the form
  {
  echo "<form method='post' action='mailform.php'>
  Email: <input name='email' type='text'><br>
  Subject: <input name='subject' type='text'><br>
  Message:<br>
  <textarea name='message' rows='15' cols='40'>
  </textarea><br>
  <input type='submit'>
  </form>";
  }
?>
 
</body>
</html>

این روشی است برای فرستادن ایمیل به کاربر، اما لازم به ذکر است که این کد از امنیت برخودار نیست. در بخش بعدی چگونگی ایجاد کردن امنیت برای این فرم را توضیح خواهیم داد.


برچسب ها
نظرات

توجه : لطفاً فقط نظرات خود را از این طریق ارسال نمایید و سوالات و مشکلات خود را در انجمن سایت مطرح نمایید.