在PHP表单操作之前,问号是什么意思

时间:2013-09-15 13:42:45

标签: php

<form action="?login" method="POST">
<button>Login with Google</button>
</form>

我已经看到很多不同的表单操作动作,通常必须指向一个php文件ro ...但是?login的含义是什么

更多信息:这是来自openid库,点击按钮后进入google允许页面!登录完成后,按钮将不会显示!这是什么意思?

在答案之后,我知道登录的内容是什么,但为什么在登录完成后不显示按钮???

完整代码:

<?php

require 'openid.php';
try {
# Change 'localhost' to your domain name.
$openid = new LightOpenID('localhost');
if(!$openid->mode) {
    if(isset($_GET['login'])) {
        $openid->identity = 'https://www.google.com/accounts/o8/id';
        header('Location: ' . $openid->authUrl());
    }
?>
<form action="?login" method="post">
<button>Login with Google</button>
</form>
<?php
} elseif($openid->mode == 'cancel') {
    echo 'User has canceled authentication!';
} else {
    echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') .                    logged in.';  
}
  } catch(ErrorException $e) {
    echo $e->getMessage();
  }

4 个答案:

答案 0 :(得分:4)

这是一个查询字符串参数。这意味着表单应该提交到当前脚本url,但是应该附加?login参数

脚本除了发送重定向标头以将用户发送到谷歌登录页面。

答案 1 :(得分:1)

它只是(相对)URL的一部分,表示查询字符串的开头。

答案 2 :(得分:1)

正如其他人所说,这意味着您的表单将被附加到实际页面并附加查询参数。

如果您在页面example.com/login.php上并且您提交了此表单,则会在页面example.com/login.php?login发送该表单,如果您希望在重定向到其他页面之前验证输入,则此页面非常有用。

请参阅what is ? in url

一个简短的例子就像是

if(isset($_REQUEST['login'])){
    // validate the login form
    // if the form is valid, redirect to the logged in page 
    // else show any type of error message
}

// The regular page in itself displayed the same as before the form submitting
// with an added error message if needed

答案 3 :(得分:0)

这意味着使用其他查询字符串在同一PHP脚本上提交表单。例如,如果表单文件名是abc.php,那么提交URL后会变成abc.php?login,你可以在GET中登录