如何解码php中另一个函数中编码的函数中的数组?
我在一个函数中对$result进行了编码,并尝试解码并与另一个函数中的条件匹配。代码如下:如何解码php中另一个函数中编码的函数中的数组?,php,function,Php,Function,我在一个函数中对$result进行了编码,并尝试解码并与另一个函数中的条件匹配。代码如下: function postOperation(){ include("function/db.php"); $name = $_POST['name']; $mfsname = $_POST['mfsname']; $mfsnumber = $_POST['mfsnumber']; $amount = $_POST['amount']
function postOperation(){
include("function/db.php");
$name = $_POST['name'];
$mfsname = $_POST['mfsname'];
$mfsnumber = $_POST['mfsnumber'];
$amount = $_POST['amount'];
$pin_no = $_POST['pinno'];
$insert_info = "insert into table_name(name, mfs_name, mfs_number, amount, pin_no)
values('$name', '$mfsname', '$mfsnumber', '$amount', '$pin_no')";
$success=0;
$insert_final = mysqli_query($conn,$insert_info);
if($insert_final){
$success=1;
$result["success"]=$success;
}
json_encode($result);
}
function getOperation(){
$array = json_decode($result, true);
if($array["success"] == 1){
echo "<script>alert('Transaction successful!')</script>";
}
}
函数操作后(){
包括(“function/db.php”);
$name=$_POST['name'];
$mfsname=$_POST['mfsname'];
$mfsnumber=$_POST['mfsnumber'];
$amount=$_POST['amount'];
$pin_no=$_POST['pinno'];
$insert_info=“插入表格名称(名称、制造商名称、制造商编号、金额、pin编号)
值(“$name”、“$mfsname”、“$mfsnumber”、“$amount”、“$pin_no”);
$success=0;
$insert\u final=mysqli\u查询($conn,$insert\u info);
如果($insert_final){
$success=1;
$result[“success”]=$success;
}
json_编码($result);
}
函数getOperation(){
$array=json_decode($result,true);
如果($array[“success”]==1){
回显“警报('事务成功!')”;
}
}
存在一些逻辑错误
$success=0;
$result[“success”]=$success//我添加了这一行
并添加了一个返回json_encode($result)代码>
查看完整代码:
function postOperation(){
include("function/db.php");
$name = $_POST['name'];
$mfsname = $_POST['mfsname'];
$mfsnumber = $_POST['mfsnumber'];
$amount = $_POST['amount'];
$pin_no = $_POST['pinno'];
$stmt = mysqli_prepare("insert into table_name(name, mfs_name, mfs_number, amount, pin_no) values(?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, "ssiii", $name, $mfsname, $mfsnumber, $amount, $pin_no);
$success=0;
$result["success"]=$success;
if(mysqli_stmt_execute($stmt)){
$success=1;
$result["success"]=$success;
}
return json_encode($result);
}
function getOperation($result){
$array = json_decode($result, true);
if($array["success"] == 1){
echo "<script>alert('Transaction successful!')</script>";
}
}
还有一件重要的事情:您的sql语句不安全。将有SQL注入
请参阅链接:您需要从操作后返回$result
,并将其传递到getOperation
(或在两个函数中声明为全局值…)您正在体验的结果是什么?预期的结果是什么?请添加一些说明,以便其他人能够更好地帮助您代码>没有任何效果。它将$result
的值编码为JSON并删除编码值。您应该将其存储在变量中,或者,如果您想在函数外部访问它,则让函数返回它。您的代码容易受到SQL注入的攻击。您应该使用准备好的语句。您忘记了向函数定义中添加参数。@EI_Vanja,我已经提到了在函数getOperation()
中为$\u POST
硬编码一些值,因此无需将参数传递给函数getOperation()
在您建议的答案中,您正在向它传递一个参数(getOperation($result)
),并在函数内部使用该变量($array=json\u decode($result,true)
),但您没有定义使用参数的函数(function getOperation(){
)。这将导致未定义的变量错误。
$result = postOperation();
getOperation($result);