2016-12-25 5 views
0

Я использую DataTables, но это вызывает ошибку, и я не могу найти, где ошибка.Предупреждение об ошибке на стороне сервера DataTables

Я хочу использовать обработку на стороне сервера, потому что после вставки 11k строк это отставание.

Error

код я использую:

<?php 
/* Database connection start */ 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "accounts"; 

$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error()); 

/* Database connection end */ 


// storing request (ie, get/post) global array to a variable 
$requestData= $_REQUEST; 


$columns = array( 
// datatable column index => database column name 
    0 =>'type', 
    1 => 'country', 
    2 => 'information', 
    3 => 'seller', 
    4 => 'price' 
); 

// getting total number records without any search 
$sql = "SELECT type, country, information, seller, price "; 
$sql.=" FROM accounts WHERE type2='1'"; 
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); 
$totalData = mysqli_num_rows($query); 
$totalFiltered = $totalData; // when there is no search parameter then total number rows = total number filtered rows. 


$sql = "SELECT type, country, information, seller, price "; 
$sql.=" FROM accounts WHERE type2='1' AND 1=1"; 
if(!empty($requestData['search']['value'])) { // if there is a search parameter, $requestData['search']['value'] contains search parameter 
    $sql.=" AND (type LIKE '".$requestData['search']['value']."%' ";  
    $sql.=" OR country LIKE '".$requestData['search']['value']."%' "; 

    $sql.=" OR information LIKE '".$requestData['search']['value']."%')"; 

     $sql.=" OR seller LIKE '".$requestData['search']['value']."%')"; 

} 
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); 
$totalFiltered = mysqli_num_rows($query); // when there is a search parameter then we have to modify total number filtered rows as per search result. 
$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." "; 
/* $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc */  
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); 

$data = array(); 
while($row=mysqli_fetch_array($query)) { // preparing an array 
    $nestedData=array(); 

    $nestedData[] = $row["type"]; 
    $nestedData[] = $row["country"]; 
    $nestedData[] = $row["information"]; 
     $nestedData[] = $row["seller"]; 
    $nestedData[] = $row["price"]; 


    $data[] = $nestedData; 
} 



$json_data = array(
      "draw"   => intval($requestData['draw']), // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw. 
      "recordsTotal" => intval($totalData), // total number of records 
      "recordsFiltered" => intval($totalFiltered), // total number of records after searching, if there is no searching then totalFiltered = totalData 
      "data"   => $data // total data array 
      ); 

echo json_encode($json_data); // send data as json format 

?> 

Я не найдя каких-либо решений.

Ошибка, которая показывает на PHP файл

Image

+0

я вижу инъекции SQL уязвимость? – GurV

+0

Да, я так думаю. Это из этого кода, который я получил из Google. –

+0

Всегда указывайте свои ошибки как текст, а не изображения. Если вы можете заменить вышеприведенное при следующем входе, это будет здорово. Вы увидите, что этот вопрос был задан раньше, в «Связанной» боковой панели ([например, здесь] (http://stackoverflow.com/q/4261133/472495)). – halfer

ответ

2

$requestData не имеет начала и порядка ключей, поэтому используйте isset() или empty() функции, чтобы проверить, если они не являются пустыми, то только использовать их.

Например:

LIMIT " . (empty($requestData['start']) ? 
    'whatever you want to put default value' : 
    $requestData['start']) 
+0

Не работает. –

Смежные вопросы