0

HTMLフォームがあります:

<form action="<?=$_SERVER['PHP_SELF'];?>" method="post"><br>
Order Number: <input type="number" name="orderNo" size="10"/>
<input type="submit" value="Download" />
</form>

PHP isset:

if(isset($_POST['Download'])){download();}

ユーザーに番号を入力してもらい、入力した番号に基づいてテーブルからデータを含むファイルを作成し、ファイルをユーザーにダウンロードさせるコードを実行します。これは、ダウンロード コードを別のファイルに格納し、フォーム アクションでファイルを呼び出すだけで機能しますが、フォームを含むファイルで実行する必要があります。

現在、同じページに isset を使用してファイルをサーバーにアップロードする関数を実行する別のフォームがあり、これは正常に機能しますが、他のコードで試しても何も起こりません。このやり取りに関しては、PHP と HTML は初めてです。

ダウンロード スクリプトの完全なコードは次のとおりです。

function download()
{
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('amazondb', $conn); 
$result = mysql_query("SELECT ID, PurchaseDate, BuyerName, ShipCity, ShipState,     ShipPostalCode, ShipCountry,
                          ShipAddress1, ShipAddress2,   ShipAddress3 FROM imported_orders");
$orderNo = $_POST['orderNo'];
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if($orderNo>0&&$orderNo<=count($row))
{
$file = fopen('Order.txt', 'w');
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{
if($row['ID']==($orderNo))
    {
    fwrite($file, $row['BuyerName'].PHP_EOL .$row['ShipAddress1'].PHP_EOL .$row['ShipAddress2'].PHP_EOL  .$row['ShipAddress3'].PHP_EOL  .$row['ShipCity'].PHP_EOL  .$row['ShipState'].PHP_EOL  .$row['ShipPostalCode'].PHP_EOL  .$row['ShipCountry'].PHP_EOL);
    }
}
fclose($file);
$file = 'Order.txt';
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
readfile($file);
}
else{echo "Please enter a valid Order Number";}
} 

それはおそらく簡単なものです。助けてくれてありがとう。

4

3 に答える 3

1

送信していない属性のチェック (ボタンに名前がありません)。名前を付けるか、非表示の入力フィールドを追加するか、さらに良いことに、number 属性を確認します。

if ( isset($_POST['number']) && is_numeric($_POST['number']) ) {
    download();
}
于 2013-11-03T23:28:21.520 に答える
0

htmlファイルに名前を追加するだけです..

<input type="submit" name="download" value="Download" />
于 2013-11-03T23:30:40.073 に答える
0

そのチェックを機能させるには、要素の名前または ID を「ダウンロード」する必要があります。ダウンロードの値を持つボタンのみがあり、名前やIDはありません。これを試して:

<form action="<?=$_SERVER['PHP_SELF'];?>" method="post"><br>
    Order Number: <input type="number" name="orderNo" size="10"/>
    <input type="submit" name="Download" value="Download" />
</form>
于 2013-11-03T23:32:55.197 に答える