פורסם 2009 באפריל 1816 שנים הפונקציה הבאה אמורה לזהות את הזחלן של גוגללמה היא לא עובדת?function is_googlebot() {if (eregi("Googlebot",$_SERVER['HTTP_USER_AGENT'])){ $ip = $_SERVER['REMOTE_ADDR']; $name = gethostbyaddr($ip); $host = gethostbyname($name); if(eregi("Googlebot",$name)){ if ($host == $ip) return true; else return false; } else return false;} else return false;}תודה.
פורסם 2009 באפריל 1816 שנים הפונקציה הבאה אמורה לזהות את הזחלן של גוגללמה היא לא עובדת?הקוד הארוך של הפונקציה...תודה.תראה, אני לא מבין גדול בזחלן של גוגל, וגם לא ב PHP, אבל ממה שאני מצליח להבין בקוד שלך, יש לך כמה שורות (לכאורה) מיותרות.בגדול, יש לך תנאי מאוד פנימי שאתה רוצה לבדוק- כאשר הוא אמת - החזר אמת, בכל מקרה אחר- החזר שקר.אתה יכול להמיר את הקוד שלך, בקוד הקצר יותר הבא:function is_googlebot() {if (eregi("Googlebot",$_SERVER['HTTP_USER_AGENT']) ){ $ip = $_SERVER['REMOTE_ADDR']; $name = gethostbyaddr($ip); $host = gethostbyname($name); if(eregi("Googlebot",$name) && $host == $ip) return true;} return false;}אין צורך ב else, אם כבר הוחזר ערך אמת, הפונקציה לא תמשיך הלאה.אותו עיקרון לגבי שאר ה- return false, אין צורך בכ"כ הרבה כאלה.[הערת אגב- אתה יכול להמיר את הקוד שלך לקוד אולטרה-קטן וללא משתנים כלל, אבל זה כבר מיותר לחלוטין.]ובקשר לפעולה עצמה של הפונקציה שבנית: קראתי את התעוד של הפונקציה eregi, וגיליתי נקודה מעניינת:Return ValuesReturns the length of the matched string if a match for pattern was found in string , or FALSE if no matches were found or an error occurred.If the optional parameter regs was not passed or the length of the matched string is 0, this function returns 1.מה שאומר ככל הנראה, שהפונקציה תמיד תחזיר true, כי כל ה eregi מחזירות 1 - התנאי הבוליאני אמת (true), ולכן כל התנאים שלך בעצם לא מתפקדים.אולי כדאי לך לנסות את stristr, (תיעוד: http://il2.php.net/manual/en/function.stristr.php), ולבדוק מתי היא מחזירה ערך שקר (False).הקוד אמור לצאת בערך כזה (אם קיים אופרטור =! בPHP, כמו שכבר ציינתי אני לא בקיא מדי בשפה, אני מתכנת במקור בשפת ++C) :function is_googlebot() {if stristr("Googlebot",$_SERVER['HTTP_USER_AGENT']) != False ){ $ip = $_SERVER['REMOTE_ADDR']; $name = gethostbyaddr($ip); $host = gethostbyname($name); if(stristr("Googlebot",$name) != False && $host == $ip) return true;} return false;}לילה טוב!
פורסם 2009 באפריל 1916 שנים אני מניח שהבעיה היא עם הפונקציה gethostbyname שאמנם מחזירה ip אבל לאותו host יכול להיות יותר מ-ip אחד ולא בטוח שזה שחוזר זהה לזה שהתחלת איתו את התהליך. תנסה את הסקריפט הזה ותראה אם הוא עובד לך:http://are.ehibou.com/php-script-to-detect-and-verify-googlebotאיך בכלל אתה בודק ויודע שזה לא עובד?רק לידיעתך - על פי תקנות גוגל אסור להציג לזחלן תוכן שונה מאשר זה שמוצג למשתמש רגיל, זה יכול להביא למחיקת האתר מהאינדקס של גוגל.
פורסם 2009 באפריל 1916 שנים מחבר אני מניח שהבעיה היא עם הפונקציה gethostbyname שאמנם מחזירה ip אבל לאותו host יכול להיות יותר מ-ip אחד ולא בטוח שזה שחוזר זהה לזה שהתחלת איתו את התהליך. תנסה את הסקריפט הזה ותראה אם הוא עובד לך:http://are.ehibou.com/php-script-to-detect-and-verify-googlebotאיך בכלל אתה בודק ויודע שזה לא עובד?רק לידיעתך - על פי תקנות גוגל אסור להציג לזחלן תוכן שונה מאשר זה שמוצג למשתמש רגיל, זה יכול להביא למחיקת האתר מהאינדקס של גוגל.אני משתמש באדסנס, ועצם זה שאני ממשיך לקבל מודעות שירות ולא מודעות אדסנס אני מסיק שהזחלן לא מצליח לקרוא את העמוד.בנוסף לזה יש להם זחלנים סמויים שבודקים את האתר במיוחד בשביל זה...אני לא מציג תוכן שונה, זהו עמוד לרשומים בלבד (בדיקת סשן) והגוגל בוט אינו משתמש רשום לכן כשהו מגיע לעמוד הוא מופנה לעמוד ההרשמההאם בכל זאת זה יכול לקבל "קנס" על זה? יש דרך אחרת?והאם הזחלן (הסמוי) בכלל יכול לקרוא PHP? הרי כל הבדיקה נעשת באיזור PHP כך שהוא לא מודע אליה
פורסם 2009 באפריל 1916 שנים יש דרכים אחרות למנוע כניסה של ה-googlebot לדפים מסויימים:http://en.wikipedia.org/wiki/Googlebotמה זאת אומרת "לקרוא PHP"? הזחלן לא רואה את קוד ה-PHP שלך, הוא רואה רק את ה-HTML שנוצר בסופו של דבר.
פורסם 2009 באפריל 1916 שנים לא ברור לי בדיוק מה אתה מנסה לעשות אבל יש לי הרגשה שיש לזה פתרונות אחרים. - אם אתה רוצה שגוגל לא ינסה לאנדקס דפים מסויימים אז פשוט תגדיר את הדפים האלו בקובץ robots.txt. - אם אתה רוצה שגוגל כן יצליח לאנדקס דפים שמאחורי הרשמה אז יש אפשרות להרשם בגוגל webmasters ולתת ל-googlebot שם וסיסמה שבעזרתם הוא יכנס ויאנדקס את הדפים האלה. כדאי בכל מקרה לפתוח חשבון ב-webmasters ושם תוכל לראות אם ואיזה בעיות יש לזחלן כשהוא עובר על האתר שלך. מה זה בכלל זחלן? זחלן (crawler) זו תוכנה שקוראת דפי אינטרנט, במקרה הזה לצורך הוספתם לחיפוש של גוגל.
פורסם 2009 באפריל 1916 שנים מחבר לא זכור שהזכרתי את המילים "לא לאנדקס", אני רוצה בדיוק ההיפך.ולא לאנדקס , אלא לקרוא את התוכן על מנת להתאים את האדסנס לתוכן.אני כן רוצה שהזחלן יכנס לעמוד , אך משפט התנאי בתחילת העמוד שבודק אם קיימת סשן של משתמש רשום (מה שהוא לא) מפנה אותו לעמוד אחר במקום לתת לו להכנס להמשך הקוד.
פורסם 2009 באפריל 2016 שנים כאמור זו לא הדרך הנכונה - זה בדיוק מה שאסור לעשות.הדרך הנכונה - בחשבון ה-AdSense יש עמוד Site Authentication שבו אתה יכול להגדיר לזחלן ה-AdSense (שהוא נפרד מה-googlebot הכללי) דף כניסה, שם וסיסמה שבעזרתם הוא יוכל להכנס ולקרוא את הדפים המוגנים באתר שלך. כמו כן אתה תצטרך כנראה לפתוח גם חשבון google webmaster כדי לאמת שהאתר אכן שייך לך.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.