Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan pengesahan data selepas penyerahan borang PHP

Bagaimana untuk melaksanakan pengesahan data selepas penyerahan borang PHP

王林
王林asal
2023-08-10 15:09:03990semak imbas

Bagaimana untuk melaksanakan pengesahan data selepas penyerahan borang PHP

Cara melaksanakan pengesahan data selepas penyerahan borang PHP

Apabila membangunkan aplikasi web, borang ialah salah satu cara yang paling biasa untuk berinteraksi dengan pengguna. Walau bagaimanapun, data yang diserahkan oleh pengguna selalunya tidak boleh dipercayai, jadi kami perlu mengesahkan data yang diserahkan oleh borang untuk memastikan keselamatan dan integriti data. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan pengesahan data selepas penyerahan borang.

  1. Penyerahan borang
    Pertama, kita perlu mencipta borang dalam halaman HTML dan tetapkan atribut action borang ke laluan fail PHP untuk memproses data yang diserahkan oleh borang. Contohnya:
<form action="handle_form.php" method="post">
  <input type="text" name="username" placeholder="用户名">
  <input type="password" name="password" placeholder="密码">
  <input type="submit" value="提交">
</form>
    action属性为一个PHP文件的路径,用来处理表单提交的数据。例如:
<?php
$username = $_POST['username'];
$password = $_POST['password'];

// 验证用户名
if (empty($username)) {
  echo "用户名不能为空";
}

// 验证密码
if (empty($password)) {
  echo "密码不能为空";
}

// 验证邮箱
$email = $_POST['email'];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo "邮箱格式不正确";
}

// 验证URL
$url = $_POST['url'];
if (!filter_var($url, FILTER_VALIDATE_URL)) {
  echo "URL格式不正确";
}
?>
  1. 数据验证
    在处理表单提交的PHP文件中,我们可以使用$_POST全局变量来获取表单提交的数据。然后,针对不同的表单字段,我们可以进行相应的验证。

例如,我们可以使用empty()函数来检查必填字段是否为空,使用filter_var()函数来验证邮箱地址和URL等特定格式。

<?php
$errors = [];

// 验证用户名
if (empty($username)) {
  $errors['username'] = "用户名不能为空";
}

// 验证密码
if (empty($password)) {
  $errors['password'] = "密码不能为空";
}

// 验证邮箱
$email = $_POST['email'];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  $errors['email'] = "邮箱格式不正确";
}

// 验证URL
$url = $_POST['url'];
if (!filter_var($url, FILTER_VALIDATE_URL)) {
  $errors['url'] = "URL格式不正确";
}

if (!empty($errors)) {
  foreach ($errors as $error) {
    echo $error;
  }
}
?>

在上面的示例中,我们先使用empty()函数来检查用户名和密码是否为空,如果为空,则输出对应的提示信息。然后,我们使用filter_var()函数来验证邮箱和URL是否符合相应的格式,如果不符合,则输出对应的提示信息。

  1. 错误处理
    可以考虑将错误信息存储在一个数组中,以便统一输出错误提示。
<?php
$username = $_POST['username'];
$username = mysqli_real_escape_string($conn, $username);
// ...
?>

通过将错误信息存储在$errors数组中,并在提交后遍历输出错误信息,可以实现统一的错误处理和提示。

  1. 安全性考虑
    除了数据的完整性验证,我们还应该考虑数据的安全性。因此,我们应该对从表单提交的数据进行安全过滤和转义,以防止SQL注入等常见攻击。
rrreee

在上面的示例中,我们使用mysqli_real_escape_string()Pengesahan data

Dalam fail PHP yang mengendalikan penyerahan borang, kita boleh menggunakan pembolehubah global $_POST untuk mendapatkan data penyerahan borang. Kemudian, kami boleh melakukan pengesahan yang sepadan untuk medan borang yang berbeza.

Sebagai contoh, kita boleh menggunakan fungsi empty() untuk menyemak sama ada medan yang diperlukan kosong dan fungsi filter_var() untuk sahkan alamat e-mel dan format khusus seperti URL.
rrreee

Dalam contoh di atas, kami mula-mula menggunakan fungsi empty() untuk menyemak sama ada nama pengguna dan kata laluan kosong Jika ia kosong, maklumat segera yang sepadan akan dikeluarkan. Kemudian, kami menggunakan fungsi filter_var() untuk mengesahkan sama ada e-mel dan URL sepadan dengan format yang sepadan Jika ia tidak sepadan, maklumat segera yang sepadan akan dikeluarkan. 🎜
    🎜Ralat pengendalian🎜Anda boleh mempertimbangkan untuk menyimpan maklumat ralat dalam tatasusunan untuk mengeluarkan gesaan ralat secara seragam.
rrreee🎜Dengan menyimpan maklumat ralat dalam tatasusunan $errors dan melintasi serta mengeluarkan maklumat ralat selepas penyerahan, pengendalian ralat bersatu dan gesaan boleh dicapai. 🎜
    🎜Pertimbangan keselamatan🎜Selain pengesahan integriti data, kami juga harus mempertimbangkan keselamatan data. Oleh itu, kami harus menapis dan melarikan data yang diserahkan daripada borang dengan selamat untuk mengelakkan serangan biasa seperti suntikan SQL.
rrreee🎜Dalam contoh di atas, kami menggunakan fungsi mysqli_real_escape_string() untuk melepaskan nama pengguna dengan selamat, yang boleh menghalang pengguna daripada menyerahkan data yang mengandungi aksara khas secara berniat jahat. 🎜🎜Ringkasan🎜Melalui langkah di atas, kami boleh mengesahkan data selepas borang diserahkan, seterusnya meningkatkan keselamatan permohonan. Dalam aplikasi sebenar, pengesahan yang lebih fleksibel boleh dilakukan berdasarkan keperluan khusus, dan JavaScript bahagian hadapan boleh digabungkan untuk pengesahan masa nyata untuk meningkatkan pengalaman pengguna. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengesahan data selepas penyerahan borang PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn