Переменная теряет свою ценность - PullRequest
0 голосов
/ 21 сентября 2011

Я просмотрел стопку вопросов и ответов, но не увидел ничего, что можно было бы тут применить напрямую.Может быть, я просто что-то упускаю.

Приведенный ниже код работает нормально, за исключением случаев, когда я включаю свой оператор where, который ссылается на значение переменной $ wp_user_id.

Я проверил, чтопеременная на самом деле заполняется $ user_id при загрузке скрипта.Похоже, что значение этой переменной теряется сразу после вызова функции conManager, но я не понимаю, почему.В файле ConnectionManager.php (который определяет функцию conManager), похоже, нет ничего, что могло бы коснуться этой переменной, поэтому я в растерянности.

Я хакер PHP, так что идилегко для меня, но что заставляет меня терять значение моей переменной, и как мне ее решить?Вот код:

<?php
include_once("/home/evaluate/public_html/admin/php/ConnectionManager.php");
header('Content-type:text/javascript;charset=UTF-8');

$wp_user_id = $_GET["user"];

$json1=json_decode(stripslashes($_POST["_gt_json"]));
$pageNo = $json1->{'pageInfo'}->{'pageNum'};
$pageSize = $json1->{'pageInfo'}->{'pageSize'};


if(isset($json1->{'sortInfo'}[0]->{'columnId'})){
    $sortField = $json1->{'sortInfo'}[0]->{'columnId'};
}
else{
    $sortField = "miles_on_oil";
}    

if(isset($json1->{'sortInfo'}[0]->{'sortOrder'})){
    $sortOrder = $json1->{'sortInfo'}[0]->{'sortOrder'};
}
else{
    $sortOrder = "ASC";
}    

if($json1->{'sortInfo'}[0]->{'sortOrder'} == "defaultsort"){
    $sortField = "miles_on_oil";
    $sortOrder = "ASC";
}


 if($json1->{'filterInfo'}[0]->{'value'} != "") {

for ($i = 0; $i < count($json1->{'filterInfo'}); $i++) {
    if($json1->{'filterInfo'}[$i]->{'logic'} == "equal"){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . "='" . $json1->{'filterInfo'}[$i]->{'value'} . "' ";
    }elseif($json1->{'filterInfo'}[$i]->{'logic'} == "notEqual"){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . "!='" . $json1->{'filterInfo'}[$i]->{'value'} . "' ";    
    }elseif($json1->{'filterInfo'}[$i]->{'logic'} == "less"){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . "<" . $json1->{'filterInfo'}[$i]->{'value'} . " ";
    }elseif($json1->{'filterInfo'}[$i]->{'logic'} == "lessEqual"){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . "<=" . $json1->{'filterInfo'}[$i]->{'value'} . " ";    
    }elseif($json1->{'filterInfo'}[$i]->{'logic'} == "great"){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . ">" . $json1->{'filterInfo'}[$i]->{'value'} . " ";
    }elseif($json1->{'filterInfo'}[$i]->{'logic'} == "greatEqual"){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . ">=" . $json1->{'filterInfo'}[$i]->{'value'} . " ";        
    }elseif($json1->{'filterInfo'}[$i]->{'logic'} == "like"){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . " LIKE '%" . $json1->{'filterInfo'}[$i]->{'value'} . "%' ";        
    }elseif($json1->{'filterInfo'}[$i]->{'logic'} == "startWith"){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . " LIKE '" . $json1->{'filterInfo'}[$i]->{'value'} . "%' ";        
    }elseif($json1->{'filterInfo'}[$i]->{'logic'} == "endWith"){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . " LIKE '%" . $json1->{'filterInfo'}[$i]->{'value'} . "' ";                
    }elseif($json1->{'filterInfo'}[$i]->{'logic'} == ""){
        $filter .= $json1->{'filterInfo'}[$i]->{'columnId'} . " LIKE '%" . $json1->{'filterInfo'}[$i]->{'value'} . "' ";    
        }            
    $filter .= " AND ";

}
}

else {
    $filter = '';
    }


//print_r ($json1);
//die;



// Temp TEsting Values



// End Temp Testing Values



$conManager = new ConManager();
$conManager->getConnection();


 if($json1->{'action'} == 'load'){



//to get how many records totally.
$sql = "select count(*) as cnt from oil_analysis_data where $filter user_id = '".$wp_user_id."'";
$handle = mysql_query($sql);
$row = mysql_fetch_object($handle);
$totalRec = $row->cnt;



$sql2 = "select * from oil_analysis_data where $filter user_id = '".$wp_user_id."' ORDER BY " . $sortField . " " . $sortOrder . " limit " . ($pageNo - 1)*$pageSize . ", " . $pageSize;
  $handle2 = mysql_query($sql2);

  $retArray2 = array();

while($row2 = mysql_fetch_assoc($handle2)) {

//    Grab Vehicle Make, Model & Year "Names" from their respective tables & insert into the array

         $year = "select Name from vehicle_data_years where ID =  {$row2['list1']}";
         $year1 = mysql_query($year);
         $year2 = mysql_fetch_assoc($year1); 
         $year3 = $year2['Name'];

         $make = "select Name from vehicle_data_makes where ID =  {$row2['list2']}";
         $make1 = mysql_query($make);
         $make2 = mysql_fetch_assoc($make1); 
         $make3 = $make2['Name'];

         $model = "select Name from vehicle_data_all where ID =  {$row2['list3']}";
         $model1 = mysql_query($model);
         $model2 = mysql_fetch_assoc($model1); 
         $model3 = $model2['Name'];

    $row2['list1'] = $year3;
    $row2['list2'] = $make3; 
    $row2['list3'] = $model3; 

// Grab Motor oil Viscosity, Brand & Product "Names" from their respective tables & insert into the array

         $visc = "select name from viscosity where id =  {$row2['viscosity']}";
         $visc1 = mysql_query($visc);
         $visc2 = mysql_fetch_assoc($visc1); 
         $visc3 = $visc2['name'];

         $brand = "select brandname from oil_brand where brandid =  {$row2['brand']}";
         $brand1 = mysql_query($brand);
         $brand2 = mysql_fetch_assoc($brand1); 
         $brand3 = $brand2['brandname'];

         $product = "select product_name from oil_data where id =  {$row2['product']}";
         $product1 = mysql_query($product);
         $product2 = mysql_fetch_assoc($product1); 
         $product3 = $product2['product_name'];


    $row2['viscosity'] = $visc3;
    $row2['brand'] = $brand3; 
    $row2['product'] = $product3; 


    if($row2['bypass_filtration'] == 1) {

        $row2['bypass_filtration'] = "<img src='http://themotoroilevaluator.com/admin/php/crud/images/checkmark.png' style='border: 0px;'>";
        }

    else {$row2['bypass_filtration'] = "";
        }

    if($row2['oil_change'] == 1) {

        $row2['oil_change'] = "<img src='http://themotoroilevaluator.com/admin/php/crud/images/checkmark.png' style='border: 0px;'>";
        }

    else {$row2['oil_change'] = "";
        }

    $retArray[] = $row2;



    }

$analysis_data = json_encode($retArray);

$ret = "{data:" . $analysis_data .",\n";
$ret .= "pageInfo:{totalRowNum:" . $totalRec . "},\n";
$ret .= "recordType : 'object'}";
echo $ret;


}



?>

Ответы [ 3 ]

2 голосов
/ 21 сентября 2011

Мне любопытно, почему вы добавляете точку с запятой после $wp_user_id;? Я заметил, что вы делаете это в нескольких местах. Это может быть виновником.

$filter user_id = '".$wp_user_id;."'";
0 голосов
/ 21 сентября 2011

Nevermind. Может показаться, что моя проблема на самом деле возникла из-за изменения в моем коде, о котором я забыл. Я изменил $ _REQUEST ['user'] на $ _GET ['user'], полагая, что в этом случае, поскольку значение передается в виде строки запроса URL, это не будет проблемой.

Если честно, я все еще не совсем уверен, почему это имело значение - хотя я могу исследовать это самостоятельно. Но, во всяком случае, изменение этой спины полностью решило мою проблему.

Спасибо тем, кто откликнулся. Даже если бы не решение моей настоящей проблемы, информация от обоих оказалась очень полезной.

0 голосов
/ 21 сентября 2011

Любой хакер может серьезно испортить или удалить вашу базу данных из-за того, как вы используете прямые данные, предоставленные пользователем, для построения вашего SQL-запроса.Вместо этого, пожалуйста, прочтите SQL-инъекцию и использование подготовленных PHP-операторов.

Релевантно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...