【问题标题】:Send a mysqli_query() to an intranet with a remote php-script使用远程 php 脚本将 mysqli_query() 发送到 Intranet
【发布时间】:2016-06-09 20:56:35
【问题描述】:

目前,我正在编写一个连接到 php-server 的 Android 应用程序。该服务器上有一些 php 脚本,它们发送 mysqli_queries 并接收远程 mysql 数据库的响应。

<?php
    error_reporting(0);
    $db_host = $_POST["dbhost"];
    $db_uid = $_POST["dbusername"];
    $db_pass = $_POST["dbpassword"];
    $db_name = $_POST["dbname"];

    if ($db_host == "" || $db_uid == "" ||  $db_pass == "" || $db_name =="" ) 
        echo "Missing information!";
    else
    {
        $con = mysqli_connect($db_host,$db_uid, $db_pass, $db_name);
        // Check connection
        if (mysqli_connect_error())
            die("Couldn't connect to the database!");
        else
            echo "Connection Successfull";
    }
?>

这没有任何问题,但现在,我需要先连接到 Intranet,才能访问本地数据库。

我想到了一个连接到 Intranet(通过 vpn)的 php 脚本,如果连接建立,它会运行 mysql 查询。 在 php-script 收到响应后,它会断开连接并将结果发送回 Android 应用程序。遗憾的是,我以前从未这样做过,而且 Google 似乎不知道答案。

我不希望整个服务器自己连接到内网,只允许脚本建立连接,因为同时执行其他mysqli_queries。

我的问题,这可能吗? 如果不是,是否有其他解决方案可以解决我的问题?

非常感谢您。

【问题讨论】:

    标签: php android mysql vpn


    【解决方案1】:

    要解决这个问题,您必须设置一个特定的端口,该端口将与外部或 api 进行通信,并通过公钥保护它。更确切地说,您可以从您的 Intranet 中的服务器转发一个可以在 http 上工作的端口。类似http://address:8888 并通过 API 提取数据。这是最安全的方式。请仅在您认为我理解正确时才考虑此答案。如果现在添加评论,我仍然可以给你一些想法。

    【讨论】:

    • 问题是我没有任何访问内网的权限。
    【解决方案2】:

    最好的解决方案是你在你的 Intranet 上创建了一个 web 服务,你可以从你的 android 设备上使用它,你可以为他们提供 utl web 服务的 get 方法。 对于您的 Web 服务的 augulenter 安全器,您可以添加一个变量,您可以在 Web 服务和 android 应用程序之间添加一个变量。

    【讨论】:

    • 我自己无权访问内网。此应用适用于希望将数据添加到其企业资源规划系统的公司所有者或员工。
    • 使用 vpn 客户端。或者你是什么意思?内网与外界没有任何连接,除了想连接vpn的人。
    猜你喜欢
    • 2011-06-13
    • 2012-02-18
    • 2015-12-23
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多