我已经提交了我的表格。我已尝试使用ajax和常规提交($.post()
,$.get()
,method="post"
,method="get"
)。
当我使用任何一个获取时,我可以使用$_GET
获取数据,但使用任一帖子都不会填充$_POST
变量。
任何建议都会很棒。我需要开始工作,因为我不喜欢使用get来做密码之类的事情。
修改
POST:
<form method="post" action="<?php htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<input type="text" name="some_input" value="">
<input type="submit" name="submit">
</form>
<?php
if (isset($_POST["some_input"])) echo $_POST["some_input"];
?>
或者
GET:
<form method="get" action="<?php htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<input type="text" name="some_input" value="">
<input type="submit" name="submit">
</form>
<?php
if (isset($_GET["some_input"])) echo $_GET["some_input"];
?>
第一个没有显示任何内容。
第二个显示我输入的内容。
编辑2:
以下代码可以使用并填充我的$_POST
<?php
print "CONTENT_TYPE: " . $_SERVER['CONTENT_TYPE'] . "<BR />";
$data = file_get_contents('php://input');
print "DATA: <pre>";
var_dump($data);
var_dump($_POST);
var_dump($_SERVER["PHP_SELF"]);
print "</pre>";
?>
<form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>">
<input type="text" name="name" value="ok" />
<input type="submit" name="submit" value="submit" />
</form>
结果:
CONTENT_TYPE: application/x-www-form-urlencoded
DATA:
string(21) "name=ok&submit=submit"
array(2) {
["name"]=>
string(2) "ok"
["submit"]=>
string(6) "submit"
}
string(37) "/path/to/test-post.php"
奇怪的是,action="<?php $_SERVER["PHP_SELF"]; ?>"
或根本没有任何行动就可以了,但action="test-post.php"
或action="/path/to/test-post.php"
都没有。
结果破碎:
CONTENT_TYPE:
DATA:
string(0) ""
array(0) {
}
string(37) "/path/to/test-post.php"
答案 0 :(得分:2)
我仍然不太确定是什么原因导致它,但我发现如果我使用相对路径发出请求,那么我必须省略文件扩展名。例如action="test-post"
代替action="test-post.php"
。
如果我通过get($_GET
)发送文件扩展名似乎适用于$_REQUEST
和method="get"
,但$_POST
或$_REQUEST
不是如果我通过邮寄(method="post"
)发送它。
<强> 修改 强>
这与.htaccess
文件有关。我对这个文件了解不多,所以我不确切知道是哪个位导致了这个问题。
答案 1 :(得分:0)
您可以尝试使用$_REQUEST
代替$_POST
查看类似问题:
答案 2 :(得分:0)
这是一个如何使用post制作表单并处理它的示例。 请注意,您可以将操作留空(然后它将保留在同一个URL上)。
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST["some_input"])) {
echo $_POST["some_input"];
}
}
?>
<form method="post" action="">
<input type="text" name="some_input" value="">
<input type="submit" name="submit">
</form>
答案 3 :(得分:0)
以下是使用POST提交AJAX的提交示例:
HTML:
<form id="form" name="form">
<h3>Fill Your Information!</h3>
<div>
<label>Name :</label>
<input id="name" type="text">
<label>Email :</label>
<input id="email" type="text">
<label>Password :</label>
<input id="password" type="password">
<label>Contact No :</label>
<input id="contact" type="text">
<input id="submit" onclick="myFunction()" type="button" value="Submit">
</div>
</form>
Javascript:
jQuery(document).ready(function(){
$('#form').submit(function(e){
var emailVal = $('#email').val();
e.preventDefault();
$.ajax({
type: "POST",
url: "thePHPfile.php",
data: 'data': emailVal ,
success: function(html) {
alert(html);
}
});
});
});
PHP:
<?php
if(isset($_POST['data']){
echo $_POST['data'];
}
?>