私は Sell.php と Sell_form.php ファイルを持っています。それらは販売に問題なく機能していますが、ユーザーが銘柄記号に空の値を選択した場合にエラー メッセージを表示したいと考えています。実装しました
'if(["blank"]){
apologize("You must select a stock symbol");
}'
この if ステートメントでエラー メッセージが表示されますが、選択した株式を売却することもできません。どこが間違っているのかわかりません。私もこのif文を使ってみました
'if([empty($_POST["symbol"])){
apologize("You must select a stock symbol");
}'
これにより、エラーなしでホームページにリダイレクトされます。どんな助けでも大歓迎です。これが私の2つのファイルのコードです。Sell.php
//configuration
require("../includes/config.php");
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if(empty($_POST["symbol"])){
apologize("You must select a stock symbol");
}
// lookup stock
$stock = lookup($_POST["symbol"]);
// lookup user's shares of stock being sold
$shares = query("SELECT shares FROM shares WHERE id = ? AND symbol = ?", $_SESSION["id"], $_POST["symbol"]);
// calculate total sale value (stock's price * shares)
$value = $stock["price"] * $shares[0]["shares"];
$date = date("Y-m-d, H:i:s");
// add the sale value to cash
query("UPDATE users SET cash = cash + ? WHERE id = ?", $value, $_SESSION["id"]);
// delete the stock from their portfolio
query("DELETE FROM shares WHERE id = ? AND symbol = ?", $_SESSION["id"], $_POST["symbol"]);
query("INSERT INTO history (id, symbol, soldOrBought, numberOfSharesBoughtOrSold, price, dateAndTime)
VALUES (?, ?, 'Sold', ?, ?, ?)", $_SESSION["id"], strtoupper($_POST["symbol"]), $shares[0]["shares"], $stock["price"], $date );
redirect("/");
}
else
{
$rows = query("SELECT * FROM shares WHERE id = ?", $_SESSION["id"]);
//create array to store the shares
$shares = [];
//for each of the user info
foreach($rows as $row){
//lookup stock info
$stock = lookup($row["symbol"]);
if($stock !== false){
$shares[] = [
"name" => $stock["name"],
"price" => $stock["price"],
"shares" => $row["shares"],
"symbol" => $row["symbol"],
"total" => $row["shares"]*$stock["price"]
];
}
}
// render portfolio
render("sell_form.php", ["shares" => $shares, "title" => "Sell"] );
}
?>
Sell_form.php
<ul class="nav nav-pills" >
<li >
<a href="index.php">Portfolio</a>
</li>
<li>
<a href="quote.php">Quote</a>
</li>
<li>
<a href="buy.php">Buy</a>
</li>
<li>
<a href="sell.php">Sell</a>
</li>
<li>
<a href="history.php">History</a>
</li>
<li>
<a href="deposit.php">Deposit Funds</a>
</li>
</ul>
<form action="sell.php" method="post">
<fieldset>
<div class="control-group">
<select name="symbol">
<option value="blank"></option>
<?php foreach ($shares as $symbol):?>
<option value="<?= $symbol["symbol"]?>"><?= $symbol["symbol"]?></option>
<? endforeach ?>
</select>
</div>
<div class="control-group">
<button type="submit" class="btn">Sell all shares</button>
</div>
</fieldset>
</form>
<div>
or <a href="logout.php">log out</a>
</div>