先贴上代码吧,
<?php
if(!empty($_POST[username])){//事先我有一个让用户输入用户名的界面,然后通过表单传达这个页面,
   include ('conn.php');//连接数据库
    $username=$_POST['username'];
    $sql="SELECT * FROM  `user`  WHERE  `username` LIKE  '$username'";
    $row=mysql_query($sql);
    if(!mysql_num_rows($row)){
     echo "对不起,没有这个用户,请<a href='find.php'>重新输入</a>或者<a href='register.php'>注册<a>";
     exit;
    }
    $row=mysql_fetch_array($row);
    echo "您的密保问题是".$row[question];
    ?>
             <form action="" method="post" >
   请输入答案: <input type="text" name="answer"  size="20" maxlength="40"/><br>
 请输入密码:<input type="password" name="password"/><br>
  请确认密码:<input type="password" name="repassword"/><br>
  <input type="submit" name="submit" value="提交"/>
</form>
    <?
if(@$_POST[submit]){
if($row[answer]===$_POST[answer]){
if($_POST[password]===$_POST[repassword]){
$sql="UPDATE  `bbs`.`user` SET  `password` =  '$_POST[password]' WHERE  `user`.`username` ='$username' ";
mysql_query($sql);
echo "修改成功,您可以使用新密码<a href='login.php'>登陆</a>了";
}
else "密码输入错误,请重新输入";
}
else echo "密保答案错误,请重新输入或注册";
}
}
    ?>
但是问题是,如果用户存在,然后输入密保答案和新密码并且提交以后,页面就空白了 什么都没有了,然后看一下是
if(@$_POST[submit]){
if($row[answer]===$_POST[answer]){
if($_POST[password]===$_POST[repassword]){
$sql="UPDATE  `bbs`.`user` SET  `password` =  '$_POST[password]' WHERE  `user`.`username` ='$username' ";
mysql_query($sql);
echo "修改成功,您可以使用新密码<a href='login.php'>登陆</a>了";
}
else "密码输入错误,请重新输入";
}
else echo "密保答案错误,请重新输入或注册";
}
这段代码并没有执行,这是为什么啊?如何才能执行上面这段代码呢

解决方案 »

  1.   

    楼主是照着书上写的吧?...  
    1.<? 这里应该是 <?php 
    2.@$_POST[submit] 这里应该是 $_POST[submit]
    3.else "密码输入错误,请重新输入";  这里要加 echo楼主写的有点乱,是照着书联系的么?建议写代码最后用标准格式,不然代码越多到自己都看不懂。。下面是我帮你改的,你看看好使不好使。。我也是初学者。。
    ------------------------------------------------------------------------------<?php
    if(!empty($_POST[username])){//事先我有一个让用户输入用户名的界面,然后通过表单传达这个页面,
    include ('conn.php');//连接数据库
    $username=$_POST['username'];
        $sql="SELECT * FROM  `user`  WHERE  `username` LIKE  '$username'";
        $row=mysql_query($sql);
        if(!mysql_num_rows($row)){
         echo "对不起,没有这个用户,请 <a href='find.php'>重新输入 </a>或者 <a href='register.php'>注册 <a>";
         exit;
        }
        $row=mysql_fetch_array($row);
        echo "您的密保问题是".$row[question];
     ?>
     <form action="" method="post" >
     请输入答案: <input type="text" name="answer"  size="20" maxlength="40"/> <br />
     请输入密码: <input type="password" name="password"/> <br />
     请确认密码: <input type="password" name="repassword"/> <br />
     <input type="submit" name="submit" value="提交" />
     </form>
     <?php
     if($_POST[submit]){
      if($row[answer]===$_POST[answer]){
      if($_POST[password]===$_POST[repassword]){
      $sql="UPDATE  `bbs`.`user` SET  `password` =  '$_POST[password]' WHERE  `user`.`username` ='$username' ";
      mysql_query($sql);
      echo "修改成功,您可以使用新密码 <a href='login.php'>登陆 </a>了";
      }
      else{
      echo "密码输入错误,请重新输入";
      }
      }
      else{
      echo "密保答案错误,请重新输入或注册";
      }
     }
     ?> 
      

  2.   

    。不好意思,上个代码发错了。下面这个
    另外,我在补充2个问题。
    1. <? 这里应该是 <?php
    2.@$_POST[submit] 这里应该是 $_POST[submit]
    3.else "密码输入错误,请重新输入";  这里要加 echo,不然不会输出到网页。
    4.楼主大部分的$_POST['username']写成了 $_POST[username],没有单引号
    5.数据库语句里面连接变量也有问题。举个例子:
       
       没有带变量
       $sql = "SELECT * FROM user WHERE username='nick';";   如果nick用$_POST['username']代替,应该这么写
       $sql = "SELECT * FROM user WHERE username='".$_POST['username']."';";<?php
    if(!empty($_POST['username'])){//事先我有一个让用户输入用户名的界面,然后通过表单传达这个页面,
    include ("conn.php");//连接数据库
    $username = $_POST['username'];
        $sql = "SELECT * FROM user WHERE username LIKE '".$username."'";
        $row = mysql_query($sql);
        if(!mysql_num_rows($row)){
         echo "对不起,没有这个用户,请 <a href='find.php'>重新输入 </a>或者 <a href='register.php'>注册 <a>";
        }
        $row=mysql_fetch_array($row);
        echo "您的密保问题是".$row['question'];
     ?>
     <form action="<?php echo $SCRIPT_NAME; ?>" method="post" >
     请输入答案: <input type="text" name="answer"  size="20" maxlength="40"/> <br />
     请输入密码: <input type="password" name="password"/> <br />
     请确认密码: <input type="password" name="repassword"/> <br />
     <input type="submit" name="submit" value="提交" />
     </form>
     <?php
     if($_POST['submit']){
      if($row['answer']===$_POST['answer']){
      if($_POST['password']===$_POST['repassword']){
      $sql="UPDATE bbs.user SET password='".$_POST['password']."' WHERE user.username='".$username."'";
      mysql_query($sql);
      echo "修改成功,您可以使用新密码 <a href='login.php'>登陆 </a>了";
      }
      else{
      echo "密码输入错误,请重新输入";
      }
      }
      else{
      echo "密保答案错误,请重新输入或注册";
      }
     }
     ?> 
      

  3.   

    <?php
    if(!empty($_POST['username'])) {//事先我有一个让用户输入用户名的界面,然后通过表单传达这个页面,
        include ("conn.php");//连接数据库
        $username = $_POST['username'];
        $sql = "SELECT * FROM user WHERE username LIKE '".$username."'";
        $row = mysql_query($sql);
        if(!mysql_num_rows($row)) {
            echo "对不起,没有这个用户,请 <a href='find.php'>重新输入 </a>或者 <a href='register.php'>注册 <a>";
        }
        $row=mysql_fetch_array($row);
        echo "您的密保问题是".$row['question'];
    }
        ?>
    <form action=" <?php echo $SCRIPT_NAME; ?>" method="post" >
        请输入答案: <input type="text" name="answer"  size="20" maxlength="40"/> <br />
        请输入密码: <input type="password" name="password"/> <br />
        请确认密码: <input type="password" name="repassword"/> <br />
        <input type="submit" name="submit" value="提交" />
    </form>
        <?php
        if($_POST['submit']) {
            if($row['answer']===$_POST['answer']) {
                if($_POST['password']===$_POST['repassword']) {
                    $sql="UPDATE bbs.user SET password='".$_POST['password']."' WHERE user.username='".$username."'";
                    mysql_query($sql);
                    echo "修改成功,您可以使用新密码 <a href='login.php'>登陆 </a>了";
                }
                else {
                    echo "密码输入错误,请重新输入";
                }
            }
            else {
                echo "密保答案错误,请重新输入或注册";
            }
        }
     ?>