webdev_l 2017-03-30 07:03 采纳率: 0%
浏览 1014

curl抓取网页遇到form表单自动提交,跳转到相对路径另外的页面

php curl在浏览器中抓取页面遇到 form表单,在加载完成页面之后,在js代码中对form表单的内容进行填写,填写完成之后执行form.submit();自动提交,该怎么获取该页面,或者获取form提交之后的页面(form的action是一个相对路径,本地抓取不能得到正确的url地址)
页面类似:
需要抓取的页面代码如下图:
页面代码

怎么在浏览器中抓取该页面或者页面提交之后的页面

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-05 15:58
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要从PHP脚本中捕获并处理用户输入到HTML表单中的数据,并通过JavaScript自动提交表单以实现页面重定向,您可以使用以下方法。这里,我将提供一个基本的示例来说明如何处理这种情况。

    首先,请确保您的PHP脚本已正确设置$_POST变量以接收表单数据。然后,您可以编写JavaScript逻辑来处理这些数据并将它们发送给服务器端的PHP文件。请注意,您可能需要根据实际需求调整表单和PHP文件的具体结构。

    示例 PHP 脚本

    <?php
    // 假设我们有一个名为 'niahao.php' 的 PHP 文件用于处理 POST 数据。
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        // 提取表单数据
        $ste = $_POST['ste'];
        $data = $_POST;
    }
    
    // 保存处理后的数据或执行其他操作
    

    示例 JavaScript

    // 在 HTML 表单提交时触发此函数
    document.getElementById('gourl').addEventListener('submit', function(e) {
        e.preventDefault();
        var formData = new FormData(this);
        $.ajax({
            url: './nihao.php',
            type: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            success: function(response) {
                // 在这里处理响应数据,例如更新页面显示等
                console.log(response);
            },
            error: function(xhr, status, error) {
                // 处理错误情况,例如显示错误消息或重试请求
                alert("Error processing the request.");
            }
        });
    });
    

    步骤解释

    1. PHP 脚本:当用户提交表单时,检查 $_POST 变量是否包含所需的数据。如果存在,则可以进一步处理这些数据或将它们传递给 PHP 脚本。

    2. JavaScript:监听表单的 submit 事件。当表单被提交时,阻止默认行为(即刷新当前页面),并使用 FormData 对象将表单数据传递给 PHP 脚本。

    3. Ajax 请求:向指定的 PHP 脚本发送 AJAX 请求。这允许您在不刷新当前页面的情况下执行后端操作。

    4. 处理响应:一旦收到来自服务器的响应,可以在控制台查看结果。对于错误情况,可以使用 error 函数处理潜在的错误。

    5. 验证与处理:确保所有必要的字段都被提交。在处理返回数据之前,您还可以添加更多的验证逻辑。

    注意事项

    • 确保在安全环境中运行上述代码,特别是涉及到数据库连接和敏感信息处理的部分。
    • 使用适当的编码和加密机制保护用户的隐私和数据安全。

    以上示例提供了基本的框架,可以根据具体的需求进行扩展和优化。

    评论

报告相同问题?