Tathmini ya PHP formu
- Kwanza Matumizi ya Fomu ya PHP
- Pya Zaidi Fomu ya PHP ya Kipekelezo
Hii la kuanzo huku na kuanzo kilichofuata, huzungumza kuhusu matukio ya kumtumia PHP kumekua data ya foramu.
Tathmini ya PHP formu
Mafanikio:Inafaa kuangalia usalama kwa kumtumia PHP formu!
Makadirio hizi yataonyesha matukio ya kumtumia PHP formu kwa ukubwa wa usalama. Kuwa na uangalifu wa sahihi wa formu ya HTML kwa kusikia wakulima na barua zinaudai zimekuwa muhimu!
Forumi za HTML zetu zina zawadi za input field: field za text zilizotakiwa na zilizokwenda, choo na botton za kusajia:
Foramu inayotumiwa kwa masharti ya tathmini zifuatazo:
Mwako | Masharti ya Tathmini |
---|---|
Name | Inayotakiwa. Inafaa kuwa na herufi na machafuko. |
Inayotakiwa. Inafaa kuwa na barua pepe ya sahihi (inahesabi @ na .). | |
Website | Inayotakiwa. Ikiwa inafaa kuwa na, lazima iwe na URL sahihi. |
Comment | Inayotakiwa. Mahali ambapo inafaa kuwa na input text kwa matukio mengi. |
Gender | Inayotakiwa. Inafaa kuwa na uchaguzi moja. |
Sikitiko tukangalia kodini ya HTML ya formu hii kila mara:
Mwako wa text
name, email na website ni viwango vya input text, comment ni kati ya text area. Inayotaka HTML ni kama iliyotakiwa hapa:
Name: <input type="text" name="name"> E-mail: <input type="text" name="email"> Website: <input type="text" name="website"> Comment: <textarea name="comment" rows="5" cols="40"></textarea>
Mbinu ya choo
gender ni mbinu ya choo, inayotaka HTML ni kama iliyotakiwa hapa:
Gender: <input type="radio" name="gender" value="female">Female <input type="radio" name="gender" value="male">Male
Mbinu ya formu
Inayotaka HTML ya formu ni kama iliyotakiwa hapa:
如果避免 $_SERVER["PHP_SELF"] 被利用?
通过使用 htmlspecialchars() 函数能够避免 $_SERVER["PHP_SELF"] 被利用。
表单代码是这样的:
通过 PHP 验证表单数据
我们要做的第一件事是通过 PHP 的 htmlspecialchars() 函数传递所有变量。
在我们使用 htmlspecialchars() 函数后,如果用户试图在文本字段中提交以下内容:
- 代码不会执行,因为会被保存为转义代码,就像这样:
<script>location.href('http://www.hacked.com')</script>
现在这条代码显示在页面上或 e-mail 中是安全的。
在用户提交该表单时,我们还要做两件事:
- (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
- (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\)
Kisha tunapokea kifaa cha kuchaangazia (kama inaonekana kwa kusoma kwa uharibifu, hii inafaa kwa kusaidia kufanya kazi kwa kiasi kikubwa)
Tunaeleza kifaa kwa jina test_input()
Sasa, tunaweza kucheckisha kila kipimo cha $_POST kwa kusaidia kufanya hii: test_input()
Mfano
<?php // kufaa kipimo na kuzingatia kwa thelathini $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = test_input($_POST["name"]); $email = test_input($_POST["email"]); $website = test_input($_POST["website"]); $comment = test_input($_POST["comment"]); $gender = test_input($_POST["gender"]); } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?>
Tukielezea kwa kuangalia mivuno ya mwanzo, tukielezea kama fomu inatumiwa kwa kusema $_SERVER["REQUEST_METHOD"] . Ikiwa REQUEST_METHOD ni POST, fomu inaelewa - na inahitajika kumtumia kumtumia. Ikiwa hayajaelewa, inasifanya kusikia kumtumia kumtumia fomu ya kafaka.
Kwa hivyo, kwenye mivuno ya juu, mengineo yote ya kuingia ni chaguo. Inafaa kwamba mtumishi hauingia data yoyote, skripta inaweza kuendelea kwa kufanya kazi.
Hata hivyo, kwenye mivuno ya juu, tukielezea kama fomu inatumiwa kwa kusema $_SERVER["REQUEST_METHOD"] . Ikiwa REQUEST_METHOD ni POST, fomu inaelewa - na inahitajika kumtumia kumtumia. Ikiwa hayajaelewa, inasifanya kusikia kumtumia kumtumia fomu ya kafaka.
- Kwanza Matumizi ya Fomu ya PHP
- Pya Zaidi Fomu ya PHP ya Kipekelezo