【问题标题】:Post GWT input to a PHP page将 GWT 输入发布到 PHP 页面
【发布时间】:2019-04-08 16:25:30
【问题描述】:

我有一个带有输入的 GWT 应用程序(比如说姓名、地址、电子邮件)。用户输入所有必填字段并按下提交按钮后,PHP 页面将显示来自 GWT 应用程序的输入。如何将我的 GWT 应用程序连接到 php?我现在正在使用请求生成器。我还必须使用 XML 将 GWT 输入传递给 PHP 吗?请帮忙。我刚开始在这里学习 GWT。

提前致谢。

【问题讨论】:

    标签: php xml gwt request


    【解决方案1】:

    你实际上不需要 RequestBuilder 来做这样的事情。
    如果您重定向到 PHP url 并将您的输入附加为 GET 参数就足够了。 因此,例如在点击处理程序中,您可以执行以下操作:

    submitButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            String linkURL = "somePage.php?name="+name+"&address="+address+"&email="+email;
             Window.Location.assign(linkURL);
        }
    });
    

    然后在PHP页面中可以这样取回参数:

    $name = $_GET['name'];
    $address = $_GET['address'];
    $email = $_GET['email'];
    

    更新

    如果你想使用 RequetBuilder,你必须这样做:

    submitButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            RequestBuilder request = new RequestBuilder(POST,PHP_URL);
            JSONObject jsonValue = new JSONObject();
            jsonValue.put("name", new JSONString(name));
            jsonValue.put("address", new JSONString(address));
            jsonValue.put("email", new JSONString(email));
            request.setHeader("Content-Type", "application/json");
            request.sendRequest(jsonValue.toString(),new RequestCallback() {
                @Override
                public void onResponseReceived(Request request, Response response) {
                    if (200 == response.getStatusCode()) {
                         //retrieve a uniqueid or so and redirect to the PHP page which displays the infos
                    } else {
                       // displayError("Couldn't retrieve 
    
                    }
                }
    
                @Override
                public void onError(Request request, Throwable exception) {
                     //displayError("Couldn't retrieve JSON");
                }
             });
    
        }
    });
    

    在服务器上,您只需访问全局 $_POST 变量即可获取值:

    $name = @_POST['name']
    

    【讨论】:

    • 你好。感谢您回答这个问题。实际上,我已经这样做了,但我在想如果我必须传递密码之类的数据怎么办?这个不安全。我可以使用 XML/JSON 来传递它吗?我仍然对 JSON 一无所知,但我读过它可以用来将 GWT 传递给 PHP。我只是不知道该怎么做:(
    • 密码是另一个问题。但是,无论如何,我认为使用 RequestBuilder 会更安全,因为 RequestBuilder 也“仅”创建 HTTP 请求,就好像您将通过普通浏览器 URL 进行操作一样。使用 RequestBuilder 您可以使用 POST 代替(仍然可以读出它们)。详情见我的更新
    • 你好。我将在服务器端放置什么代码?对不起,如果我在这里什么都不知道.. :(
    • 查看我的更新。 RequestBuilder 基本上只是创建一个 HTTP 请求。就像直接调用php页面一样。
    • 它在我的代码中不起作用。我试过这个。实际上,我的php 代码是这样的:foreach( $_POST as $key=>$value ) { echo "$key : $value<br />"; }
    猜你喜欢
    • 2018-11-09
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多