我是PHP的新手。我正在使用我正在使用的表单时遇到问题。
这是我的HTML
<form class="form-horizontal" action="submit.php">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Name:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name" name = "name" placeholder="John Doe">
</div>
</div>
<div class = "form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Email:</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" name = "email" placeholder="name@domain.com">
</div>
</div>
<div class="form-group">
<label for="phoneNumber" class="col-sm-2 control-label">Phone:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="phoneNumber" name = "phoneNumber" placeholder="555-555-5555">
</div>
</div>
<div class="form-group">
<label for="major" class="col-sm-2 control-label">Major:</label>
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" name = "major" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1"></ul>
</div>
</div>
<hr>
<div class="form-group">
<label for="itemForSale" class="col-sm-2 control-label">Item for Sale:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="itemForSale1" name = "itemForSale1" placeholder="My old video games, some chairs, some chicken, a pizza.">
</div>
</div>
<div class="form-group">
<label for="quantity" class="col-sm-2 control-label">Quantity:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id = "quantity1" name = "quantity1" placeholder="1,000,000">
</div>
</div>
<div class="form-group">
<label for="major" class="col-sm-2 control-label">Price:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="price1" name = "price1" placeholder="ex. $100.00">
</div>
</div>
</form>
这是我的PHP
<?php
// Variables
$name;
$email;
$phone;
$major;
$itemForSale1;
$quantity1;
$price1;
$itemForSale2;
$quantity2;
$price2;
$itemForSale3;
$quantity3;
$price3;
ini_set('display_errors', 'On'); ini_set('html_errors', 0); error_reporting(-1);
if (isset($_POST["submit"]))
{
// Initiate the variables
$name = $_POST["name"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$major = $_POST["major"];
$itemForSale1 = $_POST["itemForSale1"];
$quantity1 = $_POST["quantity1"];
$price1 = $_POST["price1"];
$itemForSale2 = $_POST["itemForSale2"];
$quantity2 = $_POST["quantity2"];
$price2 = $_POST["price2"];
$itemForSale3 = $_POST["itemForSale3"];
$quantity3 = $_POST["quantity3"];
$price3 = $_POST["price3"];
// IF name is empty string
if($name == "")
{
// Alert the user
echo "Please enter your name.";
}
// IF email is invalid
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === true)
{
// Alert the user
echo("$email is an invalid email address");
}
// Strip any occurrences of '-' in phoneNumber
str_replace("-", "", $phoneNumber)
// IF phoneNumber does not equal 10 characters
if(strlen(phoneNumber) != 10)
{
// Alert the user
echo "Invalid phone number. Ex. 315-555-5555";
}
// IF itemForSale is empty string
if($itemForSale == "")
{
// Alert the user
echo "You must enter at least one item.";
}
// IF quantity1 is less than 1
if($quantity1 < 1)
{
// Alert the user
echo "You can't sell anything less than one item.";
}
// Strip any occurrences of '$' in price
str_replace("$", "", $phoneNumber)
// IF price is less than 0.00
if($price1 < 0)
{
echo "What's less than free?";
}
echo $name;
echo $email;
echo $phone;
echo $major;
echo $itemForSale1;
echo $quantity1;
echo $price1;
}
?>
当我在表单上按提交时,我收到500内部服务器错误。知道可能导致这种情况的原因吗?我对PHP sooo不太熟悉。
答案 0 :(得分:1)
为您提供一些解决方案 -
1)给表格方法标签 - method =&#34; post&#34;
2)尝试更改
<input id="submit" name="submit" type="submit" value="submit" class="btn btn-primary">
到
<input id="btnsubmit" name="btnsubmit" type="submit" value="submit" class="btn btn-primary">
并以
的形式访问它isset($_POST["btnsubmit"])
3)您在str_replace("$", "", $phoneNumber)
和str_replace("-", "", $phoneNumber)
4)将if(strlen(phoneNumber) != 10)
更改为if(strlen($phoneNumber) != 10)
5)您还在PHP代码中访问了许多名称错误的值,如电话号码,专业等。请使它们正确无误,您的代码应该有效。
答案 1 :(得分:0)
您的所有str_replace
功能都不正确。你永远不会终止他们所在的行,也不会在任何地方设置替换(不是替换不是错误,但是如果不使用它就没有意义)。
你可以这样做:
$phoneNumber = str_replace(array('$', '-'), '', $phoneNumber);
将从$
中删除-
和$phoneNumber
。
此外,您的表单正在处理为GET
,因为您尚未将其表示为POST
处理。
变化:
<form class="form-horizontal" action="submit.php">
到
<form class="form-horizontal" action="submit.php" method="POST">
默认表单方法为GET
,What is the default form HTTP method?。
所以if (isset($_POST["submit"]))
永远不会是真的,你只是得到一个空白页面。如果要测试,可以在该条件的末尾添加else。