确定$ _POST的来源

Wil*_*don 3 php

有没有一种简单的方法可以找到PHP中的post变量的来源?

在example.com/formone.php上填写表格

<form method="post" action="test.php">
<input name="myusername"type="text">
<input name="mypassword" type="password">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

在example.com/formtwo.php上填写表格

<form method="post" action="test.php">
<input name="myusername"type="text">
<input name="mypassword" type="password">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用隐藏的输入,但我想知道PHP是否有一种方法来测试POST的来源.

Qua*_*cal 8

虽然您可能使用HTTP_REFERER服务器变量,但它不是很可靠.你最好的选择是使用一个隐藏的领域.

另一种选择是切换提交input提交button.这样你可以用它传递一个值,保留按钮的标签,并测试你test.php页面内的那个:

<button name="submit" type="submit" value="form1">Submit</button>
Run Code Online (Sandbox Code Playgroud)

在PHP文件中,您将测试:

if( $_POST['submit'] == "form1" )
    // do something
Run Code Online (Sandbox Code Playgroud)