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

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

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

回答后我知道 ?login 做了什么,但为什么登录完成后按钮不显示???

完整代码:

<?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

4 回答 4

4

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

该脚本会发送一个重定向标头以将用户发送到谷歌登录页面。

于 2013-09-15T13:44:14.760 回答
1

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

于 2013-09-15T13:43:53.257 回答
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
于 2013-09-15T13:57:03.383 回答
0

这意味着在同一个 PHP 脚本上提交带有附加查询字符串的表单。例如,如果表单文件名是 abc.php,那么在提交 URL 后变成 abc.php?login,您可以在 GET 中登录

于 2013-09-15T13:50:28.323 回答