Penapisan Data PHP: Input Tarikh dan Masa Memproses
Ikhtisar:
Apabila membangunkan aplikasi web, selalunya perlu memproses data tarikh dan masa yang dimasukkan oleh pengguna. Memandangkan input pengguna mungkin mengandungi pelbagai format dan ralat, penapisan dan pengesahan data yang berkesan diperlukan untuk memastikan ketepatan dan keselamatan data. Artikel ini menerangkan cara menggunakan PHP untuk mengendalikan input tarikh dan masa serta menyediakan contoh kod yang sepadan.
1.1 Pengesahan format:
Pastikan format tarikh dan masa memenuhi keperluan yang ditetapkan, seperti tahun mestilah 4 digit, bulan dan hari mestilah dalam julat yang sah, dsb. Anda boleh menggunakan fungsi tarikh PHP atau ungkapan biasa untuk mengesahkan.
1.2 Pengesahan Julat:
Pastikan bahawa nilai tarikh dan masa berada dalam julat yang ditentukan, contohnya, bulan mestilah antara 1 dan 12, jam mestilah antara 0 dan 23, dsb.
1.3 Pengesahan Keselamatan:
Halang pengguna berniat jahat daripada memusnahkan keselamatan sistem melalui aksara khas atau suntikan kod. Anda boleh menggunakan fungsi penapisan PHP untuk menapis input pengguna, seperti fungsi htmlspecialchars()
函数用于转义特殊字符,strip_tags()
untuk mengalih keluar teg HTML, dsb.
2.1 Tahun-Bulan-Hari: Contohnya, 2019-10-01.
2.2 Bulan/Hari/Tahun: Contohnya, 10/01/2019.
2.3 Hari-Bulan-Tahun: Contohnya, 01-10-2019.
2.4 Tahun-Bulan-Hari Jam:Minit:Kedua: Contohnya, 2019-10-01 10:30:00.
Berikut ialah contoh kod untuk memproses input tarikh dalam format tahun-bulan-hari:
$date = $_POST['date']; // 假设用户输入的日期为2019-10-01 // 格式验证:确保日期格式为YYYY-MM-DD if (!preg_match('/^(d{4})-(d{1,2})-(d{1,2})$/', $date, $matches)) { // 日期格式不正确 echo '日期格式不正确!'; exit; } // 范围验证:确保年份、月份和日期在有效范围内 $year = intval($matches[1]); // 年份 $month = intval($matches[2]); // 月份 $day = intval($matches[3]); // 日期 if ($year < 1900 || $year > 2100 || $month < 1 || $month > 12 || $day < 1 || $day > 31) { // 日期不在有效范围内 echo '日期不在有效范围内!'; exit; } // 安全性验证:转义特殊字符 $date = htmlspecialchars($date); // 处理日期 // TODO: 在这里编写日期处理代码
3.1 jam:minit:saat: contohnya 10:30:00.
3.2 Jam: Minit: Contohnya, 10:30.
Berikut ialah contoh kod yang mengendalikan input masa dalam jam:minit:saat format:
$time = $_POST['time']; // 假设用户输入的时间为10:30:00 // 格式验证:确保时间格式为HH:MM:SS if (!preg_match('/^(d{1,2}):(d{1,2}):(d{1,2})$/', $time, $matches)) { // 时间格式不正确 echo '时间格式不正确!'; exit; } // 范围验证:确保时、分和秒在有效范围内 $hour = intval($matches[1]); // 时 $minute = intval($matches[2]); // 分 $second = intval($matches[3]); // 秒 if ($hour < 0 || $hour > 23 || $minute < 0 || $minute > 59 || $second < 0 || $second > 59) { // 时间不在有效范围内 echo '时间不在有效范围内!'; exit; } // 安全性验证:转义特殊字符 $time = htmlspecialchars($time); // 处理时间 // TODO: 在这里编写时间处理代码
Ringkasan:
Dengan menapis dan mengesahkan input tarikh dan masa, ketepatan dan keselamatan data dapat dipastikan. Dalam proses pembangunan sebenar, bergantung pada keperluan dan senario tertentu, pemprosesan yang lebih kompleks mungkin diperlukan, seperti mengira perbezaan tarikh, membandingkan jujukan masa, dsb. Fungsi ini boleh dilaksanakan dengan mudah menggunakan fungsi tarikh dan masa yang disediakan oleh PHP, digabungkan dengan proses penapisan dan pengesahan data yang sesuai. Sila bangunkan dan uji sewajarnya berdasarkan keperluan sebenar dan contoh kod di atas.
Atas ialah kandungan terperinci Penapisan data PHP: mengendalikan input tarikh dan masa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!