سؤال

أنا أستخدم PHP لجعلها حتى تقوم حركة المرور الواردة بموقع الويب الخاص بي بإلحاق المعلومات اعتمادًا على محرك البحث. أقوم بإعداد $ _session ['kw'] ، إذا لم يتم تعيينه بالفعل ، لاتصل لي أنه SEO ولإلحاق مصطلحات البحث:

  if (isset($result['q']))
   $_SESSION['kw'] = 'seo-'.str_replace('\\"',"X",$result['q']);

  elseif (isset($result['p']))
   $_SESSION['kw'] = 'seo-'.$result['p'];

else {some other stuff}

س هو ما هو Google و MSN وطلبه لاستفساراتهم ، P هو ل Yahoo. الذي يغطي معظم حركة المرور الواردة. حسنًا ، أريد الآن تغييره قليلاً ، بحيث إذا كانت صفحة الإحالة هي Yahoo ، فإنها تُلحق Y ، إذا كانت Google A G ، MSN M إلخ.

حاولت:

if (isset($result['q'])& strstr($_SERVER['HTTP_REFERER'],'google'))
   $_SESSION['kw'] = 'seo-G-'.str_replace('\\"',"X",$result['q']);

elseif (isset($result['q'])& !strstr($_SERVER['HTTP_REFERER'],'google'))
   $_SESSION['kw'] = 'seo-M-'.str_replace('\\"',"X",$result['q']);

  elseif (isset($result['p']))
   $_SESSION['kw'] = 'seo-Y-'.$result['p'];

    else {some other stuff}

لكن لا يمكنني جعل الأول إذا كان ذلك صحيحًا. إذا أتيت من Ask.com ، فأنا أحصل على "SEO-M ملحق" ، لكن لا يمكنني حتى عند القدوم من Google ، أحصل عليه إلى إلحاقه. هل أنا فقط أقوم بتنسيقها بشكل خاطئ؟

هل كانت مفيدة؟

المحلول

تغيير & إلى &&. هذا هو المشغل المعتاد لمعظم لغات البرمجة للمنطق "و" و "و"

في PHP لديك && أو وللعمليات المنطقية المنطقية.

وعادة ما يستخدم في عمليات البت ، وهو خطأ هنا.

نصائح أخرى

أعتقد أنك تستخدم الخطأ والمشغل ، يجب استخدامك && ليس مجرد &. Ampersand واحد هو لعمليات bitwise.

محاولة:

if (isset($result['q']) && strstr($_SERVER['HTTP_REFERER'],'google'))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top