Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Vệ sinh và xác thực biểu mẫu php

Bạn nên sử dụng PHP regex để xác thực nghiêm ngặt dữ liệu đầu vào của bạn.

Giả sử bạn muốn xác thực các trường nhập sau,

  • Tên người dùng
  • Mật khẩu
  • Tên
  • Họ
  • Email

sau đó bạn sẽ làm một cái gì đó như thế này,

if(isset($_POST['submit']) && !empty($_POST['submit'])){

    // use a boolean variable to keep track of errors
    $error = false;

    // Username validation
    $username = trim($_POST['username']);
    $username_pattern = "/^[a-zA-Z0-9]{3,15}$/"; // username should contain only letters and numbers, and length should be between 3 and 15 characters
    if(preg_match($username_pattern, $username)){
        // success
    }else{
        // error
        $error = true;
    }

    // Password validation
    $password = $_POST['password'];
    $confirm_password = $_POST['confirm_password'];
    if(strlen($password) >= 6 && $password===$confirm_password){ // length of the password should be greater than or equal to 6
       // success
    }else{
       // error
       $error = true;
    }

    // First name validation
    $first_name = trim($_POST['first_name']);
    $first_name_pattern = "/^[a-zA-Z]{2,15}$/";
    if(preg_match($first_name_pattern, $first_name)){ // first name should contain only letters and length should be between 2 and 15 characters
        // success
    }else{
        // error
        $error = true;
    }


    // Last name validation
    $last_name = trim($_POST['last_name']);
    $last_name_pattern = "/^[a-zA-Z]{2,15}$/";
    if(preg_match($last_name_pattern, $last_name)){ // last name should contain only letters and length should be between 2 and 15 characters
        // success
    }else{
        // error
        $error = true;
    }

    // Email validation
    $email = trim()
    $email_pattern = "/^([a-z0-9\._\+\-]{3,30})@([a-z0-9\-]{2,30})((\.([a-z]{2,20})){1,3})$/";
    if(preg_match($email_pattern, $email)){ // validate email addresses
        // success
    }else{
        // error
        $error = true;
    }

    if(!$error){
        // all fields are validated. Now do your database operations.
    }else{
        // display error message
    }
}

Và sử dụng Chuẩn bị PDO để ngăn cơ sở dữ liệu của bạn khỏi bất kỳ loại SQL Injection nào.

Từ PDO ::chuẩn bị



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql có hỗ trợ sp_getapplock không

  2. Cách giới hạn hàng trong tập kết quả MySQL

  3. MySQL foreach thay thế cho thủ tục

  4. Làm cách nào để tôi có thể tối ưu hóa hơn nữa truy vấn bảng dẫn xuất hoạt động tốt hơn truy vấn tương đương với JOINed?

  5. Mysql Trung bình trên cột thời gian?