הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   (php) מחפש פונקציה לטיפול בhtml (https://hosts.co.il/forums/showthread.php?t=16185)

אורי 18-02-06 21:52

(php) מחפש פונקציה לטיפול בhtml
 
כבר הרבה זמן שלא התעסקתי עם php ושכחתי פונקצייה אחת די חשובה..
הפונקצייה שאם נניח מישהו כותב לך קוד של html/js או כל שפה אחרת זה לא יריץ את הקוד על השרת אלא רק יציג אותו (אם נניח מישהו כותב את הפקודה
HTML קוד:

<script language="javascript">
alert("gdf");
</script>

זה יציג את הקוד עצמו (לא בתווי ווינדוס וכאלה שטויות אלא בדיוק בצורה שכתבו את זה ולא יעלים את זה כמו strip_tags) אבל לא יריץ אותו.


חוץ מזה שאלה שאף פעם לא הצלחתי לענות לעצמי עליה היא:
מה ההבדל בין mysql_real_escape_string לבין mysql_escape_string ואיך משתמשים בכל אחד..


תודה רבה מראש למי שיענה על שתי השאלות או אפילו רק שאלה אחת.

d0rix 18-02-06 21:57

לאיזה מטרה אתה צריך את זה?

בניה 18-02-06 22:07

בס"ד


אתה רוצה שהקוד יוצג בדפדפן אבל לא יורץ?(כתבת שרת לא דפדפן)
תעשה:
$string=str_replace('<','&#60;',$string);
$string=str_replace('>','&#62;',$string);

LosNir 18-02-06 22:45

ציטוט:

נכתב במקור על ידי בניה
בס"ד


אתה רוצה שהקוד יוצג בדפדפן אבל לא יורץ?(כתבת שרת לא דפדפן)
תעשה:
$string=str_replace('<','<',$string);
$string=str_replace('>','>',$string);

חחחח יש לך טעות בקוד, אתה בטח מתכוון ככה:

PHP קוד:

$string str_replace('<','&lt;',$string);
$string str_replace('>','&gt;',$string);
$string str_replace('\"','&quot;',$string); 


meshuga 18-02-06 23:34

נפתח

אורי 19-02-06 18:44

לא הבנתם אותי נכון..אני מכיר את הפונקצייה str_replace וזה לא מה שאני מחפש..גם strip_tags וגם htmlenitites ושתי הפונקציות לא מה שאני מחפש. אני לא מחפש להעלים תווים או להפוך את הטקסט לג'יבריש..אני מעוניין שאם מישהו כותב קוד html/js או כל שפה אחרת זה לא יבצע אותו אלא רק יציג אותו (הקוד כמו מההתחלה רק שלא יקפיץ הודעה של "gdf" אלא יציג את הקוד
<script language="javascript">
alert("gdf");
</script>

כמו נניח במערכת הזאת או כל מערכת אחרת.

d0rix 19-02-06 19:10

לא הסברת לי עדיין בשביל מה אתה צריך את זה, בכל מקרה אם הבנתי אותך נכון אז תרשום ככה:
קוד:

&lt;script language="javascript"&gt;
alert("gdf");
&lt;/script&gt;

ואז פשוט זה לא מריץ תקוד, אלא מראה אותו.
מקווה שעזרתי לך, יום טוב.

בניה 19-02-06 19:11

בס"ד


נכון, זה מה שזה יעשה.
ה>< יהפכו לסימנים אחרים ככה שהדפדפן לא יחשיב אותם כHTML והסקריפט לא יופעל.

BlueNosE 19-02-06 19:15

במערכת הזאת, עובדים עם str_replace או עם eregi_replace אם אני לא טועה..
והקוד הוא הקוד שנתנו למעלה.
אין שום אפשרות אחרת.
אם אני לא טועה יש פונקציה בHTML שמנטרלת פעילות תגים אבל אני לא בטוח..

DaNieLLL 19-02-06 19:21

למה לא בhtmlspecialchars?
http://il.php.net/htmlspecialchars

אורי 19-02-06 19:38

אני אסביר את זה עוד יותר פשוט..
במערכת הזאת אתה כותב <script language="javascript>gjgfch</script> וזה מציג את הקוד <script language="javascript>gjgfch</script>.
אני זוכר שיש פונקציה כזאת כי השתמשתי בה פעם אבל שכחתי אותה כבר.
כל הרעיונות של להפוך לתווים כדוגמת &lt; אני מכיר וזה לא המטרה שלי.
נניח המטרה של זה היא לאתר שעוסק בתיכנות ומן הסתם אם מישהו הולך לשאול שאלה אם קוד הוא רוצה שזה יציג את הקוד ולא יפעיל אותו ולא יחרבש אותו..(סתם דוגמה)
אני רוצה פשוט פונקציה שתגרום לזה שזה לא יפעיל את הקוד, רק יציג אותו.

BlueNosE 19-02-06 20:01

HTML קוד:

<div id="post_message_177511">אני אסביר את זה עוד יותר פשוט..<br />
במערכת הזאת אתה כותב &lt;script language=&quot;javascript&gt;gjgfch&lt;/script&gt; וזה מציג את הקוד &lt;script language=&quot;javascript&gt;gjgfch&lt;/script&gt;. <br />
אני זוכר שיש פונקציה כזאת כי השתמשתי בה פעם אבל שכחתי אותה כבר.<br />
כל הרעיונות של להפוך לתווים כדוגמת &amp;lt; אני מכיר וזה לא המטרה שלי.<br />
נניח המטרה של זה היא לאתר שעוסק בתיכנות ומן הסתם אם מישהו הולך לשאול שאלה אם קוד הוא רוצה שזה יציג את הקוד ולא יפעיל אותו ולא יחרבש אותו..(סתם דוגמה)<br />
אני רוצה פשוט פונקציה שתגרום לזה שזה לא יפעיל את הקוד, רק יציג אותו.</div>

רק רציתי להראות לך את הקוד הספציפי (מהקוד מקור של המערכת) בדף הזה.
הינה לך ההוכחה הכי מוצקה שאפשר לזה שהמערכות משתמשות בזה, ושאין דרך אחרת לעשות את זה.
תחשוב חכם.
הרי כל מה שבין < ל-> מופיע כתגית, גם אם הוא לא מכיל תוכן ממשי.. [לדוגמא <bla>]
אם ככה, בHTML הקוד חייב להיות מוצג בצורה הזאת:
HTML קוד:

<script>
bla
</script>

שזה אומר שזה יבצע את הסקריפט.
משמע- השיטה היחידה היא לעשות &lt; &gt. או פשוט, לחפש בw3c בריפרנס לHTML פקודה שמנטרלת פעילות תגים.

אורי 19-02-06 20:09

אוקיי תודה..נראה איך הולך לי, במידה ולא אני אפתח נושא חדש..
בינתיים מישהו יכול לענות לי על השאלה השנייה (מה ההבדל בין mysql_real_escape_string לבין mysql_escape_string ואיך משתמשים בכל אחד מהם)

BlueNosE 19-02-06 20:15

אין לי שמץ, אבל סביר להניח שזה קשור לערך ממשי- (real)
תסתכל באיתן.


כל הזמנים הם GMT +2. הזמן כעת הוא 20:28.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ