所以我有一组值让我们说90,100,110,120,130,140,150第一次加载php页面时,值90是主输入变量,页面显示有关90的详细信息。 现在,在60秒内,页面重定向到相同页面,但输入变量为100。 这种情况还在继续,并且当还显示与150相关的内容时,它会返回到与90相关的内容。 怎么能实现呢?
<?php
mysql_connect("localhost", "root", "qwerty") or die(mysql_error());
mysql_select_db("ups_status") or die(mysql_error());
$data = $_POST['input'] ;// <!--This is where the input should change after every redirect-->
$order = "SELECT * FROM ups_status1 WHERE (Ipaddress LIKE '%".$data."%')";
$results = mysql_query($order) or die('Invalid query: ' .mysql_error());
// <!--And then I will echo the results-->
?>
答案 0 :(得分:2)
<?php
session_start();
if (!isset($_SESSION['counter'])) {
$_SESSION['counter'] = array(90, 100, 110, 120, 130, 140, 150);
}
$i = isset($_SESSION['i']) ? $_SESSION['i'] : 0;
echo "Variable is ".$_SESSION['counter'][$i];
/* Put your code here*/
mysql_connect("localhost", "root", "qwerty") or die(mysql_error());
mysql_select_db("ups_status") or die(mysql_error());
$data = $_SESSION['counter'][$i] ;// <!--This is where the input should change after every redirect-->
$order = "SELECT * FROM ups_status1 WHERE (Ipaddress LIKE '%".$data."%')";
$results = mysql_query($order) or die('Invalid query: ' .mysql_error());
/*********************/
if ( $i == count($_SESSION['counter']) - 1) {
$next = 0;
} else {
$next = $i + 1;
}
$_SESSION['i'] = $next;
header( "refresh:5;url=refresh.php" );
echo '<br>You\'ll be redirected in about 5 secs. If not, click <a href="refresh.php">here</a>.';
?>
答案 1 :(得分:1)
如果总是增加10.试试这个。
page.php文件
<?php
$id = isset($_GET['id']) ? $_GET['id'] : 90;
echo $id; // your code HERE
if($id < 150) {
$nextId = $id +10;
header("Refresh:60;url=page.php?id=" . $nextId);
} else {
header("Refresh:60;url=page.php");
}
如您所见,您可以在访问日志中看到每次刷新(我每5秒进行一次测试)
答案 2 :(得分:0)
不要使用Location标头,因为它会阻止您先显示输出。请改用“刷新”,因为您正在刷新同一页面。
您可以将变量存储在会话中,或者只是在页面刷新时传递。
这里的php页面名为page.php,它将每5秒刷新一次并将变量传递给它自己。一旦重新加载,它将简单地增加传递变量或将其重置为90,当它的&gt; 150。
<?php
$data = isset($_GET['input']) ? $_GET['input'] : 90;
echo "Value is ".$data;
$data = ($input >= 150) ? 90: $data;
header( "refresh:5;url=page.php?input=".($data+10));
?>
尝试:将此代码复制到名为page.php的文件中,然后在浏览器中打开。
更新:
假设您的代码示例有效。你可以修改下面的一行
$data = $_POST['input']
到
$data = isset($_GET['input']) ? $_GET['input'] : 90;
然后在完成输出后添加刷新标题。
$data = ($data >= 150) ? 90: $data;
header( "refresh:60;url=page.php?input=".$data );