ارسال ايميل همراه با فايل ضميمه به وسيله PHP
php-mail-attach
بعد از چند وقت دوباره برگشتم و به اميد خدا سعي ميکنم از اين به بعد بيشتر به سايت سر بزنم.
در اين قسمت براتون يک تابع رو معرفي ميکنم که خواهيد طراحی وب سایت ديد چطور ميشه با پي اچ پي ايميل رو به همراه فايل ضميمه ارسال کرد.
تابع زير اين کار رو براي شما انجام ميده :
1
function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $subject, $message) {
2
$file = $path.$filename;
3
$file_size = filesize($file);
4
$handle = fopen($file, "r");
5
$content = fread($handle, $file_size);
6
fclose($handle);
7
$content = chunk_split(base64_encode($content));
8
$uid = md5(uniqid(time()));
9
$name = basename($file);
10
$header = "From: ".$from_name." <".$from_mail.">\r\n";
21
$header .= "Content-Transfer-Encoding: base64\r\n";
22
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
23
$header .= $content."\r\n\r\n";
24
$header .= "--".$uid."--";
25
if (mail($mailto, $subject, "", $header)) {
26
echo "mail send ... OK"; // or use booleans here
27
} else {
28
echo "mail send ... ERROR!";
29
}
30
}
براي استفاده از اين تابع به صورت زير عمل ميکنيم :
1
$my_file = "file1.pdf";
2
$my_path = $_SERVER['DOCUMENT_ROOT']."/myfiles/";
3
$my_name = "raj";
4
$my_mail = "info@domain.com";
5
$my_subject = "Email Subject ";
6
$my_message = "Refer the attached file.";
7
$to_email="to@domain.com";
8
9
mail_attachment($my_file, $my_path, $to_email, $my_mail, $my_name, $my_subject, $my_message);
ساخت URL هاي دلخواه با Htaccess
Posted on ??/??/?? | htaccess PHP
htaccess-security-seo
سلام
بنا به درخواست يکي از دوستان تصمبم گرفتم آموزش ساخت URL هاي دلخواه يا آدرسهاي کاربر پسند با استفاده از htaccess رو بذارم.
مزاياي اينجور آدرس دهي ها اول اينه که در موتورهاي جستجو بهتر شناخته ميشه.مزيت دوم هم که براي کاربراست.مثلا سايت twitter رو در نظر بگيريد »
همينطور که ميبينيد اين آدرس پروفايل به راحتي در ذهن کاربرا و هم در ذهن موتورهاي جستجو باقي ميمونه.
اما آدرسهاي ديگه اي مثل آدرس زير :
http://www.domain.com/profile.php?id=1304880680&action=edit
يک آدرس کاربر پسند نيست و به راحتي نميشه به خاطر سپردش.
براي ساخت آدرسهاي کاربر پسند دو راه وجود داره.
استفاده فقط از Htaccess
استفاده از Htaceess و Php
در هر دو راه بايد از فايل htaccess استفاه بشه. پس در ابتدا به آموزش htaccess ميپردازيم.
استفاده از Htaccess
فايل htaccess در حقيقت فايل تنظيمات وب سرور آپاچيه.
براي ساخت آدرسهاي زيبا توسط اين فايل ابتدا يک فايل با نام .htaccess بسازيد. سپس محتويات زير رو داخلش بنويسيد يا کپي کنيد :
1
Options +FollowSymLinks
2
RewriteEngine On
3
4
RewriteCond %{SCRIPT_FILENAME} !-d
5
RewriteCond %{SCRIPT_FILENAME} !-f
6
7
RewriteRule ^users/(\d+)*$ ./profile.php?id=$1
8
RewriteRule ^threads/(\d+)*$ ./thread.php?id=$1
9
10
RewriteRule ^search/(.*)$ ./search.php?query=$1
حالا به معرفي و توضيح کدهاي بالا ميپردازيم.
خط اول ممکنه طراحی وب سایت در بعضي هاست ها نياز باشه براي همين قرارش ميديم
درخط دوم مشخص کرديم که ميخوايم از RewriteEngine استفاده کنيم و اين ماژول آپاچي رو فعال کرديم.
در خط سوم هيچي ننوشتيم :D
در خط چهارم و پنجم شرطي قرار داديم که اگر آدرس درخواستي فايل و پوشه نبود بقيه دستورات ميتونن اجرا بشن.اين دو شرط براي زمانيه که کاربر مثلا فايل example.com/images/logo.png فراخواني کنه ميخوايم که مستقيم فايل رو بهش نمايش بده.
سه خط آخر مهمترين دستورات ما هستن.در هر خط با استفاده از عبارات با قاعده چک ميکنيم که اگر با آدرس درخواستي هم سان(مساوي ، مچ ) بود صفحه مقابلش رو لود کنه.
دستور زير رو در نظر بگيريد :
RewriteRule ^users/(\d+)*$ ./profile.php?id=$1
در اين دستور هر وقت url به صورت مثلا www.phpro.ir/user/123 بود فايل profile.php?id=123 رو درخواست ميکنه و به کاربر نمايش ميده.
خطوط بعدي هم همينطور.
اگر آدرس مساوي با قسمت rule باشه ،درخواست به قسمت url به ارسال ميشه.
RewriteRule rule url
با استفاده از اين روش هر ادرسي رو که دلمون بخواد ميتونيم بسازيم. اما مشکلي که اين روش داره اينه که اگر تعداد صفحات سايتمون زياد باشه بايد براي همه صفحات يک دستور بنويسيم.
راه حل رفع اين مشکل استفاده از روش دوم.
استفاده از Htaccess به همراه Php
در اين روش ابتدا همه درخواست ها رو به فايل index.php ( يا هر فايلي که خواستيد) ميفرستيد. سپس با دستورات php آدرس رو تجزيه ميکنيد و ازش استفاده ميکنيد.
براي اينکار در فايل htaccess خطوط زير رو بنويسيد ( محتويات قبلي رو پاک کنيد) :
1
Options +FollowSymLinks
2
RewriteEngine On
3
4
RewriteCond %{SCRIPT_FILENAME} !-d
5
RewriteCond %{SCRIPT_FILENAME} !-f
6
7
RewriteRule ^(.*)$ index.php?param=$1
تنها تفاوت اين فايل با قسمت قبل دستور خط آخره.
به جاي نوشتن دستورات مختلف براي صفحات مختلف سايت در فايل htaccess ، در اين قسمت تمام URL ها رو به فايل index.php ارسال ميکنيم.که اين کار به ما کمک ميکنه بقيه کارها رو با دستورات پي اچ پي انجام بديم.
همينطور که در بالا ميبينيد همه درخواستهارو در متغير $_GET['param'] ريختيم.
حالا در فايل index.php ميتونيم به راحتي از متغير $_GET استفاده کنيم.
1
if(isset($_GET['param']) AND !empty($_GET['param']))
2
{
3
$page = $_GET['param'];
4
if(file_exists('pages/'.$page.'.php'))
5
{
6
include($page.'.php');
7
}else
8
{
9
include('404.php');
10
}
11
}else
12
{
13
include 'main.php';
14
}
در ابتدا چک کرديم براي خالي نبودن و ست شدن متغير $_GET['[param'] اگر شرط برقرار نبود فايل main.php يا همون صفحه اصلي سايت نمايش داده ميشه. در غير اينصورت چک کرديم که آيا فايل مورد نظر وجود داره يا خير. اگر وجود داشت include ميشه وگرنه به کاربر صفحه ??? نمايش داده ميشه.