0

これは簡単かもしれませんが、私はそれを理解するのに苦労しています.

index.php のデータを含むフォームが Sell.php に送信され、mysql クエリによって処理され、データがデータベースに正常に保存された後、前のページ (index.php) に自動的に戻ります。

私が使用しているコードは次のとおりです。

header("Location: " .$_SERVER['HTTP_REFERER']);

ここで少し強化が必要でした。ページ Sell.php が index.php に戻ると、データが正常に送信されたことを示す確認メッセージがユーザーに表示されます。

index.php

<form name="vender" method="post" action="sell.php">
<?php echo $identity; ?> | <?php echo $model; ?>
<hr />
    <input type="hidden" name="serial" value="<?php echo $identity; ?>" />
    <input type="hidden" name="model" value="<?php echo $model; ?>" />
    <input type="hidden" name="date" value="<?php echo DATE('Y-m-d'); ?>" />
    <table style="font-size: 8pt;">
        <tr><td>IEMI:</td><td><input class="form-sell" type="text" name="imei" /></td></tr>
        <tr><td>Nombre: </td><td><input class="form-sell" type="text" name="name" /></td></tr>
        <tr><td>Contacto: </td><td><input class="form-sell" type="text" name="contact" /></td></tr>
        <tr><td>NIF: </td><td><input class="form-sell" type="text" name="nif" /></td></tr>
        <tr><td>Cantidad: </td><td><input class="form-sell" type="text" name="qty" /></td></tr>
        <tr><td>Precio: </td><td><input class="form-sell" type="text" name="price" /></td></tr>
        <tr><td><input type="submit" /></td></tr>
    </table>
</form>

Sell.php

<?php

include "connect.php";
include "links.php";

$date = $_POST['date'];
$serial = $_POST['serial'];
$model = $_POST['model'];
$imei = $_POST['imei'];
$name = $_POST['name'];
$contact = $_POST['contact'];
$nif = $_POST['nif'];
$qty = $_POST['qty'];
$price = $_POST['price'];

mysql_query("INSERT INTO mobile_sell_data(date,serial,model,imei,name,contact,nif,qty,price) VALUES('$date','$serial','$model','$imei','$name','$contact','$nif','$qty','$price')");

mysql_query("UPDATE mobils SET qty=qty-'$qty' WHERE id = '$serial'");
header("Location: " .$_SERVER['HTTP_REFERER']);

?>
4

2 に答える 2

0

get 変数の使用を検討しましたか?

header("Location: " .$_SERVER['HTTP_REFERER'] . "?success=true");

それともセッションを使用していますか?

session_start()
$_SESSION['success'] = true
//reset the session on the return page

これらは特にエレガントなソリューションではありませんが、機能します

于 2013-04-06T04:54:26.877 に答える
0

ヘッダーが送信されると、サーバーはページの処理を終了するため、ヘッダーが送信されると何もエコーできません。ここで実装できるソリューションがいくつかあります。GET 変数、POST 変数、SESSION、場合によっては Cookie を使用してデータを index に送り返すか、index.php 内から ajax を使用してリクエストを実行することで、実際に index ページを離れることがないようにすることができます。簡単な解決策は次のとおりです: (注意: Sell.php でリダイレクトを削除する必要があります。すべてこの方法で index.php で行われます)

<?php
$successfulSubmit = FALSE;
if (!empty (@$_POST["sub"]))
{
    include "sell.php";
    $successfulSubmit = //some logic to verify data was successfully submitted
    if ($successfulSubmit)
    {
        echo "Data submitted successfully";
    }
    else
    {
        echo "Data submitted unsuccessfully";
    }
}
?>
<form name="vender" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<?php echo $identity; ?> | <?php echo $model; ?>
<hr />
<input type="hidden" name="serial" value="<?php echo $identity; ?>" />
<input type="hidden" name="model" value="<?php echo $model; ?>" />
<input type="hidden" name="date" value="<?php echo DATE('Y-m-d'); ?>" />
<table style="font-size: 8pt;">
    <tr><td>IEMI:</td><td><input class="form-sell" type="text" name="imei" /></td></tr>
    <tr><td>Nombre: </td><td><input class="form-sell" type="text" name="name" /></td></tr>
    <tr><td>Contacto: </td><td><input class="form-sell" type="text" name="contact" /></td></tr>
    <tr><td>NIF: </td><td><input class="form-sell" type="text" name="nif" /></td></tr>
    <tr><td>Cantidad: </td><td><input class="form-sell" type="text" name="qty" /></td></tr>
    <tr><td>Precio: </td><td><input class="form-sell" type="text" name="price" /></td></tr>
    <input type="hidden" name="sub" value="submitted" />
<tr><td><input type="submit" /></td></tr>
</table>
</form>
于 2013-04-06T05:17:30.327 に答える