我正在使用PHP验证表单(非常非常基本的表单),我想知道是否有解决方案不能得到此错误注意:未定义索引:sendMethod在/ directory / ...第26行 这是我的表格代码:
<form name="myForm" id="userDetails" action="formProcess.php" onSubmit="return validateForm()" method="post">
<fieldset class="custInf">
<h3> User Details </h3>
<label class="inputArea" for="fName">Forename :</label>
<input type="text" name="forename" id="fname" placeholder="Enter First Name" maxlength="20" size="15">
</input>
<label class="inputArea" for="sName">Surname :</label>
<input type="text" name="surname" id="surname" placeholder="Enter Last Name" maxlength="20" size="15">
</input>
<label class="inputArea" for="email">Email :</label>
<input type="email" name="email" id="email" placeholder="Enter Email Address" maxlength="40" size="15" />
</input>
<label class="inputArea" for="hmph">Landline number :</label>
<input type="tel" name="landLineTelNo" id="hmphone" placeholder="Enter Landline no." maxlength="11" size="15">
</input>
<label class="inputArea" for="mobileTelNo">Mobile number :</label>
<input type="tel" name="mobileTelNo" id="mobile" placeholder="Enter Mobile no." maxlength="11" size="15">
</input>
<label class="inputArea" for="address">Postal Address :</label>
<input type="text" name="postalAddress" id="address" placeholder="Enter House no." maxlength="25" size="15">
</input>
</fieldset>
<fieldset class="contactType">
<h3> How would you like to be contacted? </h3>
<label class="radioBt" for="sms">SMS</label>
<input id="smsBut" type="radio" name="sendMethod" value="SMS">
</input>
<label class="radioBt" for="email">Email</label>
<input type="radio" name="sendMethod" value="Email">
</input>
<label class="radioBt" for="post">Post</label>
<input type="radio" name="sendMethod" value="Post">
</input>
</fieldset>
<fieldset class="termsCon">
<input type="checkbox" name="check" value="check" id="check" />I have read and agree to the Terms and Conditions and Privacy Policy
</input>
</fieldset>
<input class="submitBut" type="submit" name="submitBut" value="Submit" </input>
</form>
$fname = $_REQUEST['forename'];
if (empty($fname)) {
die("<p>Enter a first name</p>\n");
}
$surname = $_REQUEST['surname'];
if (empty($surname)) {
die("<p>You must enter a surname</p>\n");
}
$email = $_REQUEST['email'];
if (empty($email)) {
die("<p>You need to enter an email</p>\n");
}
//Landline not required so wont give error
$hmphone = isset($_REQUEST['hmph']) ? $_REQUEST['hmph'] : null ;
$mobile = $_REQUEST['mobileTelNo'];
if (empty($mobile)) {
die("<p>Enter a Mobile Number</p>\n");
}
$address = $_REQUEST['postalAddress'];
if (empty($address)) {
die("<p>Enter your postal address</p>\n");
}
$sendMethod = $_REQUEST['sendMethod'];
if (empty($sendMethod)) {
die("<p>Please choose a contact option</p>\n");
}
$check = $_REQUEST['check'];
if (empty($check)) {
die("<p>Please select the Terms and Conditions to continue</p>\n");
}
它是一个非常基本的PHP验证,我只是希望它不会给我一个错误通知,直到所有字段都被检查为例,一旦所有字段都填写错误就显示“请选择一个联系选项”但如果我填写移动设备的所有字段,我会收到错误通知
答案 0 :(得分:0)
要避免通知,请先检查empty
是否
if (empty($_REQUEST['sendMethod']))
die("<p>Please choose a contact option</p>\n");
else
$sendMethod = $_REQUEST['sendMethod'];