Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我不能将这个变量从Javascript传递到PHP?_Javascript_Php_Variables - Fatal编程技术网

为什么我不能将这个变量从Javascript传递到PHP?

为什么我不能将这个变量从Javascript传递到PHP?,javascript,php,variables,Javascript,Php,Variables,这里怎么了?我正在尝试使用JS函数转换字符串: ?> //JS <script type="text/javascript"> var strIn = <?php echo json_encode($HTTP_RAW_POST_DATA); ?>; var strKey = key Decrypt3 = function (strIn, strKey) { var strOut = new String(); var lenIn = strIn.len

这里怎么了?我正在尝试使用JS函数转换字符串:

?>
//JS
<script type="text/javascript">
 var strIn = <?php echo json_encode($HTTP_RAW_POST_DATA); ?>;
 var strKey = key
 Decrypt3 = function (strIn, strKey) {
  var strOut = new String();
  var lenIn = strIn.length;
  var lenKey = strKey.length;
  var i = 0;
  var numIn;
  var numKey;
  while (i < lenIn) {
    numIn = parseInt(strIn.substr(i, 2), 32);
    numKey = strKey.charCodeAt(i / 2 % lenKey);
    strOut += String.fromCharCode(numIn - numKey);
    i += 2;
  }
  return strOut;    
  $.post('shop_list.php', {variable: strOut}); 
};
</script>
//JS

<?php
$strOut = $_POST['strOut'];
?>
//JS
var-strIn=;
var strKey=key
Decrypt3=函数(strIn,strKey){
var strOut=新字符串();
瓦尔·列宁=直线长度;
var lenKey=strKey.length;
var i=0;
var numIn;
var numKey;
而(我<列宁){
numIn=parseInt(strIn.substr(i,2),32);
numKey=strKey.charCodeAt(i/2%lenKey);
strOut+=String.fromCharCode(numIn-numKey);
i+=2;
}
回程行程;
$.post('shop_list.php',{variable:strOut});
};
//JS

您正在发送一个对象,并且键是
variable

$.post('shop_list.php', {variable: strOut}); 
这意味着它可以通过

$strOut = $_POST['variable'];
strOut
只是引用该值的javascript变量

您必须删除return语句,否则$.post函数永远不会运行

您的代码有很多问题。无特定顺序:

  • 从不调用
    Decrypt3
    函数

  • $.post
    永远不会被调用,因为它位于return语句之后。您可能希望return语句位于POST请求之后,如下所示:

    $.post('shop_list.php', {variable: strOut});
    return strOut;
    
  • json\u encode()
    变量将导致语法错误。你必须加上引号:

    var strIn = <?php echo "'", str_replace("'", "\\'", json_encode($HTTP_RAW_POST_DATA)), "'"; ?>;
    

    这两行在shop_list.php的底部吗?其他行是另一个页面的一部分吗?它们位于同一个php文件中。哪个是shop-list.phpIn您的代码什么是
    ?POST请求也发生在return语句之后。这给了我
    注意:未定义的索引:shop-list.php中的变量在第31行
    然后尝试调试,添加
    打印($\u POST)和一个成功处理程序,以查看返回的内容
    
    var strIn = <?php echo "'", str_replace("'", "\\'", json_encode($HTTP_RAW_POST_DATA)), "'"; ?>;
    
    <script type="text/javascript">
    function Decrypt3(input, key) {
        var out = "";
        for (var i = 0; i < input.length; i += 2) {
            var numIn = parseInt(input.substr(i, 2), 32);
            var numKey = key.charCodeAt(i / 2 % key.length);
            out += String.fromCharCode(numIn - numKey);
        }
        $.post('shop_list.php', {strOut: out});
        return out;
    };
    var strIn = <?php echo str_replace("'", "\\'", json_encode($HTTP_RAW_POST_DATA)); ?>;
    var strKey = "KEY OF SOME KIND...";
    Decrypt3(strIn, strKey);
    </script>
    <?php
    $strOut = $_POST['strOut'];
    ?>