<?php
$num_to_guess=42;
$num_tries=(!$_POST["num_trumies"]=="")?$num_tries+1:1;if($_POST["guess"]==""){
$message="Welcome";
}else if($message = $_POST["guess"] > $num_to_guess){
$message=$_POST["guess"]."大了";
}else if($message = $_POST["guess"] < $num_to_guess){
$message=$_POST["guess"]."小了";
}else{
$message="正确";
}
$guess=$_POST["guess"];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<?php echo $num_tries; ?>
<h1><?php echo $message; ?></h1>
<form  method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
  guess:
  <input name="guess" type="text" value="<?php echo $guess;?>" />
 
  <input type="hidden" name="num_tries" value="<?php echo $num_tries; ?>"/>
  <p>
    
    <input type="submit" value="提交" />
    
  </p>
</form></body>
</html>
1、这是一个猜数字游戏的代码,有一个隐藏字段来记录猜的次数。可是次数每次都是1,请问什么地方出错了2、这本书凡是用isset()方法的地方都有错,这个该怎么用,或者有什么方法可以在这段代码里代替它

解决方案 »

  1.   

    $num_tries=(!$_POST["num_trumies"]=="")?$num_tries+1:1;
    改成:
    $num_tries=(!($_POST["num_trumies"]==""))?$num_tries+1:1;
    或者
    $num_tries=($_POST["num_trumies"]!="")?$num_tries+1:1;换本书吧,这书的错误太多了。
    还不如看网上的资料。
      

  2.   

    $num_tries=(!$_POST["num_trumies"]=="")?$num_tries+1:1;改成这样试试
    $num_tries=!empty($_POST["num_trumies"]) ? intval($_POST["num_trumies"])+1 : 1;
      

  3.   

    register_globals = On的情况下,你的代码应该可以不过,这个已经不推荐了,默认就是Off
      

  4.   

    你这样还不如保存到session里面,然后直接从session里面取出来就可以.....
      

  5.   

    <?php
    $num_to_guess=42;$num_tries=($_POST["num_trumies"]!="")?$num_tries+1:1;if($_POST["guess"]==""){
        $message="Welcome";
    }else if($_POST["guess"] > $num_to_guess){
        $message=$_POST["guess"]."大了";
    }else if($_POST["guess"] < $num_to_guess){
        $message=$_POST["guess"]."小了";
    }else{
        $message="正确";
    }
    $guess=$_POST["guess"];
    ?>