我有一个像这样的html表单:
</div>
<form method="POST" action = "process.php">
<input type="text" name="user" placeholder="Enter your name"/>
<input type="text" class="message" name="message" placeholder="Enter your message"/>
<input type="submit" class="btn-default " name="submit" value="Shout it out"/>
</form>
</div>
按下Shout it out
按钮提交后,我的$_POST
数组在$_GET
工作正常时未填充任何值。
var_dump($_POST);
这给了我array{0}
。
这是我的process.php:
<?php
include 'database.php';
//Check if form submitted
if(isset($_POST['submit'])) {
$user = mysqli_real_escape_string($con, $_POST['user']);
$message = mysqli_real_escape_string($con, $_POST['message']);
// Set timezone
date_default_timezone_set('America/New_York');
$time = date('h:i:s a', time());
echo $time;
}
// Validate input
if (!isset($user) || $user == '' || !isset($message) || $message == '') {
echo 'bad';
var_dump($_POST);
} else {
echo 'good';
}
这是database.php:
<?php
$host = 'localhost';
$username ='root';
$password= '';
$db = "shoutit";
//Connection to the DB
$con = mysqli_connect("$host", "$username", "$password", "$db");
//Test and debugging
if(mysqli_connect_errno()) {
echo'Failed to connect to the database: '.mysqli_connect_errno();
}
?>
?>
到目前为止我尝试了什么:
1.修改我的php.ini
(5.3和7.0版本),更确切地说,检查是post_max_size = 8M;
还是upload_max_filesize = 2M;
(因为有些人有问题,他们的post_max_size是自动的改为大约60MB左右),这没有成功。
2.将method="post"
更改为method="POST"
,反之亦然。
3.Running all(我应该说大多数其他所有提交的票在Stack上,除了那些问题是由JavaScript引起的,显然不是这种情况)。
4.我检查了表格中我的名字是否与我在$_POST
等中使用的相同。
我相信可能会导致问题,因为我正在使用Windows。我的一个朋友正在使用uBuntu,他没有这样的问题,他在提交后填充了$_POST
数组。
有没有办法解决它,或者我应该立即去Ubuntu?
P.S我不认为这应该被标记为重复的问题,因为它还没有答案。(以前在堆栈上提交的都没有):
PHP $_POST not working but $_GET works fine
php $_POST array empty upon form submission
这只是一些没有成功的事情。