PHP/פלט HTML עם PHP: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Crazy Ivan (שיחה | תרומות)
מ {{PHP}}, קטגוריה
Mad dr (שיחה | תרומות)
מאין תקציר עריכה
שורה 1:
{{PHP}}
שפת PHP יודעת לפלוט קודי [[HTML]] ו SCRIPT[[JavaScript]] בתוך הפלט הסטנדרטי של PHP.<br />
למעשה, מקרה כזה אינו מסובך בPHP ,וזה יתבצע על ידיי פלט רגיל.<br />
לאחר הפלט, הקוד יתבצע מכיוון שהוא רץ על ה[[דפדפן]]הדפדפן ולא על ה[[שרת]]השרת .<br />
את הפלט נבצע בצורה כזו:
<div style="text-align: centerleft;">
:<br /pre>
| echo " show it";<br>//line 1
{| border="1"
echo "<br />";<br>//no line
|+ PHP
!PHP0
|-
| echo " show it";<br>//line 1
echo "<br>";<br>//no line
echo "new line";//line 2
</pre>
</div>
הבעיה שנוצרת בגלל הפשטות הזו, היא בעיה של [[w:XSS|XSS]] שעלול להווצר בדפים.
===שימוש בקלט מהדפדפן===
מכיוון שפתיחת תסריט ה-PHP נעשית דרך הדפדן ישנה אפשרות לטפל בבקשות [[HTML/טפסים/מתחילים|GET ו-POST]] שנקבל מהמשתמש.<br />
הרצת ה-PHP דרך הדפדפן מכניסה את כל המשתנים במתודת GET למערך &lrm;$_GET ובהתאם את המשתנים בPOST למערך &lrm;$_POST. אם המשתמש ישלח את הבקשה הבאה: <!--&lrm; נועד ליישר את הדולר לצד שמאל של שם המשתנה-->
 
<div style="text-align: left;">
|}
<pre>https://he.wikibooks.org/w/index.php?title=PHP/%D7%A4%D7%9C%D7%98_HTML_%D7%A2%D7%9D_PHP&action=submit
</pre>
</div>
התסריט ידע להשתמש ב-&lrm;$_GET["title"]&lrm; וב-&lrm;$_GET["action"]&lrm; כמשתנים שהוא צריך להתייחס אליהם כאשר הוא מדפיס את הפלט שלו (כ-HTML)
הבעיה שנוצרת בגלל הפשטות הזו, היא בעיה של [[XSS]] שעלול להווצר בדפים.
===דוגמא ראשונה===
 
<div style="text-align: left;">
<pre>
<?php
print "<!DOCTYPE html>
<html>
<head>
<title>Calculator</title>
</head>
<body>
<form method='get'>
First number: <input type='text' size='50' name='num1' /><br />
Second number: <input type='text' size='50' name='num2' /><br />
<input type='submit' value='Sum it!' />
</form>
<hr />
Sum: <input type='text' size='50' name='sum' disabled='disabled' value='".sum($_GET["num1"],$_GET["num2"])."'/><br />
</body>
</html>";
 
function sum($num1, $num2)
{
return $num1+$num2;
|}
?></pre>
</div>
===הסבר דוגמא ראשונה===
הקוד ברובו הוא הדפסה של עמוד ה-HTML על ידי פונקצית print ושימוש במחרוזת אחת ארוכה המכילה את כל ה-HTML שאנחנו רוצים לתת לדפדפן. בנוסף הוספנו פונקציה המשמשת אותנו לסיכום המספרים, ואנחנו משתמשים בקלט שקיבלנו מאותו דף עצמו.
 
 
 
{{PHP|מוגבל=כן}}