שימוש במרכאות ב Text Area

russol

New member
שימוש במרכאות ב Text Area

שלום לכולם. כתבתי סקריפט בו המשתמש ממלא טופס שבו יש text area בשם reasons. את הערך שלו אני מקבל בדף שני ומשתמש ב (nl2br($reasons להצגת תוכנו. הבעיה קיימת כאשר משתמש מכניס ' או " אז מופיעים לי ה escape ( /). איך מציגים את ה string בצורה "נקייה"?
 

russol

New member
תודה, אבל

אני מכיר את הפונקציה הזו, אבל מה יקרה כאשר ה String יכיל / שהמשתמש הכניס?
 

N i X

New member
זה יהפוך ל \\ ואז

stripslashes יוריד סלש אחד. \ זה escape char, ולכן אם המשתמש מכניס \ יש צורך לעשות לו esc גם כן, כדאי שהוא יהפוך לתו רגיל. אני מקווה שהבנת, כי ההסבר לא יצא משהו, אבל השורה התחתונה, תשתמש בזה ואל תדאג, זה יעבוד 'סדר.
 

russol

New member
עובד יפה

אבל כעת אני נתקל בבעיה אחרת: את ה String אני שומר בטבלת MySQL בשדה מסוג longtext . כשאני מנסה לקרוא את המשתנה, אני מקבל את המחרוזת רק עד למרכאות. מה שבא אחרי לא מופיע. תודה מראש
 

N i X

New member
תביא את הקוד.

כשאתה מכניס את זה לSQL, אל תדגע בסלשים, רק כשאתה שולף strip. אחרת בquery שלך, יוצא שאתה מסיים את המחרוזת ב-' שהמשתמש רשם, ולא בסוף.
My name is O'riely אם תנסה לשים את זה בquery בלי escape יצא: INSERT into `bla` (`id`, `text`) VALUES ('My name is O'riely') אתה רואה את הבעיה כאן? ;)
לכן רק אחרי שאתה שולף אתה מוריד את ה escape, במידת הצורך.
 

N i X

New member
אני מה זה מפוזר היום...

INSERT INTO `bla` (`id`, `text`) VALUES (1, 'My name is O'riely')​
בכל אופן, אתה רואה שצריך escape באמצע? מוזר אבל שבסיס הנתונים לא זרק לך שגיאה, והכניס חלק מהטקסט...
 

russol

New member
עדיין בעייה...

אני אפרט קצת קוד... reasons הוא שם ה textarea בטופס, כאשר אני מקבל אותו ומכניס אותו לטבלה בצורה הבאה:
$q='insert into f (serno,reasons) values (1,"'.$reasons.'");​
כמו שאתה רואה אני מכניס את התוכן ללא מניפולציות. כמו כן, ניסיתי להשתמש ב addslashes לפני ההכנסה- עדיין לא עוזר...
 

N i X

New member
נסה

$q = "insert into `f` (`serno`,`reasons`) values (1,'$reasons');";​
 

N i X

New member
אהה, ואם אתה מתכוון לסלאש אחר

אז stripslashes לא נוגע בהם, רק בסלאש של ה escape.
 
למעלה