Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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 post to.php文件不起作用-在浏览器中手动输入URL到相同的.php文件起作用_Php_Javascript - Fatal编程技术网

一台服务器上的javascript post to.php文件不起作用-在浏览器中手动输入URL到相同的.php文件起作用

一台服务器上的javascript post to.php文件不起作用-在浏览器中手动输入URL到相同的.php文件起作用,php,javascript,Php,Javascript,我在理解如何将javascript(客户端)变量传输到php(服务器端)作为会话时遇到了一些问题: 现在我的处境是,我使用firebug尝试调试正在发生的事情,但这毫无意义: 我有这个函数来更新iframe,我想在该iframe显示的页面上传递: function frameclick(pageurl) { $.post("session_write.php?", { frameurl : pageurl }

我在理解如何将javascript(客户端)变量传输到php(服务器端)作为会话时遇到了一些问题:

现在我的处境是,我使用firebug尝试调试正在发生的事情,但这毫无意义:

我有这个函数来更新iframe,我想在该iframe显示的页面上传递:

function frameclick(pageurl)
 {
        $.post("session_write.php?",
    {
            frameurl : pageurl             
    }

    $("#iFrame1").attr('src', pageurl);
    console.log  ('<?php echo "logout:".$langpath.$_SESSION['frameurl'];?>');
 }
然后它将在$\u SESSION[“frameurl”]变量中正确设置

我简直无法理解在浏览器中执行javascript post和手动执行javascript post有什么不同,为什么会导致这个问题


有人有想法吗?谢谢

您使用的是执行post请求的
.post
,但是当您在地址栏中键入URL时,这是一个GET请求


$\u GET
检索通过GET传递的任何参数,而
$\u POST
检索通过POST传递的任何参数。因此,如果您将
.post
与Javascript一起使用,但尝试在PHP中使用
$\u GET
进行检索,则此操作将不起作用。

当您将变量发布到PHP文件时,未设置
$\u GET
。改用
$\u POST['frameurl']
。此外,您似乎在
框架中缺少一个关闭参数单击
结束
post
调用。

您正在通过
POST
请求并检索所有GET请求。改用
$\u POST
。您可能还对
$\u请求

感兴趣,只需阅读您的javascript即可-您的
$。post
也不会关闭。但是请阅读下面的答案以获得解决方案,您的PHP正在访问
GET
变量,您的javascript正在
POST
ing它。在PHP中,您可以将
$\u GET
更改为
$\u REQUEST
,这样它可以同时用于GET和POST,但这不是建议的,所以请将其更改为
$\u POST
,这样它可以用于JS,但您无法通过键入URL来测试它。应该早点问我,我已经连续几个小时对这篇文章发牢骚了:(删除了snark。堆栈溢出不是snark的地方。我现在觉得很愚蠢:(只是试图更改我的帖子以获得它,它工作了。这是一个复制/粘贴错误。但也非常感谢。)
#session_write.php
<?php
session_start();
print_r($_GET['frameurl']);
if (isset($_GET['frameurl'])) 
{
$_SESSION['frameurl'] = $_GET['frameurl'];
print_r($_SESSION);
}
?>
//localhost/phpmenu/session_write.php?frameurl=lang%2Fen%2Fnew.htm