Я отправляю форму в скрипт с таким кодом:
foreach($_POST as $k=>$v){
if(!is_array($v)){$$k=dbenc($v);} else{$$k=$v;}
$_SESSION["cat"][$k]=$v;
}
$url=vlookup("url","cat","cat=$cat");
// $cat is an integer which originated from the same field value and has been re-posted
"vlookup":
function vlookup($field,$table,$criteria){
global $link;
if($table<>""){$from="FROM $table";}
if($criteria<>""){$criteria="WHERE $criteria";}
$r=mysqli_query($link,"SELECT $field as v $from $criteria") or die("VLOOKUP FAILED: $field $from $criteria".mysqli_error($link));
$n=mysqli_num_rows($r);
if($n>0){
$row=mysqli_fetch_assoc($r) or die(mysqli_error($link));
return $row["v"];
}
}
Проблема в том, что
print($cat);exit;
дает ожидаемый результат, но $cat
не отображается в выходных данных функции, например
showerror("$cat not found");
, и "vlookup", полагающийся на него, выдает ошибку предполагая, что после =
ничего нет. Печать запроса в отчете об ошибке подтверждает отсутствие значения $cat
в функции vlookup.
Это не имеет смысла!
Любые мысли или советы приветствуются.