您好我无法让我的表单验证正确以及获取insert语句以将确认的消息/帖子发布到数据库中的表。
这是代码
<?php require_once('dbuser.php');?>
<?php
// if the submit button has been selected
if(isset($_POST['submit_registration'])) {
// assign variable to each for control to capture the values
$first = $_POST['first_name'];
$last = $_POST['last_name'];
$email = $_POST['email'];
$address1 = $_POST['address1'];
$address2 = $_POST['address2'];
$city = $_POST['city'];
$state = $_POST['state'];
$postal = $_POST['postal_code'];
$phone = $_POST['phone'];
$distance = $_POST['dist'];
//assign null values for use with the isset function to identify null fields that are missing a value
$nofirst = null;
$nolast = null;
$noemail = null;
$noaddress1 = null;
$noaddress2 = '';
$nocity = null;
$nostate= null;
$nopostal = null;
$nophone = null;
$nodistance = null;
// if value of variable is nothing assign something other than null
if($first=="") {
$nofirst = '';
$novalue = '';
}
if($last==""){
$nolast = '';
$novalue ='';
}
if($email=="") {
$noemail = '';
$novalue = '';
}
if($address1=="") {
$noaddress1 = '';
$novalue = '';
}
if($address2=="") {
$noaddress2 = '';
$novalue = '';
}
if($city=="") {
$nocity = '';
$novalue = '';
}
if($state=="") {
$nostate = '';
$novalue = '';
}
if($postal=="") {
$nopostal = '';
$novalue = '';
}
if($phone=="") {
$nophone = '';
$novalue = '';
}
if($distance=="") {
$nodistance = '';
$novalue = '';
}
if(isset($novalue)) {$confim = 'Please enter all values';}
else {
$insertsql = "INSERT INTO `runner`(`fname`, `lname`,`email`,`address1`,`address2`,`city`,`state`,`postalcode`, `phone`, `distance`) VALUES ('$first', '$last', '$email', '$address1','$address2','$city','$state','$postal','$phone','$distance')";
mysqli_query($lrconnect, $insertsql) or die ("Insert failed: ".mysql_error($lrconnect));
$confirm = 'Thank you for registering!';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>website</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<header><img src="images/eastersealsclevelogo.png" alt="Easter Seals Logo" width="445" height="300"</img> </header>
<nav>
<ul>
<li><a href="index.html" class="current">Home</a></li>
<li><a href="signup.php" class="current">Run Sign-Up</a></li>
<li><a href="refer.php" class="current">Refer-a-Friend</a></li>
</ul>
</nav>
<h1>Sign up for a event!</h1>
<p>If you would like to join in any of the runs, then feel free to sign up using the form provided below.</p><br>
<?php {echo $confirm;} ?>
<form method="post" action="signup.php">
<form name="signup" title="signup" id="signup">
<table>
<tr>
<td><label for="first_name">First Name:</label></td>
<td><input type="text" name="first_name" id="first_name" title="first name" ></td>
<?php if(isset($nofirst)){echo"<span class='errormsg'> First name is required<br></span>";}?>
</tr>
<tr>
<td><label for="last_name">Last Name:</label></td>
<td><input type="text" name="last_name" id="last_name" title="last name" ></td>
<?php if(isset($nolast)){echo"<span class='errormsg'> Last Name is required<br></span>";}?>
</tr>
<tr>
<td><label for="email">Email:</label></td>
<td><input type="email" name="email" id="email" title="email" ></td>
<?php if(isset($noemail)){echo"<span class='errormsg'> Your Email is required<br></span>";}?>
</tr>
<tr>
<td><label for="address1">Address 1:</label></td>
<td><input type="text" name="address1" id="address1" title="address1" ></td>
<?php if(isset($noaddress1)) {echo"<span class='errormsg'> Your Address is required<br></span>";}?>
</tr>
<tr>
<td><label for="address2">Address 2:</label></td>
<td><input type="text" name="address2" id="address2" title="address2"></td>
</tr>
<tr>
<td><label for="city">City:</label></td>
<td><input type="text" name="city" id="city" title="city" value="Cleveland" ></td>
<?php if(isset($nocity)){echo"<span class='errormsg'> Your City is required<br> </span>";}?>
</tr>
<tr>
<td><label for="state">State:</label></td>
<td>
<select >
<option value="AL" name="AL" title="alabama">Alabama</option>
<option value="AK" name="AK" title="alaska">Alaska</option>
<option value="AZ" name="AZ" title="arizona">Arizona</option>
<option value="AR" name="AR" title="arkansas">Arkansas</option>
<option value="CA" name="CA" title="california">California</option>
<option value="CO" name="CO" title="colorado">Colorado</option>
<option value="CT" name="CT" title="connecticut">Connecticut</option>
<option value="DE" name="DE" title="delware">Delaware</option>
<option value="DC" name="DC" title="district of columbia">District Of Columbia</option>
<option value="FL" name="FL" title="florida">Florida</option>
<option value="GA" name="GA" title="georgia">Georgia</option>
<option value="HI" name="HI" title="hawaii">Hawaii</option>
<option value="ID" name="ID" title="idaho">Idaho</option>
<option value="IL" name="IL" title="illinois">Illinois</option>
<option value="IN" name="IN" title="indiana">Indiana</option>
<option value="IA" name="IA" title="iowa">Iowa</option>
<option value="KS" name="KA" title="kansas">Kansas</option>
<option value="KY" name="KY" title="kentucky">Kentucky</option>
<option value="LA" name="LA" title="louisiana">Louisiana</option>
<option value="ME" name="ME" title="maine">Maine</option>
<option value="MD" name="MD" title="maryland">Maryland</option>
<option value="MA" name="MA" title="massachusetts">Massachusetts</option>
<option value="MI" name="MI" title="michigan">Michigan</option>
<option value="MN" name="MN" title="minnesota">Minnesota</option>
<option value="MS" name="MS" title="mississippi">Mississippi</option>
<option value="MO" name="MO" title="missouri">Missouri</option>
<option value="MT" name="MT" title="montana">Montana</option>
<option value="NE" name="NE" title="nebraska">Nebraska</option>
<option value="NV" name="NV" title="nevada">Nevada</option>
<option value="NH" name="NH" title="new hampshire">New Hampshire</option>
<option value="NJ" name="NJ" title="new jersey">New Jersey</option>
<option value="NM" name="NM" title="new mexico">New Mexico</option>
<option value="NY" name="NY" title="new york">New York</option>
<option value="NC" name="NC" title="north carolina">North Carolina</option>
<option value="ND" name="ND" title="north dakota">North Dakota</option>
<option value="OH" name="OH" title="ohio" selected>Ohio</option>
<option value="OK" name="OK" title="oklahoma">Oklahoma</option>
<option value="OR" name="OR" title="oregon">Oregon</option>
<option value="PA" name="PA" title="pennsylvania">Pennsylvania</option>
<option value="RI" name="RI" title="rhode island">Rhode Island</option>
<option value="SC" name="SC" title="south carolina">South Carolina</option>
<option value="SD" name="SD" title="south dakota">South Dakota</option>
<option value="TN" name="TN" title="tennessee">Tennessee</option>
<option value="TX" name="TX" title="texas">Texas</option>
<option value="UT" name="UT" title="utah">Utah</option>
<option value="VT" name="VT" title="vermont">Vermont</option>
<option value="VA" name="VA" title="virginia">Virginia</option>
<option value="WA" name="WA" title="washington">Washington</option>
<option value="WV" name="WV" title="west virginia">West Virginia</option>
<option value="WI" name="WI" title="wisconsin">Wisconsin</option>
<option value="WY" name="WY" title="wyoming">Wyoming</option>
</select></td>
<?php if(isset($nostate)) {echo "<span class='errormsg'>Your state is required<br></span>";}?>
</tr>
<tr>
<td><label for="postal_code">Zip Code:</label></td>
<td><input type="text" name="postal_code" id="postal_code" title="postal_code" pattern="[\d]{5}(-[\d]{4})" ></td>
<?php if(isset($nopostal)) {echo "<span class='errormsg'> Your postal code is required<br></span>";}?>
</tr>
<tr>
<td><label for="phone">Phone:</label></td>
<td><input type="tel" name="phone" id="phone" title="phone" ></td>
<?php if(isset($nophone)) {echo "<span class='errormsg'> Your Phone number is required<br></span>";}?>
</tr>
<tr>
<td><label for="distance">Distance:</label></td><br>
<td><input type="radio" name="dist" value="1mile" id="dist" title="1mile" checked ><label>1 Mile</label><br>
<input type="radio" name="dist" value="5k" id="dist" title="5k"><label>5K</label><br>
<input type="radio" name="dist" value="10k" id="dist" title="10k"><label>10K</label></td>
<?php if(isset($nodist)) {echo "<span class='errormsg'> You must choose a distance</span>";}?>
</tr>
<tr>
<td> <input type="submit" name="submit_registration" id="submit_registration" title="submit" value="Submit Form"></td>
<td> <input type="button" name="cancel" id="cancel" title="cancel" value="Cancel" onClick="location.href='index.html'"></td>
</tr>
</table>
</form>
</body>
</html>
非常感谢任何帮助!
答案 0 :(得分:1)
您不需要像这样在所有选项标签中分配名称。
<option value="AL" name="AL" title="alabama">Alabama</option>
只需在<select name="dropdownname">
中指定一个名称,然后在请求$city = $_POST['dropdownname'];
答案 1 :(得分:0)
我刚编辑了你的PHP代码,因为当我看一下它时,我看到了很多if语句。这并不能解决您的问题,但它会使您的代码更具可读性。
保存时应该转义变量。
您是否启用了错误报告?
希望我的代码可以为您提供一些帮助。对于输入字段,您可以使用示例中显示的相同变量。在输入字段值中,您可以使用代码:
<input name="first_name" value="<?php echo isset($first_name) ? $first_name : '' ?>">
如果不这样做,则会更短。如果设置了first_name,则echo $ first_name或者echo&#39;&#39;;
<?php require_once('dbuser.php');?>
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
// if the submit button has been selected
if(isset($_POST['submit_registration'])) {
//Those are the predefined fields, set in a array
$fieldsArray = ['first_name', 'last_name', 'email', 'address1', 'address2', 'city', 'state', 'postal_code', 'phone', 'dist'];
//The fields are always valid unless we get something else while looping
$valid = true;
//Loop through the fieldsArray
foreach($fieldsArray as $key => $value){
if(isset($_POST[$value])){
//If $_POST with the value from the fieldsArray is SET, then create a variable called $first_name or $last_name, depends on the keys from
// the fields array
${$value} = $_POST[$value];
} else {
//If the value is not set, then the validation is false
$valid = false;
}
}
//If false, then dont run the query
if($valid == false)
{
$confim = 'Please enter all values';
} else {
$insertsql = "INSERT INTO `runner`(`fname`, `lname`,`email`,`address1`,`address2`,`city`,`state`,`postalcode`, `phone`, `distance`) VALUES ('".$first."', '".$last_name."', '$email', '$address1','$address2','$city','$state','$postal','$phone','$distance')";
mysqli_query($lrconnect, $insertsql) or die ("Insert failed: ".mysql_error($lrconnect));
$confirm = 'Thank you for registering!';
}
}