从 HTML 窗体调用 PHP API


Calling a PHP API from HTML Form?

我已经开发了一段时间的iOS应用程序,并且刚刚开始设计我的网站。在我的一个应用程序中,我使用以下方法将数据添加到数据库:

let URL = NSURL(string: urlPath.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)
let data = NSData(contentsOfURL: URL!)
var response = ""
if let data = data{
        response = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
}

urlPath看起来像:http://mydomainname.com/folder/anotherFolder/theAPI.php?arg1=one&arg2=two&arg3=three等等。

我真正希望能够做的是调用带有所有参数的 API.php 文件,其中每个参数(arg1=、arg2= 等)都是 HTML 表单中的一个字段。我找到了几个处理HTML表单和验证数据的教程,现在我的表单看起来像:

<form action="action.php" method="post">
        <div id="formtext">Name</div>
        <input type="text" name="Name">
        <div id="formtext"><br>Email Address:</div>
        <input type="text" name="Email"><br>
        <div id="formtext"><br>Password</div>
        <input type="text" name="Password"><br><br>
        <input type="submit" name="submit" value="Submit">
</form>

抱歉,如果 HTML 有点令人毛骨悚然,我没有足够的经验来了解"整洁"/传统的 HTML 代码是什么样子的,这就是我设法从教程中拼凑出来的。我也知道,在action.php中,您可以获取以下形式的值: $_POST['Name'] .我觉得我真的很接近 - 我只是找不到任何地方可以告诉我如何调用这个 api。

我能得到的最接近的是:

$name = $_POST['Name']
$email = $_POST['Email']
$password = $_POST['Password']
$response = file_get_contents('http://domain.com/folder/api.php?Name=' . $name . '&Email=' . $email . '&Password=' . $password);
echo $response

如果你是一个php专家,再次,很抱歉屠杀你的代码:)

(哦,结果只是说 where 子句中的第 26 行有一个错误 - API 很好,因为我从我的应用程序中对其进行了测试)。编辑:子句曾经在哪里 While 循环(抱歉)

总之,如果有人向我展示要放入action.php的内容(不包括验证 - 我稍后会继续),我将不胜感激,如果我做错了什么,请告诉我。

谢谢:)

在 HTML 中,标签的name=""部分应该与你的 arg1、arg2、arg3 相关。我不知道您对 GET 和 POST 有多少经验,但如果您希望 URL 像您的示例中那样包含所有参数,您应该将表单方法设置为 get。表单标记的操作属性是要将值发送到的页面。为您的表单尝试以下操作:

<form action="http://mydomainname.com/folder/anotherFolder/theAPI.php" method="get">
        <div id="formtext">Name</div>
        <input type="text" name="arg1">
        <div id="formtext"><br>Email Address:</div>
        <input type="text" name="arg2"><br>
        <div id="formtext"><br>Password</div>
        <input type="text" name="arg3"><br><br>
        <input type="submit" name="submit" value="Submit">
</form>

提交此表格后,您应该被带到 URL http://mydomainname.com/folder/anotherFolder/theAPI.php?arg1=inputfromfirstbox&arg2=inputfromfield2&arg3=inputfromfield3

首先,你需要把你的PHP指令放在php标记之间。

<?php
 //You php script here
?>

此外,php 指令以 ";" 结尾,你做得很好 $response.

<?php
$name = $_POST['Name'];
$email = $_POST['Email'];
$password = $_POST['Password'];
$response = file_get_contents('http://domain.com/folder/api.php?Name=' . $name . '&Email=' . $email . '&Password=' . $password);
echo $response;
?>

然后,直接使用表单中的数据不是一个好主意。您应该在之前分析它们(确保您的电子邮件是真实的电子邮件,而不是随机字符串等)。为此,您可以查看正则表达式: http://php.net/manual/en/function.preg-match.php

如果您需要更多信息,请告诉我。