PHP登录其他网站,看看数据是否正确


php login on other website and see if data is correct

我正在制作一个网站,遇到了一个很大的问题。

小解释(有假地址),

我有一个网站,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 中

不是最好的解决方案,而是我会在中间使用的解决方案,直到我找到一个更永久的解决方案