Pengendalian dan pengesahan input pengguna dalam PHP: Mengendalikan input: Gunakan $_GET, $_POST, dsb. untuk mengakses input pengguna. Input penapis: Gunakan fungsi filter_var() untuk mengalih keluar aksara yang tidak diperlukan. Sahkan jenis input: Gunakan is_numeric() untuk mengesahkan nombor, is_string() dan jenis pengesahan lain. Pengesahan ungkapan biasa: Gunakan regex untuk memadankan corak data yang kompleks. Kes praktikal: Mengendalikan pengesahan borang, menapis input, mengesahkan jenis input dan mengendalikan ralat.
Cara Mengendalikan Input dan Pengesahan Pengguna dalam PHP
Kata Pengantar
Dalam pembangunan PHP, mengendalikan input pengguna dan mengesahkannya adalah penting untuk memastikan keselamatan dan kebolehpercayaan aplikasi. Artikel ini akan membimbing anda tentang cara menggunakan PHP untuk pemprosesan dan pengesahan input yang berkesan.
Pemprosesan Input Pengguna
Memproses input pengguna melibatkan penerimaan dan penyimpanan data yang dibekalkan pengguna. Dalam PHP, input pengguna boleh diakses menggunakan tatasusunan super global seperti $_GET
, $_POST
, $_REQUEST
. $_GET
、$_POST
、$_REQUEST
等超级全局数组来访问用户输入。
// 从表单接收数据 $username = $_POST['username']; $email = $_POST['email'];
输入验证
输入验证确保用户输入符合预期的格式和约束。这是防止恶意输入和数据损坏的关键步骤。
过滤输入
过滤可去除不需要的字符或格式。PHP 提供了 filter_var()
函数进行过滤:
// 过滤电子邮件地址,只留下合法的电子邮件格式 $filteredEmail = filter_var($email, FILTER_VALIDATE_EMAIL);
验证 输入类型
使用内置函数验证不同类型的输入:
is_numeric()
: 验证是否是数字is_string()
: 验证是否是字符串is_bool()
// 验证 "10" 是否为数字 if (is_numeric("10")) { echo "这是个数字"; }
Pengesahan input memastikan input pengguna mematuhi format dan kekangan yang diharapkan. Ini adalah langkah kritikal untuk mengelakkan input berniat jahat dan rasuah data.
Input penapisPenapisan mengalih keluar aksara atau pemformatan yang tidak diingini. PHP menyediakan fungsi filter_var()
untuk penapisan:
// 验证强密码,要求至少 8 个字符,包含大写字母、小写字母和数字 $strongPasswordRegex = '/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/'; if (preg_match($strongPasswordRegex, $password)) { echo "密码是安全的"; }
Gunakan fungsi terbina dalam untuk mengesahkan jenis input yang berbeza:
is_numeric ()< /code>: Sahkan sama ada ia adalah nombor<p><li><code>is_string()
: Sahkan sama ada ia adalah rentetanis_bool()
: Sahkan sama ada ia adalah nilai Boolean🎜🎜 <!-- HTML 表单 --> <form action="submit.php" method="post"> <input type="text" name="username"> <input type="email" name="email"> <input type="submit" value="提交"> </form>
// submit.php // 接收和过滤输入 $username = filter_var($_POST['username'], FILTER_SANITIZE_STRING); $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL); // 验证输入 if (empty($username)) { echo "用户名不能为空"; } elseif (empty($email)) { echo "电子邮件不能为空"; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "电子邮件格式无效"; } else { // 输入验证成功,可以继续处理 }
Atas ialah kandungan terperinci Cara mengendalikan input dan pengesahan pengguna dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!