اذهب إلى المحتوى
  • 0

ظهور محتوى وسم meta الوصف في رأس الصفحة كنص في المتصفح

Hamada Ahmed

السؤال

السلام عليكم ورحمة الله وبركاته ,

في الكود التالي وسوم meta  للكلمات المفتاحية والوصف ,

أواجه مشكلة ظهور هذا الوصف في أعلى الصفحة في الخادم المحلي على المتصفح ,  

و ليكن في العلم , أن نفس المشكلة لا تظهر في ذات الصفحة بذات المتصفح على الإستضافة . 

ما إحتمالية المشكلة ؟ و ماذا يقترح كحل لها ؟  

<head>
<?php include('connect_file.php');?>
<?php if( isset($_GET['topics']) ) : ?> 	 
<?php
$gettopics= intval($_GET['topics']);
$stmt = $db->prepare('SELECT * FROM news where id = ?');
$stmt->bind_param('i', $gettopics ); 
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc(); 
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" type="image/ico" href="images/favicon.ico"/>
<title> موقع ...... | <?= $row['title'] ?> </title>
<?php
function myFilter($var)
{
return mb_strlen($var, 'UTF-8') > 2; 
}
$keywords = explode(' ', $row['title']);
$keywords = array_filter($keywords,"myFilter");
$keywords = array_unique($keywords);
$keywords = implode(' ,', $keywords);
?>
<meta name="keywords" content="<?=$keywords ?>" />
<meta name="description" content="<?= $description = substr(''.$row['news_content'].'', 0, 1000); ?>">
<?php else : ?>
<title> موقع ....... </title>
<?php endif; ?>
<style type="text/css">
<!--
-->
</style>
</head>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1
بتاريخ 3 ساعات قال Hamada Ahmed:

قمت باضافة حقل للوصف بالجدول- قبل الارسال يتم اقتصاص جزء من المحتوى وتحويله الى نص ويتم تخزينة بهذه الصورة

$description = strip_tags(substr(''.$_REQUEST['news_content'].'', 0, 1000));    

ويكون كود الوصف كالتالي


<meta name="description" content="<?=''.$row['description'].'' ?>">

هل برأيك الطريقة جيد ام لا - قمت بتجربتها ونجحت بالفعل لكن احتاج الى رأيك

قد أحسنت , هاته الطريقة عملية جدا . وذلك لكون هاته المعلومات معلومات وصفية . أي أنها لا يجدر أن تظهر في الصفحة و إنما لأغراض أخرى مثل تحسين محركات البحث أو تحسين الظهور . 

فعوضا عن طباعة HTML يقترح فلترة المحتوى و استخراج النصوص من محتوى الـ html فقط .

خصوصا في حالات من مثل الحاجة إلى هذا الحقل في أغراض أخرى , مثال : 

  • وجود حقل واحد للمقالة و لوصف صفحة المقالة في جدول المقالات في قواعد البيانات . 

 أي أن كل محتوى كالتالي : 

<p style="text-align:center;"> هاته فقرة تخص وصف الصفحة </p>
<h2> هذا عنوان يخص وصف الصفحة أيضا</h2>

يصبح : 

 هاته فقرة تخص وصف الصفحة 
هذا عنوان يخص وصف الصفحة أيضا

ليمكن إستيعابها في الخاصية content كالتالي : 

<meta name="description" content=" هاته فقرة تخص وصف الصفحة هذا عنوان يخص وصف الصفحة أيضا" >

مما يعني أنه هذا لن يسبب المشكلة السابقة .

يمكنك إنشاء دالة للفلترة و تحويل كل محتوى html إلى محتوى نصي بمنطق مشابه : 

$text = '<p style="text-align"> هاته فقرة </p> <h2> هذا عنوان </h2>';
$cleaner_input = strip_tags($text);

echo $cleaner_input;

وهو نفس ما اقترحته سابقا . 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

عموما , لا توجد أي مشكلة بالشيفرة التي لديك . 

يحتمل أن يكون الإختلاف الذي يظهر بين ما هو الخادم المحلي و ما هو على المستضيف هو أحد التالي : 

  • عدم إحتواء قواعد البيانات الخاصة بك على أي صفوف مدرجة بجدول topics بالمعرف المدرج في رابط الصفحة كـ :
    ?topics=23
    يعني هذا إعادة الإستعلام الذي لديك لمصفوفة فارغة  . و بالتالي عدم إمكانية قراءة الخواص news_content و title من ناتج الإستعلام . يؤدي هذا بدوره إلى نتيجة مشابهة للتالي : 
    <meta name="keywords" content=" " />
    <meta name="description" content=" ">

     

  • الإحتمال الاخر هو في عدم إحتواء رابط الصفحة على معامل بالإسم topics أساسا , فبدل أن تقوم بتصفح رابط الصفحة عن طريق : 
    https://domain.dm/path/to/my_page.php?topics=22

    أنت تقوم بالتصفح إليه كالتالي : 

    https://domain.dm/path/to/my_page.php

    يعني هذا تجاوز الشرط : 

    <?php if( isset($_GET['topics']) ) : ?> 

    و كل ما يقتضيه , و المرور مباشرة إلى شطر العبارة الشرطية الاخر : 

    <?php else : ?>
    <title> موقع ....... </title>
    <?php endif; ?>

    مما يؤدي إلى عدم ظهور الوصف و الكلمات المفتاحية . 

لتجاوز هاته المشكلة , يقترح تصدير قواعد البيانات التي لديك على الخادم المحلي و إستيرادها في خادمك المستضيف . 

يقترح جانبا التأكد من أن الإتصال بقواعد البيانات يتم بشكل عادي , و من أن الجدول الذي تحاول القراءة من عليه يحوي بشكل عادي صفوفا يمكن القراءة منها . 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1
بتاريخ منذ ساعة مضت قال Hamada Ahmed:

ربما لم تفهم قصدي بشكل دقيق فانا اقصد ان description يظهر في المتصفح من المفترض ان يكون مختفي ولا يظهر للزوار والصور توضح لك ذلك

هذه الصورة للموقع بالوسم keywords فقط

<meta name="keywords" content="<?=$keywords ?>" />

p_2140qr2mg1.png

والصورة التالية بالوسمين معا description , keywords

__________

<meta name="keywords" content="<?=$keywords ?>" />
<meta name="description" content="<?= $description = substr(''.$row['news_content'].'', 0, 1000); ?>">

p_2140h78bv1.png

ومصدر الصفحة بعد اضافة الوسمين كالتالي

p_2140w9pqx1.png

أي ان المشكلة ليست فى وسم الكلمات المفتاحية انما المشكلة في وسم الوصف _ لاحظ انني اقتطع جزء من محتوى الموضوع لكي يظهر فى الوصف لكنة يظهر اعلى هيدر الصفحة والطبيعي الا يظهر كذلك مثل الكلمات المفتاحية التي لم تظهر اثناء التصفح

ليكن في العلم أن محتوى الخاصية content يقبل نصا فقط , في حين أنك تقوم بتقديم محتوى HTML إليه . لاحظ : 

<meta name="description" content="<p style="text-align:center;""

و بسبب علامتي التنصيص المفتوحتين في : 

content="<p style="text-align:center;">"
        ^          ^                     

فإن المتصفح يقوم بقراءة ما يقدم له كمحتوى HTML عادي , و بطبيعة الحال فإن هذا سيؤدي إلى ظهوره في الصفحة كـ HTML عادي . 
يحتمل أنك تقوم بإستعمال محرر نصوص لتحرير نص الوصف عن طريق لوحة التحكم , تأكد أنك لا تقوم بذلك , و أن الحقل news_content محتوى نصي فقط و لا يحوي أية وسوم أو عناصر HTML . يمكنك كحل لهاته المشكلة إلغاء تفعيل محرر النصوص الذي تستعمله على مدخل هذا الحقل في مكان ما بلوحة التحكم أين تقوم بتحديث نص الوصف . 

يحتمل أيضا أنك تقوم بإستهداف حقل غير الذي تقوم بتخزين المحتوى النصي فيه . 

تأكد من كل من السابق و أخبرني ما إن استمرت مشكلتك بالظهور . 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 ساعات قال Adnane Kadri:

عموما , لا توجد أي مشكلة بالشيفرة التي لديك . 

يحتمل أن يكون الإختلاف الذي يظهر بين ما هو الخادم المحلي و ما هو على المستضيف هو أحد التالي : 

  • عدم إحتواء قواعد البيانات الخاصة بك على أي صفوف مدرجة بجدول topics بالمعرف المدرج في رابط الصفحة كـ :
    
    ?topics=23
    يعني هذا إعادة الإستعلام الذي لديك لمصفوفة فارغة  . و بالتالي عدم إمكانية قراءة الخواص news_content و title من ناتج الإستعلام . يؤدي هذا بدوره إلى نتيجة مشابهة للتالي : 
    
    <meta name="keywords" content=" " />
    <meta name="description" content=" ">

     

  • الإحتمال الاخر هو في عدم إحتواء رابط الصفحة على معامل بالإسم topics أساسا , فبدل أن تقوم بتصفح رابط الصفحة عن طريق : 
    
    https://domain.dm/path/to/my_page.php?topics=22

    أنت تقوم بالتصفح إليه كالتالي : 

    
    https://domain.dm/path/to/my_page.php

    يعني هذا تجاوز الشرط : 

    
    <?php if( isset($_GET['topics']) ) : ?> 

    و كل ما يقتضيه , و المرور مباشرة إلى شطر العبارة الشرطية الاخر : 

    
    <?php else : ?>
    <title> موقع ....... </title>
    <?php endif; ?>

    مما يؤدي إلى عدم ظهور الوصف و الكلمات المفتاحية . 

لتجاوز هاته المشكلة , يقترح تصدير قواعد البيانات التي لديك على الخادم المحلي و إستيرادها في خادمك المستضيف . 

يقترح جانبا التأكد من أن الإتصال بقواعد البيانات يتم بشكل عادي , و من أن الجدول الذي تحاول القراءة من عليه يحوي بشكل عادي صفوفا يمكن القراءة منها . 

ربما لم تفهم قصدي بشكل دقيق فانا اقصد ان description يظهر في المتصفح من المفترض ان يكون مختفي ولا يظهر للزوار والصور توضح لك ذلك

هذه الصورة للموقع بالوسم keywords فقط

<meta name="keywords" content="<?=$keywords ?>" />

p_2140qr2mg1.png

والصورة التالية بالوسمين معا description , keywords

__________

<meta name="keywords" content="<?=$keywords ?>" />
<meta name="description" content="<?= $description = substr(''.$row['news_content'].'', 0, 1000); ?>">

p_2140h78bv1.png

ومصدر الصفحة بعد اضافة الوسمين كالتالي

p_2140w9pqx1.png

أي ان المشكلة ليست فى وسم الكلمات المفتاحية انما المشكلة في وسم الوصف _ لاحظ انني اقتطع جزء من محتوى الموضوع لكي يظهر فى الوصف لكنة يظهر اعلى هيدر الصفحة والطبيعي الا يظهر كذلك مثل الكلمات المفتاحية التي لم تظهر اثناء التصفح

تم التعديل في بواسطة Hamada Ahmed
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 ساعات قال Adnane Kadri:

ليكن في العلم أن محتوى الخاصية content يقبل نصا فقط , في حين أنك تقوم بتقديم محتوى HTML إليه . لاحظ : 


<meta name="description" content="<p style="text-align:center;""

و بسبب علامتي التنصيص المفتوحتين في : 


content="<p style="text-align:center;">"
        ^          ^                     

فإن المتصفح يقوم بقراءة ما يقدم له كمحتوى HTML عادي , و بطبيعة الحال فإن هذا سيؤدي إلى ظهوره في الصفحة كـ HTML عادي . 
يحتمل أنك تقوم بإستعمال محرر نصوص لتحرير نص الوصف عن طريق لوحة التحكم , تأكد أنك لا تقوم بذلك , و أن الحقل news_content محتوى نصي فقط و لا يحوي أية وسوم أو عناصر HTML . يمكنك كحل لهاته المشكلة إلغاء تفعيل محرر النصوص الذي تستعمله على مدخل هذا الحقل في مكان ما بلوحة التحكم أين تقوم بتحديث نص الوصف . 

يحتمل أيضا أنك تقوم بإستهداف حقل غير الذي تقوم بتخزين المحتوى النصي فيه . 

تأكد من كل من السابق و أخبرني ما إن استمرت مشكلتك بالظهور . 

قمت باضافة حقل للوصف بالجدول- قبل الارسال يتم اقتصاص جزء من المحتوى وتحويله الى نص ويتم تخزينة بهذه الصورة

$description = strip_tags(substr(''.$_REQUEST['news_content'].'', 0, 1000));    

ويكون كود الوصف كالتالي

<meta name="description" content="<?=''.$row['description'].'' ?>">

هل برأيك الطريقة جيد ام لا - قمت بتجربتها ونجحت بالفعل لكن احتاج الى رأيك

تم التعديل في بواسطة Hamada Ahmed
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...