PHP/פלט HTML עם PHP: הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
Crazy Ivan (שיחה | תרומות) מ {{PHP}}, קטגוריה |
מאין תקציר עריכה |
||
שורה 1:
{{PHP}}
שפת PHP יודעת לפלוט קודי [[HTML]] ו
למעשה, מקרה כזה אינו מסובך בPHP ,וזה יתבצע על ידיי פלט רגיל.<br />
לאחר הפלט, הקוד יתבצע מכיוון שהוא רץ על
את הפלט נבצע בצורה כזו:
<div style="text-align:
▲| 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 למערך ‎$_GET ובהתאם את המשתנים בPOST למערך ‎$_POST. אם המשתמש ישלח את הבקשה הבאה: <!--‎ נועד ליישר את הדולר לצד שמאל של שם המשתנה-->
<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>
התסריט ידע להשתמש ב-‎$_GET["title"]‎ וב-‎$_GET["action"]‎ כמשתנים שהוא צריך להתייחס אליהם כאשר הוא מדפיס את הפלט שלו (כ-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|מוגבל=כן}}
|