2011-11-07 61 views
0

我有一个系统,用户登录并立即将其引导到运行一些查询并输入到会话变量中的PHP页面。 PHP完成执行后,它将用户重定向到主页面。我想知道如何设置它,这样当用户刷新主页面时,它会将它们重定向到前一页面,在主页面显示之前计算可以再次运行。我根本无法将两页合并在一起。有谁知道我能做到这一点?PHP重定向刷新

编辑:PHP包括最接近我需要的,但问题是,当我使用AJAX提交表单时,第一个文件中的会话变量用数据库中的新数据更新。这些变量需要保持静态,直到用户刷新实际页面。有谁知道我可以如何包含这个表单,但是让Jquery看不见它?

+1

'require'calculate.php';'将是通常的方式去... – deceze

+0

除非他想要执行登录过程一次,这可能是这种情况。在这种情况下,位置可能是更好的选择。 –

+0

在功能方面真正的目标是什么?你如何定义一个“刷新”?你刷新什么样的价值? – deceze

回答

0

在登录表单中,使其提交至page_with_awesome_calculations_and_queries_to_session_variables.php。假设在该页面中没有输入发送,请在那里进行计算查询和会话,然后将位置标题发送到新页面。

header('Location: 'index.php'); 

这将导致浏览器中的地址栏实际更改为index.php,刷新将使用户粘在那里。

您还应该保护您的page_with_awesome_calculations_and_queries_to_session_variables.php以禁止访问,除非设置了正确的$_POST变量。

1

您可以将值存储到$_SESSION和其他每个负载,转发到其他页面。

// Start session 
session_start(); 

// If the session variable is set... 
if (isset($_SESSION['loadCount']) { 

    // Increase the count 
    $_SESSION['loadCount']++; 

    // If it is even... 
    if ($_SESSION['loadCount'] % 2) { 

     // Reidrect 
     header('Location: /calculate-again.php'); 
     die(); 

    } 


} else { 

    $_SESSION['loadCount'] = 1; 
} 
0

mainpage.php收到一个URL参数t这是划时代的时间戳。

每当calculation.php重定向到mainpage.php它将通过历元时间戳。如果mainpage.php发现历元时间戳早于5秒,它将重定向回calculation.php并退出。

mainpage.php

if (time() - $_GET['t'] > 5) 
{ 
    header('Location: calculation.php'); 
    die(); 
} 
else 
{ 
    // proceed normally 
} 

calculation.php

// perform calculation 
header('Location: calculation.php?t=' . time()); 
0

添加

<? 
require 'calculations.php'; 

// Mainpage goes here 
?> 

的炫魅的顶部。这使它成为主页面加载之前运行的mainPage的扩展。