登录网站并从页面获取HTML

时间:2016-03-25 14:33:51

标签: javascript html cookies login

我有点困惑,我已经阅读了很多关于我的问题,但没有找到答案。 我必须登录一个网站并从登录后才能访问的页面中获取一些HTML。我过去使用Visual Basic执行此操作,使用IE Object并且像脚本一样,但这给了我很多问题,主要是因为它太慢了。

我的网站只需使用<url>/j_security_check?j_username=username&j_password=pass等POST请求即可轻松访问 我不知道的是如何检查我是否登录, 如何使用创建的会话访问页面, 以及如何获取HTML(主要由JavaScript生成)

之前从未创建过登录表单,我不知道会话的工作原理。我也对标头需要什么以及服务器给出的请求和响应代表感到困惑。

如果有人能指出我正确的方向来学习这些概念,我将非常感激。

2 个答案:

答案 0 :(得分:2)

SESSIONS视为服务器内存中的变量。它们作为存储在用户计算机上的cookie持续存在。以下是两个简短但有用的解释:herehere

PHP中的登录系统的

Here is a simplified code example。当登录成功或失败时,您要么(a)将用户重定向到安全页面,要么(b)将它们返回到公共页面再试一次。在PHP代码中,您可以使用headers()方法或使用window.location.href="webpage.html";的javascript重定向它们。上面的示例使用js方法,它还演示了如何保护网页以创建一些页面inside和一些public

您选择PHP方法还是javascript方法(重定向到其他页面)取决于您如何处理来自用户的登录名/密码。如果您使用HTML表单,他们的工作方式是将数据发布到辅助页面 - 实际导航到其他页面 - 处理数据,并使用它执行某些操作。这一切都可以在PHP中发生。

这些天最常见的方法是保留在同一页面上(不导航它)并仅将数据发送到辅助PHP页面。该页面接收用户数据(id / pw),将这些凭据与您存储在数据库中的凭据(或甚至只是该PHP文件中的变量)进行比较,ECHOs回复登录页面的响应。响应在success:函数内部接收,然后您使用javascript代码将用户重定向到内部页面。

在保留在原始页面上时将数据发送/接收到辅助PHP页面称为AJAX。这很简单。 Here is a brief overview with some simple examples.我建议您将代码复制到服务器并使示例正常工作 - 更改一些内容以了解每个代码的工作原理。

请注意,有两种方法可以将数据从一个网页发送到另一个网页:GET和POST。最明显的区别是GET方法的工作原理是将变量/值附加到URL,如您在问题中所示:

<url>/j_security_check?j_username=username&j_password=pass

POST方法更隐蔽 - 您需要使用开发人员工具查看数据 - 因此首选。

GET和POST源自HTML表单,大多数人立即将这两者联系起来。在AJAX的这些现代,根本不需要<form>标签。实际上,如果您在AJAX中使用<form></form>结构,则必须禁止导航到辅助页面的默认操作:

<form id="myForm" action="anotherpage.php" method="GET">
</form>

$('#myForm').submit(function(event){
    event.preventDefault(); //suppress default form action
    //Do some stuff
    $.ajax({
        type: 'post', //this is where you now do the GET or POST
         url: 'my_secondary_file.php',
        data: 'varname=' + field_value_variable + '&nuthervar=' +nutherval,
        success: function(d){
            if (d == 'whatever you echo from php') window.location.href = 'my_secret_page.php'
        }
    });
});

答案 1 :(得分:0)

会话在服务器上创建。点击网址后(在本例中为<url>/j_security_check?j_username=username&j_password=pass),您的服务器应验证凭据,然后创建会话。您只能使用javascript管理该会话,可能使用cookie,而不是创建会话。