![]() |
הבחנה בין אותיות
טוב עשיתי טופס התחברות .. (ממסד נתנוים).
והשם משתמש במסד הוא . Amirs_5 עכשיו שאני בא להתחבר ככה : amirs_5 הוא לא נותן לי , חייב לרשום את האות הגדולה .. אממ .. אז איך אפשר לפתור את זה ?! |
ציטוט:
strtolower בשביל לעשות את ההשוואה. |
זה לא טוב זה הופך את זה לאותיות קטנות.
|
ציטוט:
כלומר SELECT*FROM `asd` WHERE `name`='admir_5' ? או שאתה מוצא את זה מהמסד ואז משווה למשתנה? |
לא אחי .. תראה ישלי תופס התחברות .
והוא לא נותן להתחבר רק אם מקישים את השם שמתמש מדוייק. אז אם תרשום AMIRוהשם משתמש הוא amir הוא לא יכניס אותך וזה גם ההפך : אם תרשום AMIR והשם משתמש amir ואני צריך לסדר את זה שיתן להכנס. |
תשתמש בפונקציה ucfirst
|
ציטוט:
הפונקציה הזאת תהפוך את האות הראשונה לאות גדולה! למשל, לפני hello אחרי Hello ומה שהוא הביא היה רק דוגמה! ככה שאם המשתמש הוא losnIr אז זה יהפוך ל LosnIr אז זה לא יעבוד... אין פונקציה כזאת, אבל אתה יכול לנסות בשאילתא שמחפשת את המשתמש להוסיף אליה LIKE = .. |
אתה יכול להציג פה את השאילתא שלך ?
|
ציטוט:
השתמשתי בקוד הנ"ל : PHP קוד:
עכשיו אחרי זה יש טופס .. טוב אז פשוט אני מכניס את זה לקוקיז.. אבל אי אפשר להקיש תשם משתמש בכל אות שרוצים לטופס התחברות. |
אז למה אתה לא שם את שניהם בפונקציה של הקטנת האותיות?
ודרך אגב, הדבר שאתה בודק בה ממש לא יעילה. |
ציטוט:
אממ..עדיף לך לעשות שאילתא של חיפוש השם משתמש...ואז לעשות אם הוא לא קיים וכו'...ואז להשוות סיסמה במקרה והוא קיים.....כנס לguidemaster.co.il יש שם מדריך התחברות נורמאלי. |
ציטוט:
זאת אומרת: select....... wher username= and password= ואם זה מחזיר TRUE זאת אומרת ששניהם קיימים באותה השורה אז לחבר אותו |
ציטוט:
|
ציטוט:
חחחח שעתיים הם יחכו עד שזה ימצא אותם, ויעיפו אותו מהשרת בגלל שהשאילתת הזאת תוכל ת'אימא של המעבד או הזיכרון אחד מהם.. |
אז מה אפשר לעשות לא הבנתי ..
מה אני לא אמור לרוץ בלולאת while על כל הטבלה ?.. |
ציטוט:
|
תעשה ככה:
sql="selete ......... where username='"&username&"' and password='"&password&"' ... if(.eof) ... אין לי מושג איך כותבים את זה ב PHP, תבדוק אם השם משתמש והסיסמא קיימים ע"י SQL, אם זה קיים אז תתחבר, אם לא תחזיר שגיאה. לא יודע איך לכתוב לך את זה ב PHP אבל כתבתי את העיקרון. |
PHP קוד:
תהנה |
ציטוט:
אבל זה לא טוב! אתם נדבקת לדוגמה שהוא נתן, אז זה יעבוד רק עם משתמשים שרשומים באותיות קטנות אבל הם רשמו באותיות גדולות... אב אם זה ההפך? זה רר ידפוק עוד יותר.. הקטע כאן זה להתאים את האותיות של המשתמש שהוא הזין לאותיות המקוריות.. אבל אין פונקציה כזאת לפי מה שידוע לי... אז צריך למצוא פונקציה כמו WHERE שהיא לא case_sentesiv ולדעתי LIKE יעזור כאן. |
ציטוט:
להמיר את זה לאותיות קטנות ואז להשוות. אין פתרון אחר. |
תהפוך את שני השמות זה שבמסד וזה שנקלט לקטנות ותשווה....אין דרך אחרת
|
ציטוט:
תקשיב, המטרה היא שבמצב שהמשתמש הזין: HoStS והכינוי הרשום במסד הוא: Hosts זה עדין יזהה את זה כתקין. |
ציטוט:
ושהוא יתחבר יהיה כתוב לו מחובר כ Hosts ולא HoStS ולא הבנתי למה להפוך אותם לקטנים ?1 כי במסד האותיות לא בקטן |
אז תשלוף את שניהם בקטן!
תקטין את שניהם בהוצאה! מה הבעיה לא הבנתי?? הביאו לך כבר קוד(למרות שאף פעם לא ידעתי שיש כזה דבר LOWER ב SQL אבל עכשיו אני יודע:)). תשים אותו. תבדוק איתו. יצא נכון? תשלוף את שם המשתמש שוב מהמסד כמו שהמשתמש נרשם איתו. |
תראה מה רשמתי
תראה מה רשמתי ועובד לי :)
PHP קוד:
|
ציטוט:
יש לך פונקציה אידיאלית, LOWER ולך לא בא להשתמש בא. אתה בטוח שאתה מתכנת ? :\ זה כמו לקבל כפית זהב לפה ולהגיד לא. |
למה אחי זה לא מצליח לי דף לבןן =]
והדר שרשמתי עבדה אז אני לא מבין מה הבעיה איתה , כי רשמתי HosTs ובמסד רשום Hosts והתחבר |
ציטוט:
אמרו לך את זה כבר 3323 פעמים ואתה הולך עם הראש בקיר! אז תלך עם הראש בקיר ואל תתפלא שהאתר שלך בשלב מוקדם לא יזוז, ויעיפו אותך מהאחסון. |
ציטוט:
ככה? PHP קוד:
|
PHP קוד:
אתה לא יודע SQL? |
ציטוט:
אז אני לא יודע איך לכתוב את זה בגלל זה ניסיתי בדרך אחרת |
ציטוט:
הוא שולף מהמסד את הרשומות שבהם שם המשתמש שווה למה שהקישו (סביר להניח שיש יוזר אחד כזה בלבד) והוא עובר על הנתונים בלולאה (סה"כ נתון אחד) ככה שזה לא טחינה מי יודע מה של השרת. |
somebody לא שמתי לב שנתת לי קוד חשבתי שציטט..
אז הנה מה שנתת לי .. קוד:
$q = mysql_query("SELECT * FROM members WHERE LOWER(username)='LOWER($name)' AND password='$pass'"); קוד:
LOWER(username)='LOWER($name)' הוא HosTs אז הוא הופך אותו ל hosts ?... אוקיי את זה הבנתי.. אבל שהוא יבצע יתחבר יהיה כתוב לו מחובר כ hosts במקום כ Hosts.. הוא ישמור בקוקיז hosts ולא Hosts |
ציטוט:
את מה שהוא הקיש אלא תשלוף את המשתמש שהשוותה מהמסד ואז תציב לתוך הערך $name |
ציטוט:
עריכה : אבל יש לי בעיה אחרת שקשורה .. רשמתי ככה: קוד:
$q = mysql_query("SELECT * FROM members WHERE LOWER(name)='LOWER($name)' AND password='$pass'"); |
סליחה על הדאבל , פשוט נעלם לא כפתור העריכה .. לא יודע למה מוזרר..
טוב עשיתי ניסוי כזה=] תראו מה רשמתי.. PHP קוד:
ותנחשו מה היה הפלט ? האימייל של אותו משתמש בלבד.. מכאן נובע = >> השורה : PHP קוד:
אני לא יודע להתעסק עם פונקציות ב SQL .. כמו LOWER.. אז אשמח אם מישהו יוכל לתקן לי אותה.. |
ציטוט:
(יש לו עכשיו משתמש OHAD ועכשיו שהוא רושם ohad זה לא נותן לא, למשל שימו לב בפורום פה תתחבר עם איזה אותיות שבא לך כאילו OhAd למשל.. וכד) בקצרה המשתמש שהוא הגדיר זה OHAD למשל, הוא רוצה שבמידה והוא ירשום ohad באותיות קטנות זה יתחבר לו למשתמש OHAD באותיות הגדולות |
ציטוט:
חשבתי הוא עושה WHILE עד הוא מוצא שם משתמש ששווה לשם שהתקבל. |
אמיר, הקוד שלך לא יעבוד מהסיבה הפשוטה. אתה לא יודע PHP וSQL :\
תבצע על המשתנה $name פונקציה בPHP אשר הופכת את האותיות לקטנות. לא, זה לא LOWER. נתנו לך קוד ברמת העיקרון, אתה צריך משם להבין קצת לבד, קצת לחשוב מחוץ לקופסא... |
אני יודע PHP , רק אסקיואל ברמה נמוכה ..=]
ולא מצאתי פונקציה כזאתי במנואל.. יש לי עוד שאלה שמיהו ציטט ב SQL , מה עושה LIKE= ? |
כל הזמנים הם GMT +2. הזמן כעת הוא 02:11. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ