0

HTTPREQUESTアプリケーションを起動したばかりで、最初にphpファイルを設定しようとしています。

私は自分のwamp/www/MenuBook/フォルダにこの挿入機能を持っています:

<?php

// array for JSON response
$response = array();

// check for required fields
if (isset($_POST['table_ID']) && isset($_POST['MenuBook']) && isset($_POST['order_status'])&& isset($_POST['order_date'])&& isset($_POST['order_receipt'])) {

    $tableID = $_POST['table_ID'];
    $menuBook = $_POST['MenuBook'];
    $order_status = $_POST['order_status'];
    $order_date = $_POST['order_date'];
    $order_receipt = $_POST['order_receipt'];

    // inlude db connect class
    require_once __DIR__ . '/DBConnect.php';

    // connecting to db
    $db = new DB_CONNECT();

    // mysql inserting a new row
    $result = mysql_query("INSERT INTO orderdb(table_ID,MenuBook,order_status,order_date,order_receipt) VALUES('$table_ID', '$menuBook', '$order_status','$order_date','$order_receipt')");

    // check if row inserted or not
    if ($result) {
        // successfully inserted into database
        $response["success"] = 1;
        $response["message"] = "Order successfully created.";

        // echoing JSON response
        echo json_encode($response);
    } else {
        // failed to insert row
        $response["success"] = 0;
        $response["message"] = "Oops! An error occurred.";

        // echoing JSON response
        echo json_encode($response);
    }
} else {
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

    // echoing JSON response
    echo json_encode($response);
}
?>

次に、次のようなブラウザを使用して、データベースにデータが挿入されるかどうかを確認します。

localhost/MenuBook/insertOrder.php?$table_ID=003&$MenuBook=01&$order_status=PENDING&$order_date=2013-01-17&$order_receipt=NO

今のところ、ブラウザにこれを返します。

{"success":0,"message":"Required field(s) is missing"}

これをどのように試して確認できるかについてのアイデアはありますか?

4

4 に答える 4

2

次の理由により、データは挿入されません。

  1. URL(GETメソッド)で変数を渡し、を使用してスクリプトでそれらを使用しています$_POST
  2. また、URLの変数を正しく渡していないので、、ではなくtable_IDMenuBookなど$table_IDである必要があります$MenuBook

解決策は、ユーザー$_GETまたは$_REQUESTスクリプト内のいずれかであるか、可能であればPOSTメソッドを使用して値を渡します(より適切な選択)。

テストの場合:$_GETまたは$_REQUESTスクリプトで使用したことがある場合は、生成されたURLをコピーしてブラウザーに貼り付け、テストを実行します。それ以外の場合はPOST、サンプルフォームを作成し(持っていない場合)、テストのために送信します。

于 2013-01-17T06:49:47.003 に答える
1

問題は、URLにある「$」記号にあるようです。URL変数はそれらを必要としません。あなたはphpのためだけです。$sなしで試してみてください。

于 2013-01-17T06:49:48.120 に答える
1

最も簡単な方法は、すべての正しいフィールドを含むフォームを含むHTMLページを作成することです。正しいパスに送信し、メソッドがPOSTであることを確認してください。

例えば:

<html>
    <head></head>
    <body>
        <form action="http://localhost/MenuBook/insertOrder.php" method="POST">
            <input type="text" name="table_ID" />
            <input type="text" name="MenuBook" />
            <input type="text" name="order_status" />
            <input type="text" name="order_date" />
            <input type="text" name="order_receipt" />
            <input type="submit" />
        </form>
    </body>
</html>
于 2013-01-17T06:50:30.727 に答える
0

選択したブラウザーに応じて、少なくとも1つのRESTコンソールアドオン/拡張機能があり、HTTPリクエスト(POSTやその他の高度メソッドを含む)を簡単にテストして、それらの応答を確認できます。

Chromeを使用しています。Firefoxのような他のもの。

curlあなたがそのように振るならば、もう一つのオプションです。

于 2013-01-17T06:47:37.827 に答える