לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #5  
ישן 11-10-2009, 16:42
  משתמש זכר phpier phpier אינו מחובר  
 
חבר מתאריך: 11.10.09
הודעות: 12
בתגובה להודעה מספר 4 שנכתבה על ידי dorM שמתחילה ב "מאיפה המידע של ה-DB מוצג לך..."

הקידוד באתר מוצג כ-windows-1255 והקידוד ב-DB מוגדר כ-latin_swedish_ci משהו כזה.
ניסיתי כל מיני אפשרויות hebrew_bin, utff8_bin, utf8_unicode וכו'
בכולם הנתונים מוצגים בטבלאות ה-DB כג'יבריש, אבל שוב במערכת הניהול ובאתר עצמו הנתונים מוצגים בצורה טובה (עברית windows-1255)

אני פשוט לא מבין מדוע אני מצליח לעשות rewrite בקובץ ה-htaccess כשהפרמטרים שעוברים ב-GET הינם באנגלית אבל בעברית לא.

לפי איך שזה נראה, כשאני מקליד באופן ידני את הקישור עם הפרמטר בעברית לדוג'
mydomain.co.il/בדיקה אז ה-htaccess לוקח את הפרמטר הזה ומשווה אותו לכתובת הדינמית המקורית שהיא:
index.php?page=$1 אבל כנראה המידע שנכנס למשתנה הזה עובר שינוי כלשהוא ולכן שאילתת ה-SQL לא עובדת בצורה נכונה (היא לא מוצאת נתונים ב-DB) יש למישהו מושג מה קורה פה לעזאזל?!
האם יש קשר לגרסת ה-WAMP? אני עובד עם WAMP2 ו - PHP5
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 12-10-2009, 08:26
  משתמש זכר phpier phpier אינו מחובר  
 
חבר מתאריך: 11.10.09
הודעות: 12
בתגובה להודעה מספר 8 שנכתבה על ידי dorM שמתחילה ב "אתה צריך לשמור את זה..."

אוקיי אז ככה:
htaccess:

קוד:
Options +FollowSymlinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1


דוגמא לקישור דינמי:

קוד PHP:
 http://localhost/****/public/index.php?page=%E3%E1%F8 


קריאה לקישור דרך הדפדפן:

דוגמאות:

קריאה לקישור ראשון (לא עובד)
קוד PHP:
 http://localhost/****/public/דבר 


קריאה לקישור שני (לא עובד)
קוד PHP:
 http://localhost/****/public/%E3%E1%F8 


קריאה לקישור שלישי (עובד!!!)
קוד PHP:
 http://localhost/****/public/test 


משום מה, כשאני קורא לקישור בתווי עברית רגילים ("דבר" לדוג') או בתוים מקודדים (%E3%E1%F8), זה לא עובד - יש הפנייה לדף הבית ישירות כתנאי לפרמטר שלא נמצא בקישור.

מצד שני, כשאני משתמש בתווי עברית רגילים ("דבר" לדוג) או בצורה המקודדת שלו (%E3%E1%F8) בקישורים הדינמיים לדוג' (index.php?page=%E3%E1%F8) או (index.php?page=דבר) אז זה כן עובד!!!


מה קורה כאן?!
תודה!!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 14-10-2009, 09:33
  משתמש זכר phpier phpier אינו מחובר  
 
חבר מתאריך: 11.10.09
הודעות: 12
בתגובה להודעה מספר 13 שנכתבה על ידי tnadav1 שמתחילה ב "[right]אני חושב שהבעיה היא..."

אוקיי חברים הבעיה נפתרה:
אני אציג את השלבים שעזרו לי בפתרון הבעיה על מנת שלאחרים גם תהיה אפשרות לפתור בעיות דומות:

אפשרות ראשונה
לקישורים כדוגמת הנ"ל:
קוד PHP:
 www.mydomain.co.il/קישור_דינמי 


1. המרת מסד הנתונים לקידוד utf-8
2. שמירת קובץ ה-htaccess בקידוד utf-8
3. המערכת מוציאה את הקישורים בפורמט הזה (mydomai.n.co.il/בדיקה_ראשונה) במקום בפורמט הזה (mydomain.co.il/index.php?page=1) הודות להסרת הפונקציה urlencode() מהפרמטרים של ה-URL

הבעיה בשיטה זו שהיא מתישה ומצריכה עבודת קידוד רצינית. ואני מאמין שהתקנה של אתר בהוסטים שונים תהווה בעיה חדשה שתצוץ בכל פעם. לכן, במקום לשבור ת'ראש, עדיף להשתמש בשיטה השניה שהיא קלה מאד, לא תגרום בעיות בהוסטים שונים ומעולה מבחינת SEO (כמובן חובה שההוסט יתמוך בקבצי htaccess ושהמודול-mod_rewrite יהיה פעיל)

אפשרות שניייה (קלה יותר)
לקישורים כדוגמת הנ"ל:
קוד PHP:
 www.mydomain.co.il/1_קישור_דינמי 


האפשרות הזו היא קלה יותר משום שלא צריך להתעסק בקידודים בכלל (לא DB, לא קידוד של האתר וכו') מאחר והפרמטר שעובר לhtacess הוא פרמטר מספרי המתאים ל-ID ב-DB של אותו שדה.

שלבים:

1. קובץ ה-htaccess

קוד:
Options +FollowSymlinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9]*)-(.*)$ index.php?page=$1


2. הביטוי הרגולרי דלעיל, לוקח את הפרמטר המספרי מהכתובת כדוגמת הנ"ל
קוד PHP:
 www.mydomain.co.il/1_קישור_דינמי 

ושולחת אותו ל-page=$1 וכך השדה נמצא ב-DB
לשיטה זו יכולות SEO ממש טובות שכן ניתן להזין בכתובות ה-URL מה שרוצים (מילות מפתח רלוונטיות וכו) מבלי לשבור ת'ראש עם קידודים וכדומה. הערך המספרי בקישור אינו מזיק הן מבחינת SEO והן מצד הגולש


זהו בגדול, אני רוצה להודות לכל החברים שעזרו בפתרון הבעיה!

שיהיה בהצלחה לכולם

שגיא
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #15  
ישן 14-10-2009, 13:08
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
בתגובה להודעה מספר 14 שנכתבה על ידי phpier שמתחילה ב "אוקיי חברים הבעיה נפתרה: אני..."

שום עבודת קידוד רצינית.
1) אתה מחליף את הקידוד וה-DB עושה בשבילך את העבודה
2) אתה דואג שבחיבור ל-db תישלח השאילתה SET NAME utf8
3) אתה שומר את כל הקבצים כ- utf-8 ללא BOM (סיכוי לא רע שיש תוכנה שיודעת להמיר מספר קבצים ל-utf-8 ככה שגם פה אתה לא צריך כלום)
4) (אם האתר בנוי טוב) אתה משנה את התאג meta ב- Template הראשי ל- utf-8

4 שלבים פשוטים וכל המערכת עוברת ל-utf-8, והמצב הפוך ממה שתיארת לגבי בעיות בסרברים אחרים.
ככל הנראה בדרך השנייה, שלא סידרת את ה-db יהיו בעיות בגלל שבשביל לתמוך בכל השפות, בסרברים הקידוד ב-db מוגדר כ- utf-8. בגלל זה אם אתה משתמש בעירבוב קידודים כמו שיש עכשיו, ובגלל זה אמרתי לך, בכל מקרה, עדיף בהרבה שתמיר את כל האתר ל-utf-8

בקיצור הדרך השנייה היא גם לגיטימית, אבל עדיין יש בעייה של קידוד
_____________________________________


תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 21:33

הדף נוצר ב 0.04 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר