آشنایی با مفهوم Semantic در HTML

تا این قسمت از آموزش های مقدماتی HTML، آموختیم که این زبان در واقع یک زبان قراردادی (Markup یا نشانه گذاری) با اصول و شیوه مشخص و قانونمند برای شکل دهی بنیان و اسکلت بندی صفحات وب و ارائه محتوا در آن است که از زمان معرفی تا به امروز همواره به فراخور نیاز و بر اساس تکنولوژی های نوین وب روند روبه رشدی را طی کرده و قابلیت ها و مفاهیم جدیدی در خود جای داده است، از این رو به واسطه ارائه ایده ها و استانداردهای جدید در بستر شبکه جهانی وب، صرف آشنایی با تگ ها و نحوه کدنویسی متداول HTML به تنهایی نمی تواند دانش ما را در این زمینه کامل و ما را بی نیاز نماید و ناگزیر باید با یک مفهوم دیگر تحت عنوان HTML معنایی یا Semantic آشنا شویم، اینکه این عبارت چیست و چه معنا و کاربردی دارد موضوعی است که در ادامه در حد مقدور به آن خواهیم پرداخت.
Semantic و HTML
عبارت Semantic در لغت یعنی "معنایی" و Semantics یعنی "علم معنی شناسی" اما منظور از HTML Semantic یعنی کدهای صفحات وب و ساختار آن باید طوری نوشته شوند که تا حد امکان برای دستگاه ها (Machines) مختلف قابل فهم و استفاده باشند، به طور مثال سورس یک مقاله وب باید طوری کدنویسی شود که در پردازش توسط یک دستگاه، قسمت های مختلف آن (از جمله عنوان، محتوا، نویسنده و...) از یکدیگر متمایز و خود مقاله نیز از سایر قسمت های یک سایت اینترنتی قابل تفکیک باشد، از آنجایی که در نسخه های ابتدایی HTML، هدف، بیشتر ارائه محتوایی قابل استفاده جهت کاربران حقیقی (انسان) بود، لذا تمرکز اصلی عمدتا بر روی ظاهر صفحات وب معطوف می شد و اینکه این ظاهر با چه سبک کدنویسی بدست بیاید اهمیت چندانی نداشت، به طور مثال کاربر حقیقی می توانست از توضیحات متنی، رنگ و اندازه فونت ها یا طرح بندی صفحه، قسمت های مختلف محتوا مانند مطلب اصلی، عنوان، نویسنده و... را تفکیک کند، اما این خصوصیات برای یک دستگاه (به طور مثال یک ربات کاوشگر وب) حداقل به راحتی قابل درک و پردازش نبود، با این حال ذات پیدایش HTML با مبحث Semantic هیچگاه بیگانه نبوده، به طور مثال تگ h1 را در نظر بگیرید، این تگ اگرچه محتوای داخل خود را معمولا به شکل برجسته تری برای مخاطب نمایش می دهد (و این مفهوم را القا می کند که این عبارت به عنوان تیتر و دارای اهمیت است)، برای دستگاه ها (غیر انسان) نیز به وجود محتوایی با ارزش به عنوان تیتر یک صفحه وب اشاره دارد، چرا که به فرض یک ربات وب می تواند با کلید واژه h1 محتوای درون این تگ را استخراج کرده و به عنوان سرتیتر استفاده نماید، همچنین است در خصوص تگ هایی مانند strong، با این حال قاعدتا آنطور که صفحات وب برای انسان ها قابل فهم بوده برای دستگاههای ساخت بشر قابل تشخیص نبودند، اگرچه به دلیل کاربردهای اولیه و ساده وب، این مشکل در ابتدا چندان هم مشکل نبود اما رفته رفته با پیشرفت وب و معرفی ایده هایی مانند Web 2.0 و لزوم تعامل بین سیستم های مختلف مبتنی بر وب که به صورت خودکار عمل می کردند، توسعه دهندگان وب را یک گام به جلو سوق داد تا با معرفی CSS بخش ظاهری (طراحی) را از کدنویسی HTML جدا کنند، لذا در این برهه که اکنون نیز کم و بیش به همان منوال ادامه دارد، تصمیم بر این شد که ویژگی های مربوط به ظاهر تگ ها تا حد امکان توسط کلاس های CSS تعریف شود، برنامه نویسان وب نیز عموما بر حسب عادت یا سلیقه برای کلاس های مختلف CSS عناوین مورد نظر خود را انتخاب می کردند، از جمله برای بخش سرصفحه به فرض از کلاسی با نام header یا برای قسمت نویسنده مطالب از کلاس فرضی author، برای بخش کپی رایت و انتهای صفحات از کلاس های copyright، footer و... استفاده می کردند، برای مثال به تگ زیر توجه کنید:
<div class="footer">فوتر سایت</div>
اما با توجه به اینکه این عبارات تماما دلخواه کاربران و سلیقه ای بود نمی توانست استانداردی فراگیر برای بحث Semantic باشد و نقص را به طور کامل برطرف نماید (تگ هایی مانند div و span به این دلیل غیر معنایی یا non-Semantic هستند)، لذا در نسخه 5 HTML تگ های بیشتری برای راحتی کار دستگاهای خودکار ارائه شد تا به راحتی بتوانند بخش های مختلف یک صفحه وب را از هم تفکیک کرده و هر قسمت که مورد نیاز آنها باشد را استخراج نمایند، ظاهرا نامگذاری این تگ ها با همکاری شرکت گوگل بوده که در حدود یک میلیارد صفحه وب را مورد کنکاش قرار داده تا سلیقه کاربران در نامگذاری تگ های قسمت های مخلتف را با کلاس های CSS بدست آورد.علاوه بر توضیحات گفته شده، HTML Semantice رعایت استاندارد کدنویسی را نیز در دل خود جای داده، به عبارتی صفحه وبی به لحاظ استاندارد مورد قبول است که هر تگ در جایگاه خاص خودش استفاده شده باشد، به طور مثال از نظر کدنویسی استاندارد، نمی توانید تگ p را درون تگ h1 جای دهید زیرا تگ h1 نمی تواند یک پاراگراف را درخود جای دهد و صرفا اشاره به تیتر دارد، لذا به طور معمول صفحه وبی که اصول Semantic را رعایت کرده باشد، در سنجش استاندارد کدنویسی نیز امتیاز بهتری کسب خواهد کرد.
لزوم استفاده از Semantic در HTML
همان طور که اشاره شد، HTML هیچگاه از مفهوم Semantic دور نبوده و از ابتدا تگ های آن برای پردازش توسط ماشین نیز در نظر گرفته شده، به طور مثال تگ form همیشه یک فرم را در خود دارد یا تگ img همیشه نشانگر یک تصویر است، این تگ ها می توانند برای یک ماشین خودکار کلیدواژه ای باشند که با آن بتواند به راحتی محتوا را استخراج و دسته بندی کند که در واقع هدف نهایی بحث Semantic در وب است یعنی ارائه محتوایی قابل فهم برای ماشین ها، اگرچه HTML در نسخه های ابتدایی خود (تا نسخه 4) تگ های معنایی بدین منظور ارائه نمود، اما رفته رفته مشخص شد که این تگ ها نمی توانند به نیازهای امروزی آنطور که باید و به اندازه کافی پاسخ دهند، رشد شبکه های اجتماعی مبتنی بر تکنولوژی Web 2.0 که عمدتا کاربران در آنها به اشتراک گذاری آدرس های اینترنتی می پرداختند، نیاز موتورهای جستجو به پردازش دقیقتر اطلاعات صفحات وب و ارائه نتیجه مطلوب تر به کاربران، لزوم نوشتن کدهایی با ساختار بهتر جهت تسهیل تعامل توسعه دهنده گان وب به طور مثال در پروژه های گروهی و... همه لزوم معرفی تگ های بیشتر جهت ساختاربندی مفهومی تر محتوای وب را یادآور می شد، به طور مثال تگ table را در نظر بیگرید، این تگ با هدف نمایش محتوای قابل ارائه در جدول مانند آمار و اطلاعات طبقه بندی شده در HTML معرفی شد، اما به مرور برخی از طراحان وب از جدول برای فرمت بندی صفحات وب استفاده کردند که اشتباه و با هدف Semantic آن در تضاد بود، این دو یا چندکارکردی شدن تگ ها کار پردازش و تصمیم گیری را برای سیستم های خودکار دچار مشکل می کرد، به فرض اگر برنامه نویسی تصمیم می گرفت که رباتی جهت کاوش وب طراحی کرده و صرفا اطلاعات آماری را تهیه کند، ممکن بود با پردازش تگ table به عنوان مبنا، اطلاعات نادرستی دریافت کند که در نهایت برنامه او را با خطاهای مختلفی مواجه می کرد، در مجموع اگرچه استفاده از تگ های Semantic اجباری نیست، اما با توجه به اینکه آینده وب به سمت معنایی شدن پیش می رود، بهتر است برای به روز بودن، رعایت استاندارد کدنویسی و قابل استفاده شدن محتوای سایت در برنامه های مختلف، تا حد امکان از اصول آن پیروی کنیم.
Semantic در HTML نسخه 5
HTML در نسخه 5 خود تگ های جدیدی برای مبحث Semantic معرفی کرده که استفاده از آنها در صفحات وب امروزی بخصوص در زمینه بهینه سازی برای موتورهای جستجو (SEO) اهمیت زیادی دارد، در ادامه به اختصار این تگ های HTML 5 Semantic را توضیح می دهیم.
تگ section
برای ایجاد بخش های مجزا در سند HTML کاربرد دارد، به طور مثال برای ارائه مطالب گروه بندی شده که معمولا یک عنوان خاص و مرتبط با یک ریشه واحد (thematic) دارند، خود تگ section می تواند به صورت تو در تو (nested) مورد استفاده قرار گیرد، به عبارتی یک بخش می تواند زیرمجموعه های دیگری نیز با section های بیشتر داشته باشد، هر section می تواند یک یا چند تگ هدر (h1 تا h6) داشته باشد، اگر درون section به طور مثال در ابتدا تگ h2 باشد، تگ های h بعدی باید از h3 یا h های کوچکتر باشند (هرچه عدد h بزرگتر باشد، در واقع اولویت آن کمتر و کوچکتر است!) و نمی تواند h2 یا h1 بعد از خود داشته باشد، در بیان ساده تر هر section می تواند تگ های h خود را داشته باشد اما به صورت منحصر بفرد (از هرکدام فقط یک تگ) و سلسه مراتب (hierarchy) تگ ها نیز باید رعایت شود، دقت کنید که بالاترین h هر section در واقع عنوان آن را مشخص می کند، تگ section الزاما باید در تگ body صفحه استفاده شود، تگ section می تواند تگ های معنایی دیگری مانند header و footer را به صورت مستقل در خود جای دهد، مثال:
<section>
<h1>تیتر</h1>
<p>متن مورد نظر</p>
</section>
<section>
<h1>برنامه نویسی وب</h1>
<p>آموزش برنامه نویسی وب</p>
<section>
<h1>HTML</h1>
<p>آموزش HTML</p>
<img src="html.jpg" alt="html">
</section>
</section>
نکته: تفاوت section و div در این است که div حالت عمومیت دارد و هرجا که نتوانیم از section (یا سایر تگ های معنایی) استفاده کنیم، div می تواند جایگزین آن شده و با استفاده از پارامترهایی مانند class و تعریف استایل CSS، فرمت بندی صفحات وب را با آن انجام دهیم، به عبارتی section برای تعیین محتوای گروه بندی شده قسمتی از صفحه وب (به طور مثال قسمت مربوط به یک مقاله) است و معمولا نمی توان با هدف پیاده سازی ساختار کل صفحه از آن استفاده کرد، اما div برای طراحی قسمت هایی که حالت Semantic خاصی ارائه نمی کنند، انتخاب مناسبی است و معمولا طراحان وب بخش های کلی و بالادستی صفحه را با div فرمت بندی کرده و قسمت های محتوایی و درونی را با تگ های معنایی مانند section برای دستگاه ها قابل پردازش و فهم می کنند، لذا این دو تگ می توانند در کنار هم و به صورت ترکیبی استفاده شوند.تگ article
برای ایجاد یک مطلب مجزا در سند HTML کاربرد دارد، این مطلب کاملا از سایر بخش های صفحه مستقل و جامع بوده و خود می تواند شامل تگ های section و article زیرمجموعه باشد، به طور مثال فرض کنید در بخش مقالات، بخش علمی، مقاله ای در خصوص برنامه نویسی داشته باشید که خود بخش های مجزایی مانند برنامه نویسی وب، برنامه نویسی موبایل و... داشته باشد، همچنین هر مطلب می تواند شامل بخش نویسنده، اطلاعات نگارش، یادداشت های کاربران و... باشد، لذا همان طور که ملاحظه می کنید استفاده به جا و درست از تگ های div، section و article نیاز به دقت بالایی دارد و ممکن است این موارد را با هم اشتباه بگیریم، اما اگر خوب توجه کنیم همه چیز بستگی به ساختار و نوع محتوایی دارد که ارائه می کنیم، تگ div در جایی استفاده می شود که هیچ محتوای قسمت بندی شده دارای مفهوم خاصی وجود نداشته باشد، به طور مثال اینکه صفحه شما چند سایدبار یا چند قسمت کلی برای نمایش محتوا داشته باشد می تواند با div مشخص گردد، تگ section یک گام از div فراتر می رود و آن حالت عمومیت را ندارد، به طور مثال در قسمتی که محتوا ارائه می شود، بخش محتوای مربوط به اخبار سایت با بخش محتوای مربوط به اخبار محصولات جدید می تواند در دو section مجزا نمایش داده شوند، تگ article نوع خاصتری از section است و به طور مثال بخش اخبار کالاهای جدید می تواند معرفی یک محصول را در خود جای دهد، ضمن اینکه خود article می تواند به صورت تو در تو تگ های section دیگر داشته باشد و همین طور تگ section می تواند تگ های article زیرمجموعه داشته باشد، مهم این است کارکرد هر قسمت را متناسب با محتوای آن مشخص کنیم، توجه کنید که همه این موارد قراردادی هستند و توسط خود شما به عنوان خالق یا برنامه نویس صفحه مشخص می شوند، اما قطعا اگر تگ ها را به جا استفاده کنید تاثیر مثبتی بر میزان کاربر پسند (user–friendly) بودن سایت و کسب رتبه بهتر در موتورهای جستجو دارد، مثال:
<article>
<h1>نام کالا</h1>
<p>این <strong>محصول</strong> دارای کیفیت و قیمت مناسب است...</p>
</article>
<section>
<h1>مقالات بخش آموزش</h1>
<article>
<h2>مبحث توابع در برنامه نویسی</h2>
<p>توابع در برنامه نویسی مانند ماشین هایی هستند که مواد خام را به عنوان ورودی گرفته و یک یا چند محصول به عنوان خروجی تولید می کنند...</p>
</article>
</section>
تگ header
برای تعیین سرتیترها در سند HTML کاربرد دارد، header تگ عمومی است و می توان از آن در هر قسمت از صفحه که باید یک سرتیتر یا مجموعه ای از عناصر مرتبط با سرصفحه (مانند تگ های h، لوگوی صفحه، فرم جستجو و...) قرار گیرند، استفاده کرد، در واقع این تگ راهنمای خوبی است که می توان با آن مشخص کرد هر قسمت به چه نحوی ساختاربندی شده، به فرض سرصفحه از سایر بخش های یک سایت مشخص می شود یا عنوان و توضیحات یک مقاله از محتوای آن متمایز می گردد، مثال:
<header>
<h1>تیتر اصلی صفحه</h1>
<img src="site-logo.png" alt="logo">
</header>
<section>
<header>
<h1>مقالات بخش آموزش</h1>
<img src="learn-logo.jpg" alt="learn-logo">
</header>
</section>
تگ footer
برای تعیین پا صفحه یا زیر نویس در سند HTML کاربرد دارد، footer نیز مانند header تگ عمومی است و می توان از آن در هر قسمت از صفحه که باید یک پاصفحه یا مجموعه ای از عناصر مرتبط با پاصفحه (مانند اطلاعات مربوط به نرم افزار سایت، حقوق مولف، قوانین سایت و...) قرار گیرند، استفاده کرد، همان طور که پیش از این دیدیم، تگ های Semantic می توانند به دفعات و به صورت تو در تو استفاده شوند که البته باید با یک هدف و منطق مشخص باشد، مثال:
<footer>
<div class="copyright">© 2017 https://webgoo.ir</div>
</footer>
<section>
<header>
<h1>مقالات بخش آموزش</h1>
<img src="learn-logo.jpg" alt="learn-logo">
</header>
<footer>
<div class="author">منبع: webgoo.ir</div>
</footer>
</section>
تگ main
مشخص کننده اصلی ترین محتوا در سند HTML است، معمولا هر صفحه وب جدای از بخش هایی مانند سرصفحه، منو ها، بخش های کناری، پاصفحه و... یک قسمت اصلی دارد که هدف اصلی کاربر نیز می باشد، به طور مثال کاربری که عنوان مزتبط با یک مقاله را در وب جستجو می کند، پس از رسیدن به سایتتان ممکن است زمان لازم برای بررسی کل جزئیات سایت را نداشته باشد، در اینجاست که می توان به فرض با ایجاد لینک هدایت به مطلب اصلی، ضمن رعایت اصول Semantic، رابط کاربری بهتری طراحی کرد، باید دقت کنیم بر خلاف سایر تگ های مشابه، درهر صفحه وب تنها استفاده از یک تگ main مجاز است، همچنین تگ main نمی تواند زیرمجموعه (فرزند) تگ هایی مانند article ،aside ،footer ،header ،nav باشد، مثال:
<header>
<h1>تیتر اصلی صفحه</h1>
<img src="site-logo.png" alt="logo">
</header>
<nav>
<ul>
<li><a href="/home">صفحه نخست</a></li>
<li><a href="/about">درباره ما</a></li>
<li><a href="/contact">اطلاعات تماس</a></li>
<li><a href="/learn">آموزش آنلاین</a></li>
</ul>
</nav>
<main>
<section>
<h1>مقالات بخش آموزش</h1>
<article>
<h2>مبحث توابع در برنامه نویسی</h2>
<p>توابع در برنامه نویسی مانند ماشین هایی هستند که مواد خام را به عنوان ورودی گرفته و یک یا چند محصول به عنوان خروجی تولید می کنند...</p>
</article>
</section>
</main>
<footer>
<div class="copyright">© 2017 https://webgoo.ir</div>
</footer>
تگ nav
برای ایجاد مجموعه لینک های راهنمای سایت (navigation bar) در سند HTML کاربرد دارد، لینک هایی که در این قسمت قرار می گیرند معمولا شامل بخش های اصلی یک سایت هستند که در تمام یا اکثر صفحات باید در دسترس کاربر باشند، مانند لینک صفحه نخست، درباره ما، تماس با ما، بخش های اصلی و...، این مجموعه لینک ها می توانند به فراخور نیاز و سلیقه در هر قسمت از صفحه وب و به دفعات قرار گیرند، مثال:
<nav>
<ul>
<li><a href="/home">صفحه نخست</a></li>
<li><a href="/about">درباره ما</a></li>
<li><a href="/contact">اطلاعات تماس</a></li>
<li><a href="/learn">آموزش آنلاین</a></li>
</ul>
</nav>
تگ aside
برای ایجاد یک قسمت مجزای مستقل ولی مرتبط با محتوای اصلی در سند HTML کاربرد دارد، واژه aside در لغت به معنی "جداگانه، بکنار و..." است، در واقع تگ aside شامل مواردی مرتبط با محتوای اصلی خود اما به صورت جداگانه است، به فرض یک مقاله می تواند نکات برجسته خود را در تگ aside به صورت یادآوری داشته باشد، یا در یک مطلب آموزشی در خصوص کامپیوتر، می توان روش های فرعی جایگزین روش اصلی را در تگ aside به صورت نکات اضافی درج کرد، مثال:
<article>
<p>برای نصب ویندوز باید وارد تنظیمات بایوس شوید و در قسمت بوت، گزینه اول را بر روی دی وی دی رام تنظیم نمائید.</p>
<aside>نصب ویندوز از طریق حافظه های جانبی مانند فلش مموری نیز امکانپذیر است.</aside>
</article>
تگ figure
جهت تعریف محتوای دارای توضیح در سند HTML کاربرد دارد، منظور از محتوای دارای توضیح مواردی مانند تصاویر، نمودارها، کدها و... می توانند باشند که معمولا در کنار خود، متنی جهت توضیح یا عنوان دارند، این تگ با تگ زیرمجموعه دیگری تحت عنوان figcaption تکمیل می شود که توضیحات را در خود دارد، به فرض همان طور که با تگ img آدرس تصویر و سایر خاصیت های آن در وب مشخص می شود، با تگ figcaption، اطلاعات و توضیحات مربوط به آن تصویر قابل درج است، مثال:
<figure>
<img src="http://yoursite.com/image/html.png" alt="HTML Semantic">
</figure>
<p>نمونه متن</p>
<figure>
<img src="http://yoursite.com/image/html.jpg" alt="HTML Semantic">
<figcaption>HTML Semantic</figcaption>
</figure>
تگ time
برای مشخص کردن زمان یا تاریخ و زمان در سند HTML کاربرد دارد، با استفاده از این تگ می توان تاریخ و زمان قابل پردازش توسط ماشین را در کدهای HTML قرار داد، این تگ به صورت معمول شامل زمان و با خاصیت datetime برای نمایش تاریخ و زمان استاندارد استفاده می شود، مثال:
<p>ساعات کاری این فروشگاه از<time>08:00</time>صبح الی<time>22:00</time>شب می باشد.</p>
<p>این فروشگاه در تاریخ<time datetime="2017-03-11T19:00">بیست و یکم اسفند ساعت 19</time>افتتاح خواهد شد.</p>
همان طور که ملاحظه می کنید، وقتی از ویژگی datetime استفاده می کنیم، متن درون تگ های time می تواند دلخواه باشد (نه الزاما یک زمان یا تاریخ استاندارد)، همچنین فرمت تاریخ برای ویژگی datetime باید یکی از نمونه حالت های زیر باشد:1000-10-10T10:00
1000-10-10 10:00
تگ details و summary
تگ details برای ایجاد توضیحات اضافه در سند HTML کاربرد دارد، با این تگ می توان برای مثال در یک مقاله توضیحات اضافی قرار داد که در حالت عادی مخفی و با کلیک کاربر نمایش داده می شوند، تگ details با تگ دیگری به نام summary (به معنی خلاصه یا مختصر) تکمیل می شود که خلاصه ای قابل رویت برای کاربر نمایش می دهد، کاربر با کلیک بر روی آن می تواند توضیحات اضافی را مشاهده کند، مثال:
<details>
<summary>جزئیات بیشتر</summary>
این اطلاعات در صورتی نمایش داده می شود که بر روی عبارت "جزئیات بیشتر" کلیک کنیم
</details>
تگ mark
برای برجسته (highlight) کردن قسمتی از متن با پس زمینه ای به رنگ متمایز در سند HTML کاربرد دارد، از جمله کاربردهای این تگ می توان به برجسته کردن متن جستجو شده در بین نتایج اشاره کرد، مثال:
<p>این فروشگاه در تاریخ<mark>بیست و یکم اسفند ساعت 19</mark>افتتاح خواهد شد.</p>
تگ های HTML به موارد گفته شده محدود نمی شوند، می توانید لیست کاملی از این تگ ها (Semantic و non-Semantic) را در آدرس زیر مشاهده کنید:https://developer.mozilla.org/en/docs/Web/HTML/Element
دسته بندی: آموزش مقدماتی » HTML
« بعدی

تگ های اصلی و کلیدی HTML
کاربرد تگ font و ویژگی های فونت در HTML
ایجاد جدول با تگ table در HTML
کار با تگ های ایجاد کننده لیست در HTML
کار با تگ فرم (form) در HTML
دیدگاه


mahdi
۱۹:۴۶ ۱۳۹۸/۱۲/۲۹
سلام استاد عزیز و گرامی و با معرفت ، سال نو رو تبریک میگم بهت امیدوارم خودت و خانوادت سالم و سلامت و همدل و موفق باشید و سال جدید انشالله برات پر از مهر و سلامتی و پول و توجه خدا باشه .. خیلی مخلصیم
سپاس فراوان از این همه لطف شما، متقابلا ما هم سال جدید رو پیشاپیش خدمت شما تبریک عرض میکنیم و سلامتی و موفقیت برایتان و آرامش و دلخوشی برای همه از صمیم قلب آرزو می کنیم.
مهدی
۲۰:۲۹ ۱۳۹۸/۱۰/۲۹
سلام میشه به من کمک کنید من چجوری برای وب سایتم لینک بزارم؟
اگه میشه برای ایمیلم جواب را ارسال کنید.
اگه میشه برای ایمیلم جواب را ارسال کنید.
لطفا آدرس سایتتان را درج یا مشخص کنید از چه برنامه ای برای مدیریت سایت استفاده می کنید (جوملا، وردپرس و...).
۰۲:۰۱ ۱۳۹۸/۰۹/۳۰
سلام
اول یه تشکر از ادمین سایت که سالهاست بهم کمک کرده و عرض کنم خدمتتون سایت زیر رو فقط و فقط 0 تا 100 کدنویسی به غیر از قالبش رو از اموزش های این سایت موفق شدم بنویسم ضمنا اگه کسی جهت اموزش سورس سایت منو خواست بگه با افتخار تقدیمش میکنم
به جرات میتونم بگم ساده ترین و قابل فهم ترین سورسی که تو ایران وجود داره با اختلاف خیلی زیادی من نوشتم و یه اسکریپت مدیریت محتوای ساده و سبک درست شده
مجدد از مدیر سایت وبگو تشکر می کنم که به رایگان علمشون رو در اختیار دیگران قرار میدن
ممنون
اول یه تشکر از ادمین سایت که سالهاست بهم کمک کرده و عرض کنم خدمتتون سایت زیر رو فقط و فقط 0 تا 100 کدنویسی به غیر از قالبش رو از اموزش های این سایت موفق شدم بنویسم ضمنا اگه کسی جهت اموزش سورس سایت منو خواست بگه با افتخار تقدیمش میکنم
www.afra.ory.ir
البته اموزش های سایت ساده و قابل درک برا افراد عادیه که من با مقداری تحقیق از جاهای دیگه و تلاش تونستم کدها رو سر هم کنم و ارتقا بدم تا سورسم کامل تر بشه... به جرات میتونم بگم ساده ترین و قابل فهم ترین سورسی که تو ایران وجود داره با اختلاف خیلی زیادی من نوشتم و یه اسکریپت مدیریت محتوای ساده و سبک درست شده
مجدد از مدیر سایت وبگو تشکر می کنم که به رایگان علمشون رو در اختیار دیگران قرار میدن
ممنون
۱۶:۴۸ ۱۳۹۸/۰۹/۱۸
سلام لطفا بررسی کنید کد زیر چه مرگشه عمل نمی کنه
ممنون
ممنون
<?php $servername = "localhost"; $username = "iranpak"; $password = "*************"; $dbname = "cp3859"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "UPDATE Counter SET visits = visits+1 WHERE id = 1"; $conn->query($sql); $sql = "SELECT visits FROM Counter WHERE id = 1"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $visits = $row["visits"]; } } else { echo "try again"; } $conn->close(); ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>Visit counter</title> </head> <body> Visits: <?php print $visits; ?></body> </html>
لطفا سوالات مربوط به دیتابیس را در آموزش های مرتبط مطرح کنید.
کد از نظر Syntax مشکلی ندارد، برای خطایابی نیاز به اجرا و تست اسکریپت و همچنین امکان اتصال واقعی به دیتابیس است.
کد از نظر Syntax مشکلی ندارد، برای خطایابی نیاز به اجرا و تست اسکریپت و همچنین امکان اتصال واقعی به دیتابیس است.
محمد صادق نصرتی رامش
۱۶:۰۵ ۱۳۹۸/۰۹/۱۱
چکونه لینک بگذارم و پول در بیاورم؟
برای کسب درآمد از طریق لینک قبل از هر چیز باید سایت یا وبلاگ با بازدید مناسب داشته باشید، سپس می توانید با جذب مستقیم آگهی یا استفاده از سایت های نمایش تبلیغات هوشمند، کلیکی و... کسب درآمد کنید.
۰۰:۱۹ ۱۳۹۸/۰۹/۰۸
ببخشید چرا قسمت جستجوی سایتتون عمل نمیکنه!؟ دنبال مقاله راجع سشن ها و ساخت پنل مدیریت برای سی ام اسم میگردم یادمه یه مقاله قبلا نوشته بودین سال 92 بود
ممنون
ممنون
الگوریتم فعلی جستجو خیلی قوی نیست و عمدتا صرفا تیتر مطالب را تطبیق می دهد، پس از اینکه جستجو نتیجه ای نداشت از فیلد "جستجو در وبگو با گوگل" استفاده کنید، مطلب در سایت وجود دارد و احتمالا به بحث پنل ورود و خروج مربوط می شود.
۲۱:۵۶ ۱۳۹۸/۰۹/۰۷
سلام نه هر چه کردم کد درست عمل نکرد و مجبور شدم یک ایندکس بسازم لینک بزارم با این کار قصد دارم هم بتونم سایت رو مسدود کنم هم بتونم بگم کدوم قالب رو لود کنه...
کد زیر خطا نمیده اما هرچه در دیتابیس چه بنویسم y چه بنویسم o بازم صفحه off.php اینکلود میشه... لطفا راهنمایی کنید
ممنون
کد زیر خطا نمیده اما هرچه در دیتابیس چه بنویسم y چه بنویسم o بازم صفحه off.php اینکلود میشه... لطفا راهنمایی کنید
ممنون
<?
include ("config.php");
?>
<?php
$status = $config['off'];
if($status == "y") {
include ("on.php");
} else{
include ("off.php");
}
?>
قاعدتا به هر دلیل متغیر status برابر مقدار مقایسه شده نیست که قسمت else اجرا می شود، برای اطمینان با دستور var_dump متغیر را بررسی کنید:
$status = $config['off'];
var_dump($status);
مقدار اصلی از متغیر config دریافت می شود که ظاهرا یک آرایه است، باید ببینید ایندکس off در آرایه چه مقداری دارد.۰۸:۰۳ ۱۳۹۸/۰۹/۰۷
سلام ادرس سایت من
www.ory.ir
است من 2 تا قالب درست کردم در دو پوشه اما با دستور زیر در روت مشکل دارم و عکس های قالب اینکلود نمیشه در صورتی که به ادرس پوشه رو باز کنیم مانند زیر بدون مشکل باز میشهwww.ory.ir/t1
www.ory.ir/t2
<?
include ("config.php");
?>
<?php
$status = $config['poosteh'];
if($status == t1) {
include 't2/index.php';
} else{
include 't1/index.php';
}
?>
سایتتان بررسی شد، ظاهرا مشکل بر طرف شده است؟!
رضا
۰۱:۱۵ ۱۳۹۸/۰۸/۱۰
خسته نباشید
این جلسه آخر html بود؟؟؟؟
این جلسه آخر html بود؟؟؟؟
خیر، تا این لحظه مباحث پایه HTML در سایت منتشر شده که برای تسلط در سطح مقدماتی تا متوسط کفایت می کند، فعلا در وضعیت بازبینی و تکمیل مطالب گذشته قرار داریم و پس از اتمام این کار مجددا مباحث جدید و پیشرفته در سایت منتشر خواهد شد.
۱۸:۵۷ ۱۳۹۸/۰۵/۲۲
شما از چه روشی برای لینک دادن به قسمتهای نوشته استفاده کردید که با کلیک کردن چیزی به آدرس نوشته اضافه نمیشه؟
این امکان مبتنی بر تگ h1 و h2 موجود در متن مطالب است و پارامترهای هر لینک با نمونه کد PHP زیر استخراج و به صورت داینامیک ایجاد می شود:
<?php
function findTextBetweenTags($string, $tag){
$pattern = "/<$tag>(.*?)<\/$tag>/s";
preg_match_all($pattern, $string, $matches);
return $matches[1];
}
$tags_array = findTextBetweenTags($db_post, 'h2');
$count = count($tags_array);
for($i = 0; $i < $count; $i++){
echo '<a href="#" title="' . strip_tags($tags_array[$i]) . '" onclick="return scrollToTag(\'h2\', $i);">' . strip_tags($tags_array[$i]) . '</a>';
if($i < ($count - 1)){
echo '<hr />';
}
}
?>
در نهایت باید لینک را به صورت نمونه زیر خروجی دهیم:<a href="#" title="HTML" onclick="return scrollToTag('h2', 1);">HTML</a>
و تابع جاوا اسکریپتی با نام scrollToTag در صفحه داشته باشیم:<script>
function scrollToTag(tag, num){
var elm = document.getElementsByTagName(tag)[num];
if(elm){
document.getElementsByTagName(tag)[num].scrollIntoView();
}
return false;
}
</script>
به این صورت با کلیک بر روی هر لینک مرورگر به محدوده نمایش تگ مورد نظر اسکرول می کند.۲۰:۰۲ ۱۳۹۸/۰۲/۱۹
ممنون برای وقتی که واسه این مقاله گذاشتین مفید بود
یاری
۲۱:۴۳ ۱۳۹۷/۱۰/۰۷
سلام
میشه لطفا سریعا بهم بگید چجوری تصویر متحرک یا گیف در وبلاگ بلاگفام قرار بدم ممنوننن؟؟؟؟؟؟
میشه لطفا سریعا بهم بگید چجوری تصویر متحرک یا گیف در وبلاگ بلاگفام قرار بدم ممنوننن؟؟؟؟؟؟
لطفا در گوگل عبارت "نحوه درج تصویر در وبلاگ + وبگو" را جستجو کنید، آموزش های جداگانه در این خصوص وجود دارد.
۱۷:۰۸ ۱۳۹۷/۰۸/۰۹
بسیار عالی و کاربردی بود با تشکر از شما
محمد
۲۰:۴۵ ۱۳۹۷/۰۶/۲۵
سلام
هفته قبل در بخشی از پروژه در یک فرم که به صورت Ajax ارسال میشد به یک باگ خورده بودیم به این صورت که با کلیک بر روی دکمه ارسال باید به صورت Ajax یک فایل json به سرور ارسال میشد ولی با کلیک بر روی دکمه ارسال ( تگ Button) در بعضی مرورگرها مصداقا فایرفاکس ، به جای ارسال و نمایش پیغام ، واکنش اینگونه بود که فایل json مثل نمایش یک فایل txt در مرورگر باز میشد . من با کمی تحقیق در وب متوجه شدم که این به دلیل استفاده از از button , submit هست (البته دقیق متوجه نشدم قضیه چیه ، لطف کنید یک توضیح مختصر بدید). برای حل مشکل خصوصیت type را برابر با button قرار دادم و مشکل حل شد ، ولی باز هم یک سری مشکلات بودم که یکی از همکاران به جای تگ button از div استفاده کرد و مشکل به طور کامل حل شد !
من وقتی این حرکتو دیدم واکنش نشون دادم و گفتم استفاده از تگ div مناسب این کار نیست و همین بحث تگهای معنایی را مطرح کردم ولی همکار قانع نشد و گفت فعلا باگ با تگ div اوکی شد و الزامی وجود نداره !!!
در کل نتونستم قانعش کنم که باید با روش دیگه ای مشکل را مرتفع کنیم ، نه با پاک کردن صورت مسئله ، ولی نشد .
بعد با کمی جستجو به مفاهیمی مثل event.preventDefault آشنا شدم لطف میکنید یک توضیح کلی در این رابطه بدید
تشکر...
هفته قبل در بخشی از پروژه در یک فرم که به صورت Ajax ارسال میشد به یک باگ خورده بودیم به این صورت که با کلیک بر روی دکمه ارسال باید به صورت Ajax یک فایل json به سرور ارسال میشد ولی با کلیک بر روی دکمه ارسال ( تگ Button) در بعضی مرورگرها مصداقا فایرفاکس ، به جای ارسال و نمایش پیغام ، واکنش اینگونه بود که فایل json مثل نمایش یک فایل txt در مرورگر باز میشد . من با کمی تحقیق در وب متوجه شدم که این به دلیل استفاده از از button , submit هست (البته دقیق متوجه نشدم قضیه چیه ، لطف کنید یک توضیح مختصر بدید). برای حل مشکل خصوصیت type را برابر با button قرار دادم و مشکل حل شد ، ولی باز هم یک سری مشکلات بودم که یکی از همکاران به جای تگ button از div استفاده کرد و مشکل به طور کامل حل شد !
من وقتی این حرکتو دیدم واکنش نشون دادم و گفتم استفاده از تگ div مناسب این کار نیست و همین بحث تگهای معنایی را مطرح کردم ولی همکار قانع نشد و گفت فعلا باگ با تگ div اوکی شد و الزامی وجود نداره !!!
در کل نتونستم قانعش کنم که باید با روش دیگه ای مشکل را مرتفع کنیم ، نه با پاک کردن صورت مسئله ، ولی نشد .
بعد با کمی جستجو به مفاهیمی مثل event.preventDefault آشنا شدم لطف میکنید یک توضیح کلی در این رابطه بدید
Form
submit
button
در پس پرده این سه مورد چیه که در باگی که ما بهش خوردیم اتفاقات اینچنینی رخ میده و اینکه preventDefault راه حل مسئله ما هست ؟ یا .....تشکر...
شاید باگ نبوده و رفتار عادی مرورگر باشد، در هر حال بدون بررسی سورس کدها صرفا می توان توضیح کلی داد، نوع submit معمولا برای ارسال مستقیم فرم کاربرد دارد، یعنی حتی بدون تنظیم تابع جاوا اسکریپتی در رویداد (به فرض onclick) نیز با کلیک کاربر بر روی submit فیلدهای فرم به صورت پیش فرض به آدرس در نظر گرفته شده در قسمت action ارسال می شوند، تنها با در نظر گرفتن کدهای جاوا اسکریپت مانند return false می توانیم عملیات پیش فرض (ارسال فرم) را از نوع submit منع کنیم که در جای خود باید توضیح داده شود، اما در مورد button این نوع به خودی خود کاربردی ندارد و باید یک تابع جاوا اسکریپتی را برای آن در رویداد به فرض onclick در نظر بگیریم که تابع را فراخوانی کند و این تابع می تواند مسئول ارسال درخواست Ajax باشد، در مورد ارسال فایل JSON باید در تابع ای جکس ابتدا محتوای فایل را به صورت JSON Object یا به صورت متن ساده دریافت کنیم، سپس این مقدار را می توانیم با Ajax و متد POST ارسال نمائیم، البته برای اینکه مرورگر فایل را نمایش ندهد بسته به هر روش باید تنظیماتی را اعمال کنیم، مثال در مورد جی کئوری:
https://gabrieleromanato.name/jquery-sending-json-data-to-php-with-ajax
در مورد استفاده از div باید سورس کدها را دید، شاید محتویات فایل JSON را به div اختصاص داده اید که به صورت متنی ارسال کنید که در این صورت اشکال خاصی ندارد و روش عملی است!۱۵:۱۳ ۱۳۹۷/۰۶/۰۳
مطلب مفیدی بود
متشکرم
موفق باشید.
متشکرم
موفق باشید.
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.