AngHell Ni SummerPark Ответов: 1

Как санировать ввод данных поиска пользователя с помощью mysqli


я только начинаю изучать mysqli и не знаю, как применить его в моем старом проекте..
Итак вот мой код:
<?php
    $sName = "***";
    $conInfo = array( "Database"=>"***", "UID"=>"***", "PWD"=>"***");

    $oconn = sqlsrv_connect( $sName, $conInfo);

    if( !$oconn ) {
        die( print_r( sqlsrv_errors(), true));
    }

      if(isset($_POST['searchimput'])) {
          if(empty($_POST['coc_type'])){
     echo 'Please Supply Policy type and search by field';
          }
         else {
    $plateno = $_POST['searchimput'];
    $coc_type = $_POST['coc_type'];

    $searchBy =$_POST['filter'];
    echo'<span  class="sr-paregister2">';
    echo 'POLICY TYPE : '.$coc_type;
    echo "<br>\n";

    switch ($searchBy) {
        case "PLATE_NO":
            echo "PLATE NUMBER : .".$plateno;
            break;
        case "SERIAL_NO":
            echo "CHASSIS NUMBER :".$plateno;
            break;
        case "MOTOR_NO":
            echo "MOTOR NUMBER :".$plateno;
            break;
        default:
            echo "";
    }
    echo'</span>';
    echo "<br>\n";
    echo '<hr>';

    $odsql =" select statement here ";

    $ostmt = sqlsrv_query( $oconn, $odsql);

    $row_count = sqlsrv_has_rows( $ostmt );

    if ($row_count === false)
       echo "No record found";
    else
    while( $value = sqlsrv_fetch_array( $ostmt,SQLSRV_FETCH_NUMERIC))
    {
       (do this......)
    }

    sqlsrv_free_stmt( $ostmt);
    sqlsrv_close( $oconn);
    }
    }

    ?>



а также как мне санировать этот код с помощью mysqli?
спасибо

Что я уже пробовал:

я только начинаю изучать mysqli и не знаю, как применить его в моем старом проекте..

Jochen Arndt

И в чем же ваша проблема?

Кроме того, код, как правило, выглядит нормально sqlsrv_close( $oconn); должно быть вызвано после последнего закрытия'}', и имя параметра 'searchimput' может быть неправильным (O ожидал бы, что это будет 'searchinput').

И вы знаете, что используемые функции PHP SQL предназначены для баз данных Microsoft SQL Server, требующих драйвера MS SQLSRV для PHP?

Мы не можем помочь больше, потому что мы не знали о вашей базе данных, и вы даже не показали действительный SQL-запрос.

1 Ответов

Рейтинг:
2

Richard Deeming

Не "санируйте" его; используйте параметры:
PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]

Вы также хотите, чтобы HTML-код закодировать любой ввод данных пользователем перед эхом в ответ:
РНР: htmlentities - руководство пользователя[^]