我正在制作一个网站,遇到了一个很大的问题。
小解释(有假地址),
我有一个网站,www.website1.com,;)有大量好的编码内容。现在您可以登录此网站,但使用 www.website2.com。因此,当您登录时,您会看到 www.website1.com 登录页面,但您正在登录 www.website2.com。
现在我已经研究了,并发现了cURL。但这是我的问题。我不仅希望人们登录 www.website2.com。我还保存用户名,电子邮件地址以用于 www.website1.com。
这在 HTML/PHP/cURL 中可能吗?如果是这样,如何?
提前谢谢。
PS:这是我关于stackoverflow的第一个问题。我希望:D没事。
编辑:我自己用cURL做了一些东西,但它有一些问题。索引.php (网站1)
<?php
$username="user1";
$password="password1";
$url="http://localhost/AAWebsite/test/action.php";
$cookie="cookie.txt";
$postdata = "email=".$username."&password=".$password."&submit=submit";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
echo $result;
curl_close($ch);
?>
登录.php(网站2)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Login</title>
</head>
<body>
<?php if(isset($_SESSION['username'])): ?>
<p>You are logged in as <?=$_SESSION['username']?></p>
<p><a href="?logout=1">Logout</a></p>
<?php endif; ?>
<form method='post' action='action.php'>
Email Address: <input type='text' name='email'>
Password: <input type='password' name='password'>
<button name="submit" value="submit">Submit</button>
</form>
</body>
</html>
操作.php (网站2)
<?php
$user = $_POST['email'];
$pass = $_POST['password'];
if($user == ''){
header("Location: index.php?error=email_missing");
};
if($pass == ''){
header("Location: index.php?error=password_missing");
};
$result = filter_var( $user, FILTER_VALIDATE_EMAIL );
if(!$result == $user){
header("Location: index.php?error=email");
} else {
header("Location: index.php"); }
?>
zindex.php (website2)
index site
现在的问题是,您是从index.php登录的。但是你被困在行动上,.php。有什么可以解决这个问题的?
如果我
做对了,我会用PHP做这样的事情:
我将使用一些示例代码
登录 PHP:
<form action="http://www.domain1.com/test/redirect.php" method="post">
Login Details:</br>
<input type="text" name="name" value="<?=$name?>" /></br>
<input type="text" password="password" value="<?=$password?>" /></br>
<button name="Submit" value="Submit">login</button>
</form>
并在重定向页面中将登录功能从站点1登录站点1,重定向到站点2登录验证页面以登录站点2并返回站点1,如果您喜欢或留在站点2,则
取决于您重定向时,我会使用 GET 将数据发送到站点 2(最好先加密数据)
重定向.php
if(!empty($_POST) && isset($_POST['user']) && isset($_POST['password'])){
$user= query("SELECT * FROM ".USERS." WHERE user = '".$_POST['user']."' AND password= '".$_POST['password']."'");
if($user->num_rows == 1){
$_SESSION['uid'] = $user->fetch_assoc();
header("Location: http://www.site2.com/getsite1.php?user=$_POST['user']&&password=$_POST['password']");
}
else{
unset($_SESSION['uid']);
header("Location: index.php?msg=Invalid Username or Password.");
}
}
在 getsite1 上.php在站点 2 中,我将有一些类似的代码登录站点 2,然后重定向回站点 1 或留在站点 2 中
不是最好的解决方案,而是我会在中间使用的解决方案,直到我找到一个更永久的解决方案