我有一个按钮,允许从推特进行身份验证,一切正常,但唯一的问题是我希望在不同的选项卡上打开登录推特.php页面,我尝试使用 window.open 代替标题,但它不起作用。 谁能说出它是如何做到
的<?php
ob_start();
session_start();
if (isset($_SESSION['id'])) {
header("location: u_tasks.php");
}
if (array_key_exists("login", $_GET))
{
$oauth_provider = $_GET['oauth_provider'];
if ($oauth_provider == 'twitter')
{
header("Location: login-twitter.php");
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<?
echo "<div class='col-md-9'>";
echo "<a href='?login&oauth_provider=twitter'><button style='background-color:#1dcaff; border-color:#1dcaff; color:white; height:30px; border-radius:10px;'>Go To Twitter</button></a>";
echo "</div>";
?>
</body>
</html>
我认为这对你很有帮助。
<a href='?login&oauth_provider=twitter' target="_blank"><button style='background-color:#1dcaff; border-color:#1dcaff; color:white; height:30px; border-radius:10px;'>Go To Twitter</button></a>
使用header("Location:...");
只能进行重定向。据我所知,你必须做一些JavaScript或html来实现你的目标。另一个问题是浏览器喜欢阻止自动打开的弹出窗口,因为 99% 的时间自动弹出窗口仅由垃圾邮件发送者使用。但是,无论如何,我都会向您展示一种尝试执行此操作的方法:
<?php
$usingTwitter=0;
ob_start();
session_start();
if (isset($_SESSION['id'])) {
header("location: u_tasks.php");
}
if (array_key_exists("login", $_GET))
{
$oauth_provider = $_GET['oauth_provider'];
if ($oauth_provider == 'twitter')
{
$usingTwitter=1;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<script>
<?php
if($usingTwitter){
echo "window.open('login-twitter.php');";
}
?>
<script>
</head>
<body>
<?
echo "<div class='col-md-9'>";
echo "<a href='?login&oauth_provider=twitter'><button style='background-color:#1dcaff; border-color:#1dcaff; color:white; height:30px; border-radius:10px;'>Go To Twitter</button></a>";
echo "</div>";
?>
</body>
</html>
不过,请确保在浏览器中关闭弹出窗口阻止功能!