article

آموزش ساخت نقشه XML سایت (Sitemap) با PHP و MySQL

php-sitemap

یکی از ملزومات مورد نیاز مدیران وب معرفی اطلاعات آدرس های URL وبسایت، وبلاگ و... به صورت دستی بندی شده و دقیق به موتورهای جستجو است تا این موتورها به راحتی و با دقت بیشتر بتوانند کل صفحات موجود در یک آدرس اینترنتی را پیدا کرده و پوشش دهند، بدین منظور پروتکلی تعریف شده تحت عنوان Sitemap که در آدرس رسمی sitemaps.org با جزئیات در دسترس است، این پروتکل به وبمسترها اجازه می دهد تا آدرس های URL خود را در یک فایل XML قرار داده و به تناوب محتوای آن را به روزرسانی نمایند، با توجه به اینکه معمولا تعداد صفحات یک پایگاه اینترنتی همواره در حال تغییر و به روزرسانی است، ثبت دستی این تغییرات در فایل XML عملا گزینه مناسبی نبوده و بسیار وقتگیر و خسته کننده خواهد بود، ضمن اینکه احتمال بروز اشتباه نیز بالا خواهد رفت، از این رو در آموزش پیش رو ضمن ارائه اطلاعاتی در خصوص نقشه XML سایت، نحوه ساخت و به روزرسانی داینامیک آن با کدهای PHP و پرس و جوی MySQL را نیز به صورت نمونه توضیح خواهیم داد.

XML چیست و چرا در نقشه سایت استفاده می شود؟


XML (مخفف eXtensible Markup Language) زبان نشانه گذاری برای انتقال اطلاعات بین دستگاه های مختلف و یک استاندارد فراگیر است، XML قابل استفاده برای ماشین و قابل خواندن و درک توسط انسان است و این قابلیت وجود دارد تا با ساده ترین متد ممکن در تگ های مختلف نقشه XML سایت مواردی مانند آدرس صفحه، دوره به روزرسانی، تاریخ آخرین تغییرات، اولویت آدرس ها و... را برای هر URL به صورت جداگانه مشخص کنیم، لذا پروتکل Sitemap این زبان را برای ایجاد نقشه سایت مناسب دیده و در نظر گرفته است.

شیوه نگارش (Syntax) نقشه XML سایت


شیوه نگارش (Syntax) یک نقشه XML سایت در حالت کلی و برای نمونه به شکل زیر است:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com</loc>
</url>
<url>
<loc>http://www.example.com/?link=2</loc>
</url>
</urlset>
توضیح:
- رمزگذاری (encoding) نقشه XML سایت باید به صورت UTF-8 باشد که در خط اول دستورات آن را تنظیم می کنیم.
- sitemaps.org آدرس سایت رسمی پروتکل نقشه XML سایت است، در شروع تگ urlset آن را به عنوان پروتکل مرجع قرار می دهیم.
- هر نقشه XML سایت باید با یک تگ urlset شروع و پایان یابد، در واقع تگ urlset برای هر نقشه سایت، تنها یک بار تکرار می شود.
- لینک ها و اطلاعات آنها در تگ url و به تعداد مورد نیاز قرار می گیرند، ترجیحا لینک ها را از بالاترین سطح تا پائین ترین سطح در تگ های url مرتب کنید، به طور مثال بخش ها را ابتدا و زیرمجموعه ها را در سطح های پائین تر قرار دهید.
- برای آدرس هایی که در سایت شما به اسلش (/) ختم می شوند، در نقشه سایت نیز باید حتما اسلش را در پایان آدرس URL قرار دهید، در غیر اینصورت نیازی به این کار نیست و توصیه نیز نمی شود، در واقع باید آدرس ها را به همان شکلی وارد کنید که در سایتتان استفاده می کنید.
- از به کار بردن کاراکترهای &, ', ", > و < در آدرس لینک ها خودداری کنید و به جای آنها از جایگزین HTML استفاده نمائید، در PHP با توابعی مانند htmlspecialchars می توان کاراکترهای خاص را به مقادیر HTML آنها تبدیل کرد.

ایجاد نقشه XML سایت به صورت داینامیک با PHP و MySQL


معمولا تعداد لینک های سایت های امروزی به چند مورد محدود نیست و همواره با تغییراتی افزایشی همراه است، از این جهت به روزرسانی دستی فایل XML امری بسیار زمانبر و با ضریب بروز اشتباه بالا خواهد بود و به همین جهت برای مدیریت و به روزرسانی نقشه XML سایتمان باید از زبان های سمت سرور و از جمله PHP و سیستم مدیریت پایگاه داده MySQL استفاده کنیم، در کد زیر ما اطلاعات فرضی را از پایگاه داده فراخوانی کرده و برای هر مطلب، لینک آن را به نقشه سایتمان اضافه و در پایان لینک ها را در یک فایل با نام sitemap.xml کپی می کنیم:
<?php
//ابتدا یک فایل با نام sitemap.xml بسازید.
//فایل را دریافت کرده و یک بار محتویات آن را پاک می کنیم
$file = "sitemap.xml";
//تنظیم مجوز های ویرایش
chmod($file, 0755);
//استفاده از متد w+
$file_handle = fopen($file, 'w+')
or die("خطا: سطح دسترسی برای ویرایش فایل در سرور تنظیم نیست!");
//متغیر با مقادیر خالی
$empty = "";
//نوشتن در فایل
$string_data = $empty;
fwrite($file_handle, $string_data);
fclose($file_handle);

//باز کردن مجدد فایل
$file = "sitemap.xml";
chmod($file, 0755);
//این بار با متد a
$file_handle = fopen($file, 'a') or die("خطا: سطح دسترسی برای ویرایش فایل در سرور تنظیم نیست!");
    
$start = "<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n"
;
//نوشتن فایل با متد a
$string_data = $start;
fwrite($file_handle, $string_data);

//صفحه نخست
$home = "<url><loc>http://example.com</loc></url>\n";
//نوشتن
$string_data = $home;
fwrite($file_handle, $string_data);

//قبل از اتصال به پایگاه داده باید اطلاعات اتصال را تعریف کنید
$conn = mysqli_connect("localhost", "db_user", "db_pass", "db_name");
if(!$conn){
    echo "Error!: " . mysqli_connect_errno() . ' - ' . mysqli_connect_error();
} else{
    //دریافت اطلاعات پست ها از دیتابیس و تبدیل به لینک
    $result = mysqli_query($conn, "SELECT * FROM posts ORDER BY rank ASC") or die(mysqli_error($conn));
    while($row = mysqli_fetch_array($result)){
        $id = $row['id'];
        $url = "<url><loc>http://example.com/?id=$id</loc></url>\n";
        //نوشتن
        $string_data = $url;
        fwrite($file_handle, $string_data);
    }
}

//بستن نقشه سایت
$end = "</urlset>";
//نوشتن
$string_data = $end;
fwrite($file_handle, $string_data);
fclose($file_handle);
//پایان اتصال
mysqli_close($conn);
?>
توضیح:
- فایلی با نام sitemap.xml ترجیحا در ریشه سایت بسازید.
- در کد بالا ابتدا بعد از فراخوانی فایل یک بار با متد +w محتویات آن را پاک سازی می کنیم (این کار برای جلوگیری از تکرار لینک ها در هر بار به روزرسانی نقشه XML سایتمان است).
- مجدد فایل را این بار با متد a فراخوانی کرده و اطلاعات جدید را در آن می نویسیم (فرق متد a و +w در این است که متد a به محتویات کنونی فایل خللی وارد نمی کند و در انتهای مقادیر موجود، مقادیر جدید را اضافه می کند اما متد +w فایل را خالی کرده و مجدد می نویسد).
- در نمونه کد بالا اطلاعات را از جدولی فرضی به نام posts دریافت کرده و برای هر مطلب یک لینک به خروجی می دهیم، توجه داشته باشید که اکستنشن استفاده شده در کد mysqli است که قاعدتا می تواند بر اساس نیاز خود از PDO نیز استفاده کنید.
- لینک های ما باید استاندارد HTML باشند و لذا استفاده از کارکترهای خاص &, ', ", > و < در آدرس لینک ها مجاز نمی باشد، توابعی مانند htmlspecialchars در PHP در این مورد کاربرد دارند.
- برای آپدیت مرتب نقشه XML سایت می توانیم به عنوان مثال آن را به کدهای صفحه ای که مطالبمان را از آن ارسال می کنیم اضافه کرده تا با هر بار ارسال مطلب جدید، اطلاعات فایل sitemap.xml نیز به روز رسانی شود، قاعدتا برای اعمال این حالت باید کمی برنامه نویسی سمت سرور (مانند PHP) مرتبط با CMS مورد استفاده بلد باشیم.
استفاده از نقشه XML سایت به لینک های معمول محدود نمی شود، محتویات دیگر صفحات وب از جمله تصاویر، ویدئوها، اخبار و... را نیز می توان در Sitemap گنجاند:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.sitemaps.org/schemas/sitemap-image/1.1"
        xmlns:video="http://www.sitemaps.org/schemas/sitemap-video/1.1">

<url>
<loc>http://www.example.com/</loc>
<image:image>
<image:loc>http://example.com/imagename.jpg</image:loc>
</image:image>
<video:video>     
<video:content_loc>http://www.example.com/videofilename.flv</video:content_loc>
<video:player_loc allow_embed="yes" autoplay="ap=1">http://www.example.com/videoplayer.swf?video=videofilename</video:player_loc>
<video:thumbnail_loc>http://www.example.com/thumbs/videofilename.jpg</video:thumbnail_loc>
<video:title>عنوان ویدئو</video:title>  
<video:description>توصیف ویدئو</video:description>
</video:video>
</url>
<url>
<loc>http://www.example.com/?link=2</loc>
</url>
</urlset>

افزودن تاریخ و اطلاعات بیشتر به Sitemap


علاوه بر تگ <loc> که آدرس لینک ها را در آن قرار می دهیم، از چند تگ (اختیاری) دیگر نیز می توانیم در نقشه XML سایت خود استفاده کنیم، از جمله <lastmod> برای نمایش تاریخ ایجاد یا به روز رسانی لینک، <changefreq> که دوره تغییر یک لینک را مشخص می کند و <priority> که میزان اهمیت آن را نسبت به سایر لینک ها نشان می دهد.
<?xml version="1.0" encoding="UTF-8"?> 
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com</loc>
<lastmod>2012-03-20</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.example.com/?link=2</loc>
<lastmod>2012-02-18T21:45:19+03:30</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
</urlset>
توضیح:
- فرمت مقادیر تگ <lastmod> می تواند به صورت تاریخ ساده یا تاریخ همراه زمان و اختلاف زمانی باشد (در مثال بالا از هر دو روش استفاده کرده ایم).
- تگ <changefreq> می تواند مقادیری مانند ماهیانه (monthly)، هفتگی (weekly)، ساعت به ساعت (hourly)، روزانه (daily)، سالیانه (yearly)، همیشگی (always) و یا هرگز (never) داشته باشد که نشان دهنده چرخه حدودی تغییرات آن لینک است.
- تگ <priority> میزان اهمیت لینک را مشخص می کند، این مقدار می تواند به ترتیب از کم اهمیت ترین (0.0) تا پراهمیت ترین (1.0) در نوسان باشد.
اطلاعات تکمیلی در خصوص نقشه XML سایت را می توانید در سایت رسمی آن مشاهده کنید:
sitemaps.org
sectionدسته بندی: آموزش کاربردی » PHP
related مطالب بیشتر:
» محدود کردن لینک دانلود مستقیم فایل ها با PHP و htaccess
» دریافت و نمایش پیج رنک گوگل با PHP
» تبدیل تاریخ میلادی، شمسی با مبدل JDF در PHP
» نحوه نمایش متن و تصاویر اتفاقی در PHP و MySQL
» ارسال پارامتر به URL و دریافت مقادیر با PHP
commentنظرات (۵۶ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: مینا
۱۹:۴۸ ۱۳۹۲/۱۱/۲۶
درود بر شما. متشکرم برای مطالب مفیدتون.
میشه در مورد نحوه تنظیم مجوزهای ویرایش بیشتر توضیح بدید؟
پاسخ: 
برای تنظیم مجوزهای ویرایش فایل ها می توانید از بخش مدیریت هاستتان (به فرض برنامه cPanel) استفاده کنید، البته ممکن است این امکان در برنامه هایی مانند Direct Admin در دسترس نباشد که باید از پشتیبانی هاستتان درخواست کمک کنید.
نویسنده: بهنام
۲۲:۳۷ ۱۳۹۲/۱۱/۲۶
خیلی ممنون از کمکتون لطفا آموزش های لازم در مورد جلوگیری از هک شدن کد های پی اچ پی را هم آموزش بدین راه کارهای امنیت در پی اچ پی چگونه یک سایت با امنیتی درست کنیم
پاسخ: 
امنیت در برنامه نویسی PHP بیشتر به مقوله دیتابیس ارتباط دارد که در این رابطه در آینده مطالبی منتشر خواهیم کرد.
نویسنده: بهنام
۲۰:۰۶ ۱۳۹۲/۱۱/۲۷
بله خیلی ممنون حتما منتشر کنید بی صبرانه منتظر خواهم بود
نویسنده: بهنام
۲۲:۵۴ ۱۳۹۲/۱۱/۲۷
سلام
اگه میشه درباره اون موضوع چت رومی که گفتم چگونه میشه همچین کدی را نوشت که هر کاربری پیام داد واسه همه ی کاربران نمایش بده من خودم نوشتم که فقط برای خود کاربر نمایش میده اگه امکانش هست با کد های بیشتر به صورت کامل توضیح بدید خیلی لازمه بخواین هزینه شو هم پرداخت میکنم
پاسخ: 
این موضوع نیاز به درک مباحث مختلف در برنامه نویسی وب دارد، با توضیح و نمونه کد نمی توان همه چیز را گفت، قطعا با مشکلات متعددی روبرو می شوید که آشنایی با راه حل آنها وقت زیادی می برد.
نویسنده: بهنام
۰۰:۵۰ ۱۳۹۲/۱۱/۲۹
سلام
بازم بابت پاسخ هایی که میدین ممنونم یه سوالی که خیلی ذهنم رو مشغول کرده
تابع count
چیکار میکنه؟
if(count($_POST)>0){
//...........
}
هرچی تایپ میکنی در فیلد فقط 1 را نمایش میدهد یعنی چه چیزهایی را میشمارد این تابع؟
پاسخ: 
این تابع برای شمارش تعداد اعضاء (کلیدهای) آرایه است، در واقع برای متد POST در فرم های HTML، مقادیری که از فیلد های چندگانه (با قابلیت multiple) ارسال می شود را می توان با آن شمارش کرد (تعداد گزینه های انتخاب شده توسط کاربر را نمایش می دهد).
نویسنده: مسعود
۲۰:۰۵ ۱۳۹۲/۱۲/۰۸
خیلی عالی بود ، خسته نباشید.
نویسنده: پویا
۱۵:۳۳ ۱۳۹۳/۰۲/۰۱
با سلام.
من میخوام برای یک سایت که از نیوک استفاده میکنه یک نقشه سایت داینامیک درست کنم. چه کدی باید استفاده کنم؟ توابعی که لینک پست ها رو میگیره نمیدونم.
با تشکر از زحمات شما
پاسخ: 
لطفا در این رابطه به انجمن های نیوک فارسی مراجعه کنید.
نویسنده: فرزاد
۰۹:۳۷ ۱۳۹۳/۰۴/۱۹
سلام مهندس
چندتا سوال فنی!!؟
اول اینکه : مشکلی نداره اگه محتوای یه xml sitemap فقط حاوی لینک های اصلی و ثابت سایت باشه؟ مثل لینک های navigation و category که همیشه ثابتند ....
دوم اینکه: وقتی من یه صفحه ای دارم که یک pagination داره و دارای 500 و یا بیشتر دارای صفحه است page 1 page 2 page 3 ...... وقتی داخل هر صفحه تعدادی زیادی پست article موجود هست نحوه ی sitemap xml این شکل صفحات به شکله؟
و اینکه آیا sitemap یه سایت همیشه باید ثابت باشه یا هر یک ماه یه بار باید آپدیت کرد؟
ممنون میشم کامل با جزییات راهنمایی کنید... با تشکر از webgoo
پاسخ: 
- Sitemap روشی برای معرفی ساختار سایت به موتورهای جستجو و کمک به آنها در طبقه بندی راحتتر محتوا است، لذا استفاده از لینک های ثابت (مانند برچسب ها، دسته بندی های موضوعی و...) یکی از موارد معمول در این رابطه محسوب می شود و مشکلی از این نظر نیست.
- در مورد صفحه بندی باید بین کاربران عادی و موتورهای جستجو تفکیک قائل شد، صقحه بندی برای راحتی کاربران استفاده می شود، در مورد ربات های جستجوگر می توان آن را نادیده گرفت، در هر حال هم می توانید لینک صفحات را در فایل XML داشته باشید، هم لینک صفحات + مطالب و هم صرفا لینک مطالب.
- به روزرسانی نقشه سایت اجباری نیست، البته در صورتی که بخش ها و لینک های اصلی جدیدی به سایتتان اضافه یا مواردی حذف شده باشد، بهتر است که فایل XML را مطابق با آخرین تغییرات به روزرسانی کنید.
نویسنده: مرتضی
۱۹:۱۳ ۱۳۹۳/۰۵/۲۳
سلام
وقتی تو گوگل عبارتی رو سرچ میکنیم، صفحاتی معرفی میشن که آدرس هرکدوم با رنگ سبز مشخص میشه. بعضی از این آدرس ها خیلی منظم و بصورت سلسله مراتبی هستند مثلا به این لینک برید:
https://www.google.com/webhp?hl=fa&gws_rd=ssl#hl=fa&q=%D8%A2%D9%85%D9%88%D8%B2%D8%B4+%D8%B3%D8%A7%D8%AE%D8%AA+%D9%86%D9%82%D8%B4%D9%87+%D8%B3%D8%A7%DB%8C%D8%AA+(Sitemap)+%D8%A8%D8%A7+php+%D9%88+xml
آیا گوگل از روی همین نقشه سایت به ساختار درختی محتوای سایت ها پی میبره؟
ممنون میشم جواب بدین
پاسخ: 
این موضوع قبل از هر چیز به نحوه ساختار بندی سایت برمی گردد، اینکه لینک بخش های اصلی سایت در تمام صفحات به صورت زنجیره ای باشند، اینکه از مطلب مورد نظر در بخش مربوطه لینک وجود داشته باشد (ساختار شبکه ای)، به نظر گوگل با محاسبه تعداد تکرار لینک ها ، میزان اهمیت آنها را مشخص می کند (هر چه تعداد تکرار بیشتر، سطح بالاتر)، فاکتور بعدی می تواند ترتیب اولویت لینک ها در نقشه XML سایت باشد (که در ابزار وبمستر گوگل معرفی می کنیم)، در صورت عدم تعیین priority، لینک های پر اهمیت و سطح بالاتر در ابتدای نقشه سایت قرار می گیرند.
گوگل حتی قادر به شناسایی و حذف عبارات اضافه در لینک ها است، به طور مثال عبارت "section" چون صرفا برای ساختار بندی سایت استفاده شده و هیچ لینکی در صفحات به آن ختم نمی شود، نادیده گرفته می شود.
نویسنده: سعید گائینی
۱۲:۲۶ ۱۳۹۳/۰۶/۱۹
با سلام خدمت شما
اول یه تشکر کنم بابت مطالب سایتتون که خیلی به دردم خورده.
سوالم اینه که مثلا اگه ما بخواهیم سایت مپ به صورت خودکار به چند تا سایت مپ تبدیل بشه باید چکار کنیم !
مثلا ما 100 هزار تا پست داریم و طبیعتا اگه بخواهیم همش رو یکجا نشون بدیم فشار زیادی به سرور میاره.
اگه بخواهیم مثلا هر 2000 تا پست یه سایت مپ ایجاد کنه به صورت خودکار و شماره بندی کنه.
postmap1.xml
postmap2.xml
.
.
.
ممنون میشم راهنمائی کنید.
پاسخ: 
راه حل ساده ای وجود ندارد! باید کدنویسی بلد باشید و بتوانید این حالت را برای برنامه خود تعریف کنید، یعنی برنامه ای داشته باشید که به فرض تعداد کل فایل ها را محاسبه کند و از ردیف خاصی به بعد به صورت داینامیک فایل های جدید با اطلاعات مربوط به همان فایل ایجاد کند (نیازمند آشنایی شما با بحث توابع مربوط به دایرکتوری و فایل، حلقه ها، دستورات شرطی و... در PHP است).
نویسنده: سعید گائینی
۰۹:۰۴ ۱۳۹۳/۰۶/۲۱
منظور شما اینه که یعنی به صورت داینامیک بنویسم؟
مثلا
sitemap.php?shoroo=0&payan=2000
که بعد از این خروجی به این صورت بگیرم
sitemap0-2000.xml
پاسخ: 
منظور از داینامیک الزاما به لینک های داینامیک برنمی گردد!
داینامیک یعنی ایجاد سیستمی پویا که متناسب با نیاز شما به صورت خودکار رفتاری پویا داشته باشد، به عبارت ساده تر باید برنامه نویسی PHP کار کرده باشید و بتوانید با توجه به هدفتان برنامه پویا بنویسید (الگوریتم تعریف کنید)، به فرض برنامه شما باید تشخیص دهد که از ردیف 2000 به بعد یک فایل جدید بسازد و...
نویسنده: امین
۰۱:۱۰ ۱۳۹۳/۰۷/۲۵
سلام
اپن کارت لینک هایی که می سازه خیلی پیچ در پیچه که طبق گفته شما برای سایت مپ و در نتیجه ایندکس شدن در گوگل مضره، حالا به نظرتون می شه آدرس ها رو با goo.gl کوتاه کنم و توی فایل سایت مپ بذارم؟!!! :D
پاسخ: 
خیر! در اغلب موارد ضرر استفاده از سایت های جانبی برای کوتاه کردن لینک خیلی بیشتر است!
استفاده از دامنه ای غیر از دامنه اصلی سایت توصیه نمی شود.
نویسنده: amin
۱۴:۰۱ ۱۳۹۳/۰۸/۱۵
سلام خسته نباشید من وقتی به سایت مپ سایتتون نگاه کردن کلمات فارسی به این صورت نمایش داد شده
%D8%AF%D9%84%D8%A7%DB%8C%D9%84-%D8%A8%D9%87
ولی وقتی بند سایت مپ که با کمک آموزش شما ساختم کلمات فارسی به صورت معمولی نمایش داد میشه به این صورت
آموزش-ساخت-نقشه-سایت
راهی هست که لینک های سایت مپ بند هم مثل سایت شما بشه ؟
با تشکر
پاسخ: 
اطلاعات متنی لینک خود را از تابع rawurlencode عبور دهید، برای برگرداندن به حالت اولیه نیز از تابع rawurldecode استفاده نمائید.
نویسنده: سامان
۰۲:۴۱ ۱۳۹۳/۰۹/۰۱
خدا خیرت بده
نویسنده: مرتضی
۱۷:۱۷ ۱۳۹۳/۱۰/۱۸
با سلام و خسته نباشید. وقتی یک sitemap رو به گوگل معرفی میکنیم مدتی طول میکشه تا همه ی url ها رو submit کنه ، میخواستم بدونم حالا اگر ما sitemap مون رو update کنیم، گوگل به طور خودکار url های جدید رو شناسایی میکنه ؟ و آیا این کار تاثیری روی url هایی که قبلا submit شده اند دارد؟
با تشکر.
پاسخ: 
- بله، ربات گوگل به صورت مرتب به سایت شما مراجعه و محتوای ایندکس شده خود را به روز می کند.
- آدرس هایی که قبلا ارسال و ایندکس شده اند، در دیتابیس گوگل برای سایت شما باقی می مانند (و همچنان به روز می شوند)، مگر اینکه شما آن صفحات را از سایت خود حذف کنید (و با کدهای استاندارد HTTP در پاسخ درخواست های ربات گوگل کدهای 404 و... برگردانید).
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- موارد غیرمرتبط با مباحث آموزش ها را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ مختصر داده خواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- از درج عناوین تبلیغاتی در فیلدها خودداری کنید، در صورتی که یادداشت تبلیغاتی تشخیص داده شود حذف خواهد شد.
- تمام یادداشت ها بررسی و زمانی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد خودداری کنید.





5 × 9
 refresh

آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form mohadeseh
در:
ممنون از راهنماییتون مشکلم حل شد
۱۳۹۹/۰۷/۲۸

form محمد
در:
سلام. یک کد نوشته ام بدین صورت: وقتی صفحه باز شده یک پنجره پیام خالی با یک ok باز شده هر چه ok را...
۱۳۹۹/۰۷/۲۸

form فایز پور جهانبخشی
در:
سلام اگر بخواهیم برنامه ای که داخل متلب نوشتیم تا یک ثانیه اجرا شود و بعد از ثانیه اول در حالت خطا که...
۱۳۹۹/۰۷/۲۸

form mohadeseh
در:
الان کد من که توی تگ <head> گزاشتم میخواستم بدونم ایا امکانش هست که توی تگ link که ایکون رو باهاش اوردم بتونم...
۱۳۹۹/۰۷/۲۷

form mohadeseh
در:
سلام ببخشید لطفا راهنمایی کنید که چجوری title برای favicon در html بزارم؟ جوری که وقتی موس روی icon قرار بگیره متن...
۱۳۹۹/۰۷/۲۷

form ryomaechizen
در:
سلام. اگه حافظه وب پر بشه و مجبورا عکسا کپی باشن چطور باید مشکل بارگزاریشون حل بشه؟
۱۳۹۹/۰۷/۲۶

form رونا
در:
پرونده فرستاده شده نمی‌تواند به wp-content/uploads/2020/10 برود. سلام این ارور برای چی رخ می ده
۱۳۹۹/۰۷/۲۵

form reza
در:
سلام خوبید انشاالله؟ خواستم بدونم این نوار ابزار رو چطور باید اونایی رو دوست دارم بزارم سمت راست وبلاگم. هر چی کد و ......
۱۳۹۹/۰۷/۲۴

form سینا
در:
چگونه میتوانیم با استفاده از HTML فرمول شیمیایی مواد را بنویسیم؟ با عدد اتمی، جرمی و بار اتمی
۱۳۹۹/۰۷/۲۱

form فاطمه
در:
سلام ممنونم... خیلی ساده و روون توضیح دادین.. اونقدر که تشویق شدم محتوای یه فایل تکس رو با ایجکس درون یه div بیارم ولی...
۱۳۹۹/۰۷/۲۱

form امیرحسین
در:
خب متوجه شدم. که باید خط اول عدد فانکشن رو تغییر بدم. بسته به تعداد آرایه یا هر عدد دیگه تغییر بدم جوابمو...
۱۳۹۹/۰۷/۲۱

form امیرحسین
در:
عالی بود. خیلی ممنونم. ولی هر چند کلمه داخل آرایه داشته باشم به همون میزان خروجی گرفته میشه. من اگه 10 کلمه در آرایه داشته...
۱۳۹۹/۰۷/۲۱

form سعادتی
در:
سلام کاش روش برطرف کردن این بهم ریختگی رو هم توضیح میدادید. ممنون
۱۳۹۹/۰۷/۲۰

form امیرحسین
در:
موفق شدم اینو پیدا کنم. ولی میخوام کلمات تکراری داخلشون نباشه. مثال AAA فقط یک بار در اون خط وجود داشته باشه.
۱۳۹۹/۰۷/۲۰

form امیرحسین
در:
سلام. نه محدودیت زمانی وجود نداره.
۱۳۹۹/۰۷/۲۰
form امیرحسین
در:
سلام خسته نباشید. میخوام از این تابع برای بدست آوردن لیست های متفاوت استفاده کنم. مثلا یه آرایه داشته باشم. امیدوارم کمکم...
۱۳۹۹/۰۷/۲۰
form ابوالفضل
در:
سلام وقتتون بخیر من میخوام یه افزونه برای مرورگر کروم طراحی کنم و میخوام یه متنی رو هر سری از سایت دریافت کنه و...
۱۳۹۹/۰۷/۲۰
form mahdi
در:
سلام چطور می تونم از ip خارجی استفاده کنم؟ برای دریافت لانچر میخام. مرسی
۱۳۹۹/۰۷/۱۹
form احسان عباسی
در:
با سلام و تشکر از سایت خوبتون من یه کد تعریف کردم که در بورس ایران سهم مدنظرمو بیاره .. میخواستم ببینم امکانش هست دستوری...
۱۳۹۹/۰۷/۱۷
form شبنم
در:
سلام وقتتون بخیر، ببخشید از کلمه event یا e دقیقا چه زمانی توی فانکشن استفاده میکنیم؟
۱۳۹۹/۰۷/۱۷
form احمد
در:
با عرض سلام مجدد ساختار کلی دستورم به این صورت هست. بعد از حلقه وایل اون دیو کلاس 1 و 2 و 3 میخواهم...
۱۳۹۹/۰۷/۱۶
form احمد
در:
با عرض سلام ببخشید چطوری میتونم یه قسمت از تگ ها رو داخل حلقه وایل رد کنم دوباره تگ های بعدی داخل حلقه قرار بگیرن...
۱۳۹۹/۰۷/۱۶
form ابوالفضل
در:
سلام واقعا من خیلی گشتم تا بتونم این آموزش رو پیدا کنم چون واقعا نمی دونستم چی بنویسم تا یک رتبه بندی برای نتایج جستجو...
۱۳۹۹/۰۷/۱۵
form mahtab
در:
سلام وقتتون بخیر ببخشید میشه بفرمایید چجوری کلیپ رو بزاریم وبلاگ ؟؟ بی زحمت کامل بفرمایین ممنون و متشکر
۱۳۹۹/۰۷/۱۴
form Saeid Azari
در:
سلام ببخشید اگه امکانش هست سوال منو جواب بدید یکم گیج شدم...من یک کد html دارم که باید یک سایت درست کنم و ان را...
۱۳۹۹/۰۷/۱۳
form ابوالفضل
در:
سلام یک سوال دارم چجوری یک متنی که درون تگ td هست و بعد تگ br هست (تگ br درون تگ td است) رو...
۱۳۹۹/۰۷/۱۳
form parnian
در:
با سلام با توجه به این که این مطلب در سال 91 نوشته شده ایا تغیری هم کرده؟ مثلا استفاده و مهم بودن تگ های...
۱۳۹۹/۰۷/۱۳
form fahimeh
در:
سلام من دارم پروژه واسه دانشگاه مینویسم طراحی سایتو کردم برای کار با پایگاه داده دستور insert و delete کار میکنه ولی...
۱۳۹۹/۰۷/۱۲
form امین
در:
با عرض سلام ببخشید یه فرم دارم اخر فرمم یه دکمه دارم میخواستم بدونم چطوری باید بعد از کلیک کردن دکمه به صفحه دیگه انتقال...
۱۳۹۹/۰۷/۱۱
form محسن
در:
سلام من از فرم ساز گرویتی استفاده میکنم آیا امکان استفاده همچین چیزی رو میتونم داخلش داشته باشم آیا کدی داره که در قسمت...
۱۳۹۹/۰۷/۱۱
form مالکی
در:
چرا وبلاگم بالا نمی یاد
۱۳۹۹/۰۷/۰۹
form احمد
در:
با عرض سلام مجدد و خسته نباشید ببخشید نمونه کد رو اگر امکانش هست نگاه کنید که چطوری این متغییری رو که بدست اوردم در...
۱۳۹۹/۰۷/۰۹
form الناز
در:
سلام وقتتون بخیر. چطور میشه برنامه ای رو در php نوشت که کدملی رو تبدیل به شماره دانشجویی کنه اگه برام بنویسید ممنون میشم.
۱۳۹۹/۰۷/۰۹
form محمد
در:
سلام من میخواستم بدونم چه طوری میشه بدون اینکه از کاربر بپرسی که میخواهد از حساب خروج پیدا کند خود سایت بفهمد که کاربر از...
۱۳۹۹/۰۷/۰۹
form احمد
در:
با سلام ببخشید چطوری باید در جکوری از یک متغییر در صفحات دیگه استفاده کنم مثال دو عدد را باهم جمع کردم و ریختم داخل...
۱۳۹۹/۰۷/۰۹
form مهسا
در:
سلام و خسته نباشید مشکلی برای وبلاگ من پیش اومده موقع ورود بهم پیام میده وبلاگ داره بروز رسانی میشه و بعدا وارد وبلاگ شوید...
۱۳۹۹/۰۷/۰۸
form Moshtagh
در:
سلام و خسته نباشید بنده چند روزه که وقتی اطلاعات ورود به وبلاگم رو وارد تیترها و کلیک میکنم با چنین پاسخی مواجه میشم...
۱۳۹۹/۰۷/۰۸
form mahtab
در:
سلام خسته نباشین ببخشید چرا بلاگفا باز نمیکنه ؟؟؟ میرم مدیریت وبلاگ نه تو بروز شده ها وبی هستم نه هم که...
۱۳۹۹/۰۷/۰۷
form جواد
در:
سلام و عرض ادب. سایت من هک شده و یک کد ریدایرکت تو دیتابیس هاستم بارگزاری شده که آخر همه پست ها تو...
۱۳۹۹/۰۷/۰۷
form نبی
در:
‏asc و desc رو جابجا نوشتی
۱۳۹۹/۰۷/۰۴
form ساناز محمدی
در:
سلام مرسی از کدی که گذاشتید ♥
۱۳۹۹/۰۷/۰۳
form mahtab
در:
سلام خسته نباشین ببخشید میخواستم بپرسم که چجوری میتونیم یه کلیپ رو از کامپیوتر از انیستا دانلود کنیم ؟؟ اها اینم بگم...
۱۳۹۹/۰۷/۰۲
form سعید
در:
سلام دستتون درد نکنه از پروژه شما استفاده کردم فقط یه مشکل اگه در یک صفحه دو تا لیست کشویی داشته باشیم چطوری...
۱۳۹۹/۰۷/۰۱
  در انتظار بررسی: ۰
 پاسخگویی به سوالات ممکن است تا 24 ساعت زمان ببرد.