jQuery发布到php文件

jQuery发布到php文件,php,javascript,jquery,session,Php,Javascript,Jquery,Session,我有一个index.html文件,我想在加载时运行一些jQuery。本质上,我想根据一些会话变量检查用户是否已经登录 因此index.html将包含一些jQuery,它使用$(document).ready(function(){}) 在这个函数中,我只想启动authoritate.php,它检查是否设置了$\u会话['user'],如果设置了,那么它将重定向到主页,否则它将重定向到登录页面 如何在没有html表单的情况下发布jQuery?我只是想发布到一个网址 编辑: 根据@jondavidj

我有一个index.html文件,我想在加载时运行一些jQuery。本质上,我想根据一些会话变量检查用户是否已经登录

因此index.html将包含一些jQuery,它使用
$(document).ready(function(){})

在这个函数中,我只想启动authoritate.php,它检查是否设置了$\u会话['user'],如果设置了,那么它将重定向到主页,否则它将重定向到登录页面

如何在没有html表单的情况下发布jQuery?我只是想发布到一个网址

编辑:

根据@jondavidjohn的回答,我更改了我的web应用程序,以便它使用index.php检查会话:

<?php

session_start();

if(isset($_SESSION['username'])){
  //go to home page
  header('Location: ...home.html');
}else{
  //go to login page
  header('Location: ...login.html');
}

?>

当然可以用javascript实现这一点,但它根本不安全…

在将内容发送到浏览器之前,您需要在服务器级别检查会话['user']

我的答案是在任何东西发送到浏览器之前用PHP进行检查/重定向,这样会更安全、更简单


javascript解决方案不安全的原因是您依赖于驻留在客户端并由客户端控制的技术来控制对受保护区域的访问。

使用javascript确实可以做到这一点,但它根本不安全。

在将内容发送到浏览器之前,您需要在服务器级别检查会话['user']

我的答案是在任何东西发送到浏览器之前用PHP进行检查/重定向,这样会更安全、更简单

javascript解决方案不安全的原因是您依赖于驻留在客户端并由客户端控制的技术来控制对受保护区域的访问。

您可以使用$.post(url,params),其中url是字符串,params是包含post数据的散列

您可以使用$.post(url,params),其中url是一个字符串,params是包含post数据的散列

    $.post("/authenticate.php",null,function(data){

    // do something based on response returned
   if($data){alert("authenticated");}
    else
      alert("not authenticated");
    });
在php文件中

if(isset($_SESSION['user']))
{    
 echo true;
}
else
return false;
在php文件中

if(isset($_SESSION['user']))
{    
 echo true;
}
else
return false;

为什么要处理AJAX请求呢?由于您是使用PHP构建页面,只需让PHP在JavaScript块中嵌入一些变量:

<script type="text/javascript">
   var is_logged_in = <?php echo $_SESSION['logged_in'] ? 'true' : 'false' ?>;
</script>

var已被记录在案;

这将为您节省检索已有可用数据的HTTP往返时间。

为什么要处理AJAX请求呢?由于您是使用PHP构建页面,只需让PHP在JavaScript块中嵌入一些变量:

<script type="text/javascript">
   var is_logged_in = <?php echo $_SESSION['logged_in'] ? 'true' : 'false' ?>;
</script>

var已被记录在案;
这将为您节省检索已有可用数据的HTTP往返时间。

用于通过AJAX将数据发布到页面。这样做不允许PHP脚本重定向用户,您必须使用java JavaScript重定向用户

$.post('/path/to/page.php', {userID: 5}, function(data){
    // Use window.location to redirect
});
或者,您可以创建一个“假”元素,并发布它

var $form = $('<form/>').attr({
   method: 'post',
   action: '/path/to/page.php'
});
var $input = $('<input/>').attr({
  name: 'userID',
  type: 'text'
}).val('5');
$input.appendTo($form);
$form.submit();
var$form=$('').attr({
方法:“post”,
操作:'/path/to/page.php'
});
变量$input=$('').attr({
名称:'userID',
键入:“文本”
}).val('5');
$input.appendTo($form);
$form.submit();
我建议您采纳@jondavidjohn的建议,让PHP在页面发送到浏览器之前重定向用户。这更安全。

用于通过AJAX将数据发布到页面。这样做不允许PHP脚本重定向用户,您必须使用java JavaScript重定向用户

$.post('/path/to/page.php', {userID: 5}, function(data){
    // Use window.location to redirect
});
或者,您可以创建一个“假”元素,并发布它

var $form = $('<form/>').attr({
   method: 'post',
   action: '/path/to/page.php'
});
var $input = $('<input/>').attr({
  name: 'userID',
  type: 'text'
}).val('5');
$input.appendTo($form);
$form.submit();
var$form=$('').attr({
方法:“post”,
操作:'/path/to/page.php'
});
变量$input=$('').attr({
名称:'userID',
键入:“文本”
}).val('5');
$input.appendTo($form);
$form.submit();

我建议您采纳@jondavidjohn的建议,让PHP在页面发送到浏览器之前重定向用户。这更安全。

他说他正在处理一个html文件。所以他不能嵌入它。我不推荐这种方式,因为javascript是高度可利用的,如果你不知道自己在做什么,它的安全性也不好。@Vince:做
mv index.html index.php
@Marc Downvote不是我的。我知道这很琐碎,我只是想提一下:)他说他正在处理一个html文件。所以他不能嵌入它。我不推荐这种方式,因为javascript是高度可利用的,如果你不知道自己在做什么,它的安全性也不好。@Vince:做
mv index.html index.php
@Marc Downvote不是我的。我知道这很琐碎,我只是想提一下:)