[英]PHP code isn't being executed when set as the action for an HTML form
I'm creating a website that has HTML forms that have a blank action that leads to the same web page that the form is on so that the form can be processed with PHP. 我正在创建一个网站,该网站具有HTML表单,该表单具有空白动作,该空白动作会导致该表单所在的网页相同,以便可以使用PHP处理该表单。 The PHP code isn't being executed.
PHP代码未执行。 Can you look over my code and tell me what's wrong?
您能查看一下我的代码并告诉我出什么问题了吗?
<?php
if (isset($_POST['reportsubmit'])) {
$radio = $_POST['customer'];
if ($radio == 'customer') {
$redirect = 'Click <a href="#customer">here</a> to continue on with the form';
header('Location: #redirect');
} else if ($radio == 'item') {
$redirect = 'Click <a href="#item">here</a> to continue on with the form';
header('Location: #redirect');
} else if ($radio == 'department') {
$redirect = 'Click <a href="#department">here</a> to continue on with the form';
header('Location: #redirect');
} else if ($radio == 'person') {
$redirect = 'Click <a href="#person">here</a> to continue on with the form';
header('Location: #redirect');
}
exit;
} else if (isset($_POST['customersubmit'])) {
//process form
//redirect
exit;
} else if (isset($_POST['itemsubmit'])) {
//process form
//redirect
exit;
} else if (isset($_POST['departmentsubmit'])) {
//process form
//redirect
exit;
} else if (isset($_POST['personsubmit'])) {
//process form
//redirect
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Gordmart MIS Reports</title>
<!--<link rel="stylesheet" href="../css/Main.css">-->
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css">
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
</head>
<body>
<div data-role="page" class="frame" id="report">
<div data-role="header">
<?php include("Header.php");?>
</div>
<div data-role="main" id="main">
<h3>Would you like to view a report grouped by customers, items sold, sales departments, or sales people?</h3>
<form action="" method="post">
<input type="radio" name="report" value="customer"><p>Customers</p>
<input type="radio" name="report" value="item"><p>Items Sold</p>
<input type="radio" name="report" value="department"><p>Sales Departments</p>
<input type="radio" name="report" value="person"><p>Sales People</p>
<input type="submit" name="reportsubmit" value="Submit">
</form>
</div>
<div data-role="footer">
<h1>Footer Text</h1>
</div>
</div>
<div data-role="page" class="frame" id="customer">
<div data-role="header">
<?php include("Header.php");?>
</div>
<div data-role="main" id="main">
<h3>Would you like to view a cumulative report of all customers, or a single report of just one?</h3>
<form action="" method="post">
<input type="radio" name="customer" value="all"><p>All</p>
<input type="radio" name="customer" value="one"><p>One</p><br>
<input type="submit" name="customersubmit" value="Submit">
</form>
</div>
<div data-role="footer">
<h1>Footer Text</h1>
</div>
</div>
<div data-role="page" class="frame" id="item">
<div data-role="header">
<?php include("Header.php");?>
</div>
<div data-role="main" id="main">
<h3>Would you like to view a cumulative report of all sales items, or a single report of just one?</h3>
<form action="" method="post">
<input type="radio" name="item" value="all"><p>All</p>
<input type="radio" name="item" value="one"><p>One</p><br>
<input type="submit" name="itemsubmit" value="Submit">
</form>
</div>
<div data-role="footer">
<h1>Footer Text</h1>
</div>
</div>
<div data-role="page" class="frame" id="department">
<div data-role="header">
<?php include("Header.php");?>
</div>
<div data-role="main" id="main">
<h3>Would you like to view a cumulative report of all sales departments, or a single report of just one?</h3>
<form action="" method="post">
<input type="radio" name="department" value="all"><p>All</p>
<input type="radio" name="department" value="one"><p>One</p><br>
<input type="submit" name="departmentsubmit" value="Submit">
</form>
</div>
<div data-role="footer">
<h1>Footer Text</h1>
</div>
</div>
<div data-role="page" class="frame" id="person">
<div data-role="header">
<?php include("Header.php");?>
</div>
<div data-role="main" id="main">
<h3>Would you like to view a cumulative report of all sales people, or a single report of just one?</h3>
<form action="" method="post">
<input type="radio" name="person" value="all"><p>All</p>
<input type="radio" name="person" value="one"><p>One</p><br>
<input type="submit" name="personsubmit" value="Submit">
</form>
</div>
<div data-role="footer">
<h1>Footer Text</h1>
</div>
</div>
<div data-role="page" class="frame" id="redirect">
<div data-role="header">
<?php include("Header.php");?>
</div>
<div data-role="main" id="main">
<?php echo $redirect;?>
</div>
<div data-role="footer">
<h1>Footer Text</h1>
</div>
</div>
</body>
</html>
Try the next step: 尝试下一步:
1) For all forms: 1)对于所有形式:
replace <form action="" method="post">
to <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES, "utf-8"); ?>" method="post">
将
<form action="" method="post">
替换为<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES, "utf-8"); ?>" method="post">
2) For all redirect: 2)对于所有重定向:
$findHttp = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http';
header('Location: '.$findHttp.'://'.$_SERVER["HTTP_HOST"].'/');
exit;
3) Check POST request - var_dump($_POST);
3)检查POST请求
var_dump($_POST);
and find current 'if' block which work with that request. 并找到适用于该请求的当前“ if”块。
It's a best practice to specify the destination URL. 最佳做法是指定目标URL。 If you want to sumbit to itself try this
如果你想自己总结一下,试试这个
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']) ?>">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.