<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();
}
答案 0 :(得分:4)
这是一个查询字符串参数。这意味着表单应该提交到当前脚本url,但是应该附加?login参数
脚本除了发送重定向标头以将用户发送到谷歌登录页面。
答案 1 :(得分:1)
它只是(相对)URL的一部分,表示查询字符串的开头。
答案 2 :(得分:1)
正如其他人所说,这意味着您的表单将被附加到实际页面并附加查询参数。
如果您在页面example.com/login.php
上并且您提交了此表单,则会在页面example.com/login.php?login
发送该表单,如果您希望在重定向到其他页面之前验证输入,则此页面非常有用。
一个简短的例子就像是
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中登录