Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 登录网站并从页面获取html_Javascript_Html_Cookies_Login - Fatal编程技术网

Javascript 登录网站并从页面获取html

Javascript 登录网站并从页面获取html,javascript,html,cookies,login,Javascript,Html,Cookies,Login,我有点困惑,我读了很多关于我的问题的书,但是没有找到答案。 我必须登录到一个网站,从一个只有在登录后才能访问的页面获取一些HTML。我以前用Visual Basic做过这件事,使用IE对象,就像脚本一样,但这给我带来了很多问题,主要是因为它太慢了 我的网站只需使用POST请求即可轻松访问,如/j_security\u check?j_username=username&j_password=pass 我不知道如何检查我是否登录, 如何使用创建的会话访问页面, 以及如何获取HTML(主要由Java

我有点困惑,我读了很多关于我的问题的书,但是没有找到答案。 我必须登录到一个网站,从一个只有在登录后才能访问的页面获取一些HTML。我以前用Visual Basic做过这件事,使用
IE对象
,就像脚本一样,但这给我带来了很多问题,主要是因为它太慢了

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

我以前从未创建过登录表单,也不知道会话是如何工作的。我还不清楚头需要什么,以及服务器给出的请求和响应代表什么


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

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

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

会话看作服务器内存中的变量。它们作为存储在用户计算机上的cookie持久存在。这里有两个简短但有用的解释:和

PHP中的一个登录系统。当登录成功或失败时,您可以(a)将用户重定向到安全页面,或(b)将用户返回到公共页面重试。在PHP代码中,您可以使用
headers()
方法重定向它们,或者在javascript中使用
window.location.href=“webpage.html”。上面的示例使用了js方法,它还演示了如何保护web页面,使一些页面
位于
内部,而另一些页面
为公共

选择PHP方法还是javascript方法(重定向到其他页面)取决于如何处理用户的登录/密码。如果您使用HTML表单,它们的工作方式是将数据发布到第二个页面——实际上是导航到另一个页面——处理数据并对其进行处理。这一切都可以在PHP中发生

现在最常见的方法是保持在同一个页面上(不要离开它),只将数据发送到第二个PHP页面。该页面接收用户数据(id/pw),将这些凭证与数据库中存储的内容进行比较(甚至与PHP文件中的一个变量进行比较),并将响应返回到登录页面。响应在
success:
函数中接收,然后使用javascript代码将用户重定向到内部页面

将数据发送/接收到第二个PHP页面而保留在原始页面上称为AJAX。这很简单。我敦促您将代码复制到服务器上,并使示例正常工作—更改一些内容以了解每个示例的工作方式


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

<url>/j_security_check?j_username=username&j_password=pass
/j_安全检查?j_用户名=用户名&j_密码=通行证
POST方法更隐蔽——您需要使用开发人员工具查看数据——因此它是首选方法

GET和POST起源于HTML表单,大多数人会立即将两者联系起来。在AJAX的现代时代,根本不需要
标记。事实上,如果在AJAX中使用
结构,则必须抑制其导航到辅助页面的默认操作:

<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'
        }
    });
});

$('#myForm')。提交(函数(事件){
event.preventDefault();//抑制默认窗体操作
//做点什么
$.ajax({
键入:“post',//现在在这里执行GET或post操作
url:'my_secondary_file.php',
数据:“varname=”+字段\值\变量+”&nuthervar=”+nutherval,
成功:功能(d){
if(d=='从php回显的内容')window.location.href='我的秘密页面.php'
}
});
});

会话看作服务器内存中的变量。它们作为存储在用户计算机上的cookie持久存在。这里有两个简短但有用的解释:和

PHP中的一个登录系统。当登录成功或失败时,您可以(a)将用户重定向到安全页面,或(b)将用户返回到公共页面重试。在PHP代码中,您可以使用
headers()
方法重定向它们,或者在javascript中使用
window.location.href=“webpage.html”。上面的示例使用了js方法,它还演示了如何保护web页面,使一些页面
位于
内部,而另一些页面
为公共

选择PHP方法还是javascript方法(重定向到其他页面)取决于如何处理用户的登录/密码。如果您使用HTML表单,它们的工作方式是将数据发布到第二个页面——实际上是导航到另一个页面——处理数据并对其进行处理。这一切都可以在PHP中发生

现在最常见的方法是保持在同一个页面上(不要离开它),只将数据发送到第二个PHP页面。该页面接收用户数据(id/pw),将这些凭证与存储在数据库中的凭证进行比较(甚至只与PHP文件中的变量进行比较),然后
ECHOs
a