JavaScript >> Javascript tutorial >  >> Tags >> PHP

Rengør input ved hjælp af PHP

Oprindeligt postet @ https://codeanddeploy.com besøg og download prøvekoden:https://codeanddeploy.com/blog/php/sanitize-input-using-php

I denne tutorial går vi til desinficeringsinput i PHP, før vi gemmer det i vores database. Dette er en af ​​de vigtigste at gøre, når du gemmer poster online, fordi vi ikke ved, hvad vores besøgende tænker, og måske giver nogle af dem ondsindede data til vores applikation. For mere information besøg venligst sanitize filters på PHPs officielle hjemmeside.

Så i mine tidligere tutorials tilføjer jeg en funktion, der renser inputtet, før jeg gemmer det i vores database. Se venligst eksempelkoden nedenfor.

function sanitize($input) 
{
    if(is_array($input)):
        foreach($input as $key=>$value):
            $result[$key] = sanitize($value);
        endforeach;
    else:
        $result = htmlentities($input, ENT_QUOTES, 'UTF-8');
    endif;

    return $result;
}

Som du kan se fra ovenstående kode, opretter jeg sanitize()-funktionen inde i functions.php fil. Og jeg har en parameter kaldet $input variabel. Så tjekker jeg, om $input-variablen er et array, hvis ja, så sløjfer jeg $input-variabelværdien og kalder derefter funktionen igen med strengværdien.

Så hvis din $input-variabelværdi ikke er et array, kalder den htmlentities()-funktionen for at konvertere de ondsindede tegn til HTML-enheder. Så brug denne funktion, hvis din besøgende indtaster et script som dette:

<script> alert("This is a message"); </script>

Så vil den konvertere tegnene til dette.

&lt;script&gt;alert( &quot;This is a message&quot; );&lt;/script&gt;

Som du kan se, vil scriptet ikke læses længere, når du ser det, fordi vi allerede har konverteret det til enheder.

Så næste gang kalder jeg sanitize()-funktionen inde i min save.php fil her er, hvordan den ser ud.

$request = sanitize($_REQUEST);

Så jeg renser $_REQUEST Super Global-variablen, før jeg gemmer den i vores database.

Her er den komplette kode for min save.php fil.

<?php
    // include config file
    require_once 'config.php';

    //a PHP Super Global variable which used to collect data after submitting it from the form
    // Sanitize fist the values of this variable
    $request = sanitize($_REQUEST);
    //get email address value
    $email = $request['email']; 
    //get first name value
    $first_name = $request['first_name'];
    //get last name value 
    $last_name = $request['last_name'];
    //get address value
    $address = $request['address'];

    // Defined $result as array
    $result = [];

    if(!isEmailValid($email)):
        $result['has_error'] = 1;
        $result['response'] = "Email address is invalid.";
    elseif(isEmailExists($db, "employees", $email)):
        $result['has_error'] = 1;
        $result['response'] = "Email address is already exists.";
    endif;

    // Check if no errors
    if(!count($result)):
        // SQL Statement
        $sql = "INSERT INTO employees (email, first_name, last_name, address)
        VALUES ('".$email."', '".$first_name."', '".$last_name."', '".$address."')";

        // Process the query
        if ($db->query($sql)) {
          $result['response'] = "Employee has been created.";
        } else {
          $result['response'] = "Error: " . $sql . "<br>" . $db->error;
        }

        // Close the connection after using it
        $db->close();
    endif;

    // Encode array into json format
    echo json_encode($result);


?>

Okay, du er nu klar, og dine data er rene, før vi behandler dem. Så jeg håber, at du har din idé nu, hvor vigtigt det er, og implementerer det i dine projekter. Jeg håber, at denne tutorial kan hjælpe dig. Besøg venligst her https://codeanddeploy.com/blog/php/sanitize-input-using-php, hvis du vil downloade denne kode.

Tak og Happy Coding :)