if ($name == "")
//我现在很讨厌匿名的留言
{
echo "Duh ? How come you are anonymous?";
}
elseif ($name == "Your Name")
{
// 这个浏览者真是不想透露姓名啊!
echo "Hello ? <B>Your name</B> is supposed to be replaced with your actual name!";
}
else
{
//输出一段礼貌的感谢语
echo "
表单代码:
<form action="sendfdbk.php" method="post">
<input type="text" name="name" value="Your Name" size="20" maxlength="30">
<input type="text" name="email" maxlength="40" size="20" value="Your Email">
<br>
<textarea rows="7" cols="40" name="commnet">
Your feedback on my home page.
</textarea>
<br>
<input type="submit" value="Send FeedBack">
</form>sendfdbk.php里面一段代码:if ($name == "")
//我现在很讨厌匿名的留言
{
echo "Duh ? How come you are anonymous?";
}
elseif ($name == "Your Name")
{
// 这个浏览者真是不想透露姓名啊!
echo "Hello ? <B>Your name</B> is supposed to be replaced with your actual name!";
}
else
{
//输出一段礼貌的感谢语
echo "
hello,$name.
<br>
Thanking you
<br>
$MyName<br>
$MyEmailLink
";
//最后mail出去
mail ($MyEmail,"FeedBack.","
Name: $name
E-mail: $email
Commnet: $commnet
");
}当我在测试的时候,无论$name有没有值,结果都是执行了第一个if
结果都是显示:
Duh ? How come you are anonymous?请问是什么问题?各位朋友们帮帮忙!
谢谢!

解决方案 »

  1.   

    将 $name 换做  $_POST["name"]试试
      

  2.   

    实现:
    替换你的if ($name == "")为——
    -----------------开始替换内容-----------------------------
    if($_SERVER['REQUEST_METHOD']=='POST')
    { if(isset($_REQUEST["name"])) //这里也可以写if(isset($_POST["name"])) 
    -----------------结束替换内容-----------------------------
    讲解:
    这里的if($_SERVER['REQUEST_METHOD']=='POST')来判断页面是否是POST回来的,如果不是可以省去服务器端对于条件判断,可以提高一些性能,简单说就是不执行if(isset($_REQUEST["name"])) 。而if(isset($_REQUEST["name"])) 用来判断是否有“name”被POST回来。