Hallo,
Ik moet voor edX een opdracht maken in PHP genaamd cs50 finance.
Ik heb bijna alles gemaakt maar nu zit ik volledig vast, ik weet wat het probleem is maar ik heb geen flauw idee hoe je het moet oplossen...
De code hieronder is bedoeld op zogezegd aandelen aan te kopen.
Maar deze kunnen enkel aangekocht worden als er genoeg geld is en daar zit het probleem, ik kan ze altijd aan kopen ook al zit ik zonder geld...
Ik heb in het vet aangeduid waar het probleem zit. Zou iemand mij hiermee kunnen helpen?
Alvast bedankt!
buy.php :
buy_form.php:
Ik moet voor edX een opdracht maken in PHP genaamd cs50 finance.
Ik heb bijna alles gemaakt maar nu zit ik volledig vast, ik weet wat het probleem is maar ik heb geen flauw idee hoe je het moet oplossen...
De code hieronder is bedoeld op zogezegd aandelen aan te kopen.
Maar deze kunnen enkel aangekocht worden als er genoeg geld is en daar zit het probleem, ik kan ze altijd aan kopen ook al zit ik zonder geld...
Ik heb in het vet aangeduid waar het probleem zit. Zou iemand mij hiermee kunnen helpen?
Alvast bedankt!
buy.php :
PHP:
<?php
// configuration
require("../includes/config.php");
// if form was submitted
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if ((empty($_POST["symbol"])) || (empty($_POST["shares"])))
{
apologize("You must enter a symbol and an amount of shares");
}
if (lookup($_POST["symbol"]) === false)
{
apologize("You must enter a valid symbol");
}
if (preg_match("/^\d+$/", $_POST["shares"]) == false)
{
apologize("You must enter a positive integer");
}
$shares = $_POST["shares"];
$transaction = 'BUY';
$stock = lookup($_POST["symbol"]);
$cash = query("SELECT cash FROM users WHERE id = ?", $_SESSION['id']);
$total = $stock["price"] * $_POST["shares"];
$today = date("m-d-Y H:i:s");
[I][B]if ($cash < $total)[/B][/I]
{
apologize("You can't afford that.");
}
else
{
$_POST["symbol"] = strtoupper($_POST["symbol"]);
query("UPDATE users SET cash = cash - ? WHERE id = ?", $total, $_SESSION["id"]);
query("INSERT INTO portfolio (id, symbol, shares) VALUES(?,?, ?) ON DUPLICATE KEY UPDATE shares = shares + VALUES(shares)", $_SESSION["id"],$stock["symbol"],$_POST["shares"]);
query("INSERT INTO history (id, transaction, date, symbol, shares, price) VALUES(?,?,?,?,?,?)", $_SESSION["id"], $transaction, $today, $_POST["symbol"], $_POST["shares"],$stock["price"]);
redirect("./");
}
}
else
{
// else render form
render("buy_form.php", ["title" => "Buy Form"]);
}
?>
buy_form.php:
PHP:
<form action="buy.php" method="post">
<fieldset>
<div class="control-group">
<input autofocus name="symbol" placeholder="Symbol" type="text"/>
</div>
<div class="control-group">
<input name="shares" placeholder="Shares" type="text"/>
</div>
<div class="control-group">
<button type="submit" class="btn">Buy</button>
</div>
</fieldset>
</form>
Laatst bewerkt: