先生の登録情報の機能を設計しました。教師が正常に登録するには、データベースに対応する名前と従業員番号を入力する必要があります。問題は、名前をデータベース内の名前に限定すると、登録は正常に行われることです。条件としては、名前と社員番号を正しく入力しても、「入力した情報が間違っています。あなたはコンピュータサイエンス学部の教員ではありません。」という文が実行されてしまいます。私が書いた声明に何か問題がありますか?これは私のフロントエンドです
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /><title>教师注册页面</title><style type="text/css"><!--.STYLE1 { font-size: 14px; color: #FF0000;}.STYLE2 {color: #FF0000}.STYLE3 {font-size: 14px}.STYLE4 {font-size: 14px; color: #000000; }.STYLE5 {font-size: 12px}--></style></head><body><?php //######################教师注册########################## include "conn.php"; include "header.php";?> <p></p><table width="500" border="1" align="center" cellpadding="0" cellspacing="1" class="text"> <!--DWLayoutTable--> <form name="form1" method="post" action="teacher_register1.php"> <tr bgcolor="#CDE6C7"> <td height="27" colspan="3"><span class="STYLE1 STYLE2 STYLE1">--->教师注册</span></td> </tr> <tr> <td width="148" bgcolor="#FFFFFF"><div align="center" class="STYLE4"> <div align="right">姓名:</div> </div></td> <td width="443" bgcolor="#FFFFFF" height="41"> <input type="text" name="name" size="25"> <span class="STYLE5">*请输入您的真实姓名 </span></td> </tr> <tr> <td width="148" bgcolor="#FFFFFF"><div align="center" class="STYLE4"> <div align="right">职工号:</div> </div></td> <td width="443" bgcolor="#FFFFFF" height="41"> <input type="text" name="staffno" size="25"> <span class="STYLE5">*请输入您的职工号 </span></td> </tr> <tr> <td width="148" bgcolor="#CDE6C7"><div align="center" class="STYLE2"> <div align="right" class="STYLE4">密码:</div> </div></td> <td width="443" bgcolor="#CDE6C7" height="41"> <input type="password" name="password" size="25"> <span class="STYLE5">*输入密码,长度为3-16位 </span></td> </tr> <tr> <td width="148" bgcolor="#FFFFFF"><div align="center" class="STYLE4"> <div align="right">确认密码:</div> </div></td> <td width="443" bgcolor="#FFFFFF" height="41"> <input type="password" name="password1" size="25"> <span class="STYLE3"> </span><span class="STYLE5">*请再次输入密码</span> </td> </tr> <tr bgcolor="#CDE6C7"> <td height="25" colspan="2" align="center"><input type="hidden" name="add" value="1"> <input name="submit" type="submit" class="STYLE4" value="提交"> <input type="button" name="back" class="STYLE4" onclick="window.location='index.php'" value="返回"></td> </tr> </form></table><p></p><?php include "foot.php"?> </body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /><title>教师注册</title></head><body><?php //######################教师注册########################## include "conn.php"; include "header.php"; extract($_POST); if ($name==""||$staffno=""||$password=="" ||$password1=="") { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>请把信息添写完整</big></b></font></p>"; echo "<meta http-equiv=\"refresh\" content=\"1;url=teacher_register.php\">"; exit; } $query="select * from $teacher_infor where staffno='$staffno'and name='$name'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query); $row=mysql_fetch_array($result); if($row==0) { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>你输入的信息有误,不属于计算机学院教师</big></b></font></p>"; echo "<meta http-equiv=\"refresh\" content=\"2;url=teacher_register.php\">"; exit; } $query="select * from $teacher_table where staffno='$staffno'and name='$name'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query); $row=mysql_fetch_array($result); if($row!=0) { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>此教师已注册,请重新填写</big></b></font></p>"; echo "<meta http-equiv=\"refresh\" content=\"2;url=teacher_register.php\">"; exit; } if($password!=$password1) { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>输入的密码不一致,请重新输入</big></b></font></p>"; echo "<meta http-equiv=\"refresh\" content=\"2;url=student_register.php\">"; exit; } $query="insert into $teacher_table values('$staffno','$name','$password')"; mysql_query("set names 'GB2312'"); $result=mysql_query($query); if($result==true){ echo "<p align=\"center\"><font color=\"#FF0000\"><b><big>注册成功!</big></b></font></p>"; echo "<meta http-equiv=\"refresh\" content=\"1;url=jiaoshi_login.php\">"; exit; }?><?php include "foot.php";?></body></html>
21 行目以下 echo $query; 結果を見てみましょう
何を見てみましょう結果は
入力した従業員番号が空白なのはなぜですか? 明らかに入力したのに
$staffno=""判定に何かが足りないと思いませんか?
$staffno=""判決に何か欠けていると思いませんか? 何?
print_r($_POST); 見てみましょう
if ($name==""|| $staffno=""||$password=="" ||$password1=="")
なぜ、一つ=?
if ($name==""|| $staffno=""||$password=="" ||$password1=="")
= が 1 つしかないのはなぜですか? ああ、ごめんなさい
$staffno=""判断に何かが欠けていると思いませんか? ごめんなさい、= が抜けていることに気づきました、残念ながら
print_r($_POST); ほら、兄さん、ごめんなさい、判決文に = が抜けています、残念ながら、私のせいです