帮忙看下这段PHP代码,为什么会出现这个错误?
<?phpsession_start();$number=rand(0,100);$_SESSION['number']=$number;$_SESSION['proce...
<?php
session_start();
$number=rand(0,100);
$_SESSION['number']=$number;
$_SESSION['process']=array();
echo"猜数,我已经想好了,你可以开始猜数了(0-100)之间的整数,猜大猜小,我会提示你,只有八次机会哦<br />";
if(isset($_SESSION['number'])&&isset($_REQUEST['input']))
{
$flag=false;
if(is_numeric($_REQUEST['input']))//如果是输入的是数字
{
array_push($_SESSION['process'],$_REQUEST['input']);//将输入的次数,存放在记录数组之中
}
else
{
echo "请输入0-100之间的整数";
}
$max=count($_SESSION['process']);
for($i=0;$i<$max;$i++)
{
$input_number=$_SESSION['process'][$i];
$step=$i+1;
if($input_number<$_SESSION['number'])
{
echo"第 {$step} 次,{$input_number}猜小了<br />";
}
elseif($input_number>$_SESSION['number'])
{
echo"第 {$step} 次,{$input_number}猜大了<br />";
}
else
{
echo"第{$step}次,{$input_number}猜对了<br />";
}
}
if($_REQUEST['input']==$_SESSION['number'])
{
echo "猜对了,你猜了 $max 次<br /><a href=\"guess1.php\">我还要再玩一次</a>";
$_SESSION=null;
exit;
}
else if($max>=8)
{
echo "你猜了 $max 次都没有猜对,我想要的是 {$_SESSION['number']}。 ;<br /><a href=\"guess1.php\">我还要再玩一次</a> ";
$_SESSION=null;
exit;
}
}
?>
<form action="guess1.php" method="post">
<input type="text" name="input" value="">
<input type="submit" name="submit" value="guess">
</form>
------------------------------------------------------------------
为什么每猜一次数,记录所猜次数的数组都不变,总是第一次!? 展开
session_start();
$number=rand(0,100);
$_SESSION['number']=$number;
$_SESSION['process']=array();
echo"猜数,我已经想好了,你可以开始猜数了(0-100)之间的整数,猜大猜小,我会提示你,只有八次机会哦<br />";
if(isset($_SESSION['number'])&&isset($_REQUEST['input']))
{
$flag=false;
if(is_numeric($_REQUEST['input']))//如果是输入的是数字
{
array_push($_SESSION['process'],$_REQUEST['input']);//将输入的次数,存放在记录数组之中
}
else
{
echo "请输入0-100之间的整数";
}
$max=count($_SESSION['process']);
for($i=0;$i<$max;$i++)
{
$input_number=$_SESSION['process'][$i];
$step=$i+1;
if($input_number<$_SESSION['number'])
{
echo"第 {$step} 次,{$input_number}猜小了<br />";
}
elseif($input_number>$_SESSION['number'])
{
echo"第 {$step} 次,{$input_number}猜大了<br />";
}
else
{
echo"第{$step}次,{$input_number}猜对了<br />";
}
}
if($_REQUEST['input']==$_SESSION['number'])
{
echo "猜对了,你猜了 $max 次<br /><a href=\"guess1.php\">我还要再玩一次</a>";
$_SESSION=null;
exit;
}
else if($max>=8)
{
echo "你猜了 $max 次都没有猜对,我想要的是 {$_SESSION['number']}。 ;<br /><a href=\"guess1.php\">我还要再玩一次</a> ";
$_SESSION=null;
exit;
}
}
?>
<form action="guess1.php" method="post">
<input type="text" name="input" value="">
<input type="submit" name="submit" value="guess">
</form>
------------------------------------------------------------------
为什么每猜一次数,记录所猜次数的数组都不变,总是第一次!? 展开
3个回答
展开全部
这段代码是不会报错的。。错的原因是第五行代码
$_SESSION['process']=array();
每次程序运行都会初始化这个值为一个空数组。当然不管你输几次都是第1次了。。
正确写法
if(!is_array($_SESSION['process']))
{
$_SESSION['process']=array();
}
判断它是否为一个数组。如果它还不是数组。那就是页面第一次打开的时候。这时才建立一个空数组。。提交以后。它已经是数组了。不会再被重新赋值的。。值就可以保留下来了。
$_SESSION['process']=array();
每次程序运行都会初始化这个值为一个空数组。当然不管你输几次都是第1次了。。
正确写法
if(!is_array($_SESSION['process']))
{
$_SESSION['process']=array();
}
判断它是否为一个数组。如果它还不是数组。那就是页面第一次打开的时候。这时才建立一个空数组。。提交以后。它已经是数组了。不会再被重新赋值的。。值就可以保留下来了。
展开全部
我检查了下你的代码 问题出在array_push($_SESSION['process'],$_REQUEST['input']);//这一句,,你不妨用print_r打印出$_SESSION['process']来看看。。数组并不是压进去值了。。我想可能是因为PHP5本身函数的问题~可以试着用别的方法。。我先回去看下 有解决的在给你说
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询