登录到网站并从页面获取html
Login into a website and get html from a page
我有点困惑,我读了很多关于我的问题的文章,但没有找到答案。我必须登录到一个网站,并从登录后才能访问的页面中获取一些HTML。我过去在Visual Basic中使用IE Object
并像脚本一样操作,但这给我带来了很多问题,主要是因为它太慢了。
我的网站很容易访问,只需使用像<url>/j_security_check?j_username=username&j_password=pass
这样的POST请求我不知道的是如何检查我是否登录,如何使用创建的会话到达页面,以及如何获取HTML(主要由JavaScript生成)
我以前从未创建过登录表单,也不知道会话是如何工作的。我还不清楚头需要什么,以及服务器给出的请求和响应代表什么。
如果有人能为我指明学习这些概念的正确方向,我将不胜感激。
将SESSIONS
视为服务器内存中的变量。它们作为cookie存储在用户的计算机上。这里有两个简短但有用的解释:这里和这里
下面是一个PHP登录系统的简化代码示例。当登录成功或失败时,您可以(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。这很简单。以下是一些简单示例的简要概述。我敦促您将代码复制到服务器上,并使示例发挥作用——更改一些内容,看看每个示例是如何工作的。
请注意,有两种方法可以将数据从一个网页发送到另一个网页: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'
}
});
});
会话是在服务器上创建的。一旦您点击了url(在本例中为<url>/j_security_check?j_username=username&j_password=pass
),服务器就应该验证凭据,然后创建会话。您只能使用javascript来管理该会话,可能使用cookie,而不能创建会话。
- 获取HTML属性中CSS声明的值
- 使用Java从javascript链接获取html更改
- 从模板标签获取html
- 无法获取@Html.ListBoxFor()的正确语法
- 获取html表单信息并使用ajax将其推送到PHP
- 获取HTML的第一句话
- PHP和JavaScript:在PHP中获取HTML值
- 获取 HTML 5 音频控制文件位置并在不使用 id 选择器的情况下更新 src
- 如何获取html中输入框的值并对其进行操作
- Javascript从外部站点获取html
- 在不使用sort()的情况下获取HTML LI元素的副本
- 如何在单击行时获取html表中第一列的值
- 在Javascript服务器应用程序之后获取HTML
- 如何使用位置获取滚动功能获取 HTML 中的元素标签
- 如何使用 JQuery 从相对元素获取 html 文本
- 从 Rails dom_id 方法获取 HTML 类名
- TypeScript - 如何获取 HTML 元素,例如在 Javascript 中使用美元符号 ($)
- 为什么我的“for”循环只获取 html 中的最后一项
- objective-C 在 UIWebView 中的 ajax 调用后获取 HTML 值
- 从用户那里获取 HTML 输入