diff options
Diffstat (limited to 'public')
-rw-r--r-- | public/cart.php | 2 | ||||
-rw-r--r-- | public/global.css | 11 | ||||
-rw-r--r-- | public/img/product/1-thumb.jpg | bin | 0 -> 20762 bytes | |||
-rw-r--r-- | public/img/product/2-thumb.jpg | bin | 0 -> 16579 bytes | |||
-rw-r--r-- | public/img/product/3-thumb.jpg | bin | 0 -> 22837 bytes | |||
-rw-r--r-- | public/img/product/4-thumb.jpg | bin | 0 -> 23308 bytes | |||
-rw-r--r-- | public/index.php | 10 | ||||
-rw-r--r-- | public/login.css | 25 | ||||
-rw-r--r-- | public/login.php | 39 | ||||
-rw-r--r-- | public/product.css | 9 | ||||
-rw-r--r-- | public/product.php | 33 | ||||
-rw-r--r-- | public/products.css | 10 | ||||
-rw-r--r-- | public/products.php | 5 | ||||
-rw-r--r-- | public/register.php | 38 |
14 files changed, 163 insertions, 19 deletions
diff --git a/public/cart.php b/public/cart.php index 1ad48cd..e1c7907 100644 --- a/public/cart.php +++ b/public/cart.php @@ -1,4 +1,6 @@ <!DOCTYPE html> +<?php require "../lib/login.php" ?> +<?php if_logged_in(false, "/login.php", true) ?> <html> <head> <?php include 'head.php' ?> diff --git a/public/global.css b/public/global.css index 82dc446..c813911 100644 --- a/public/global.css +++ b/public/global.css @@ -20,3 +20,14 @@ body, html { text-decoration: none !important; color: currentColor; } + +.main { + margin-top: 2rem; +} + +.price::before { + content: "\20ac"; + margin-right: 0.3ex; + font-size: 80%; +} + diff --git a/public/img/product/1-thumb.jpg b/public/img/product/1-thumb.jpg Binary files differnew file mode 100644 index 0000000..ef1de8b --- /dev/null +++ b/public/img/product/1-thumb.jpg diff --git a/public/img/product/2-thumb.jpg b/public/img/product/2-thumb.jpg Binary files differnew file mode 100644 index 0000000..dc8de24 --- /dev/null +++ b/public/img/product/2-thumb.jpg diff --git a/public/img/product/3-thumb.jpg b/public/img/product/3-thumb.jpg Binary files differnew file mode 100644 index 0000000..e6a0b47 --- /dev/null +++ b/public/img/product/3-thumb.jpg diff --git a/public/img/product/4-thumb.jpg b/public/img/product/4-thumb.jpg Binary files differnew file mode 100644 index 0000000..2295dc2 --- /dev/null +++ b/public/img/product/4-thumb.jpg diff --git a/public/index.php b/public/index.php index 0f268cb..653962c 100644 --- a/public/index.php +++ b/public/index.php @@ -1,4 +1,5 @@ <!DOCTYPE html> +<?php require "db.php"; ?> <html> <head> <?php include 'head.php' ?> @@ -11,9 +12,12 @@ <div class="s1"> <h1>hier zijn de aanbiedingen</h1> <ul> - <li>Lorem ipsum dolor sit amet consectetur adipisicing elit. Fuga iure id repudiandae sapiente voluptatibus soluta ducimus? Molestiae pariatur optio saepe nihil fugit, commodi atque! Consequatur at omnis recusandae nostrum tenetur!</li> - <li>Ut, repudiandae? Iusto pariatur cupiditate, ipsam magni accusamus asperiores possimus nulla, magnam quas consectetur fugit vero quibusdam officiis quod, vitae soluta nostrum placeat itaque sit beatae quos laudantium? Temporibus, magni.</li> - <li>Ipsum fugiat corporis impedit iusto possimus neque alias at sunt commodi deserunt! Numquam perferendis rem ea provident velit dicta quae. Eveniet officia iure porro aliquid minus alias at commodi nam?</li> + <?php + $res = $cursor->query("select product.ID as id, product.name as name from promotion join product on product.ID = promotion.product"); + while ($product = $res->fetch_object()) { + echo "<li><a href=\"/product.php?id=$product->id\">$product->name</a></li>"; + } + ?> </ul> </div> </div> diff --git a/public/login.css b/public/login.css new file mode 100644 index 0000000..c4826e2 --- /dev/null +++ b/public/login.css @@ -0,0 +1,25 @@ +.modal { + max-width: 300px; + margin: 0 auto; +} + +.modal form { + display: grid; + margin-block-end: 0; +} + +.modal input { + margin-bottom: 16px; + padding: 6px 8px; + border-radius: 8px; + border: 2px solid canvastext; + background-color: transparent; +} + +.modal input[type="submit"] { + background-color: canvastext; + color: canvas; + font-size: 1rem; + font-weight: bold; + cursor: pointer; +} diff --git a/public/login.php b/public/login.php new file mode 100644 index 0000000..22ac164 --- /dev/null +++ b/public/login.php @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<?php include "../lib/login.php" ?> +<?php // if_logged_in(true, "/") ?> +<?php +do { + if ($_SERVER['REQUEST_METHOD'] !== 'POST') break; + if (!$_POST['username']) break; + if (!$_POST['password']) break; + + //TODO: check if user exists in database + + // if all guards passed, successful login occurred + cookie_redir($_POST['username'], $_POST['password']); +} while (false); +?> +<html> +<head> + <?php include 'head.php' ?> + <title>login</title> + <link rel='stylesheet' type='text/css' media='screen' href='login.css'> +</head> +<body> + <?php include 'navbar.php' ?> + <div class="main limwidth"> + <h1>Inloggen</h1> + <div class="modal"> + <form action="/login.php" method="post"> + <label for="username">Gebruikersnaam</label> + <input id="username" name="username" type="text" placeholder="gebruikersnaam"> + <label for="password">Wachtwoord</label> + <input id="password" name="password" type="password" placeholder="wachtwoord"> + <input type="submit" value="Inloggen"> + </form> + <span class="register">Of <a href="/register.php">een nieuw account maken</a></span> + </div> + </div> + <?php include 'footer.php' ?> +</body> +</html> diff --git a/public/product.css b/public/product.css new file mode 100644 index 0000000..5b718c9 --- /dev/null +++ b/public/product.css @@ -0,0 +1,9 @@ +.twocolumn { + display: grid; + grid-template-columns: 200px 1fr; + gap: 16px; +} + +.twocolumn .left { + text-align: center; +} diff --git a/public/product.php b/public/product.php index 8733562..3e6a89f 100644 --- a/public/product.php +++ b/public/product.php @@ -1,17 +1,40 @@ <!DOCTYPE html> +<?php require "db.php"; ?> +<?php +function refuse() { + http_response_code(404); + die(); +} + +$statement = $cursor->prepare("select ID as id, image, price, name, description from webs.product where ID = ?"); +$statement->bind_param("i", $_GET['id']); +if (!$statement->execute()) refuse(); +$res = $statement->get_result(); +if (!mysqli_num_rows($res)) refuse(); +$product = $res->fetch_object(); +?> <html> <head> <?php include 'head.php' ?> <title>dit is product</title> + <link rel='stylesheet' type='text/css' media='screen' href='product.css'> </head> <body> <?php include 'navbar.php' ?> <div class="main limwidth"> - <h2>yeah product</h2> - <img src="img/placeholder.png" alt=""> - <span class="price">3,45</span> - <span class="name">courgette</span> - <span class="info">Lorem ipsum dolor sit amet consectetur adipisicing elit. Nulla dignissimos laboriosam voluptatem facilis tempore quos, asperiores eos molestiae voluptates commodi animi enim quae deleniti? Ratione optio eligendi rem eveniet reiciendis.</span> + <div class="twocolumn"> + <div class="column left"> + <img src="<?php echo "/img/product/".$product->id."-thumb.jpg" ?>" alt=""> + </div> + <div class="column right"> + <h2><?php echo $product->name ?></h2> + <span class="price"><?php echo $product->price ?></span> + <span class="info"><?php echo $product->description ?></span> + <form action="/cart.php" method="post"> + <input type="submit" value="Toevoegen aan winkelwagen"> + </form> + </div> + </div> </div> <?php include 'footer.php' ?> </body> diff --git a/public/products.css b/public/products.css index 7a4f3ab..4d7342f 100644 --- a/public/products.css +++ b/public/products.css @@ -21,12 +21,4 @@ } .product span { display: block; } - -.product .price::before { - content: "\20ac"; - margin-right: 0.3ex; - font-size: 80%; -} -.product .price { - font-size: 1.5rem; -} +.product .price { font-size: 1.5rem; } diff --git a/public/products.php b/public/products.php index e9c7cdf..bffaeb0 100644 --- a/public/products.php +++ b/public/products.php @@ -2,9 +2,10 @@ <?php require "db.php"; ?> <?php function product_template($product) { + $image_path = $product->img ? "/img/product/$product->id-thumb.jpg" : "/img/placeholder.png"; echo <<<"EOF" <a href="/product.php?id=$product->id" class="product nolinkstyle"> - <img src="$product->img" alt=""> + <img src="$image_path" alt=""> <span class="price">$product->price</span> <span class="name">$product->name</span> </a> @@ -23,7 +24,7 @@ EOF; <h2>lijst met producten:</h2> <div class="products"> <?php - $res = $cursor->query("select ID as id, image_path as img, price, name from webs.product"); + $res = $cursor->query("select ID as id, image as img, price, name from webs.product"); while ($product = $res->fetch_object()) product_template($product); ?> </div> diff --git a/public/register.php b/public/register.php new file mode 100644 index 0000000..9f04b1c --- /dev/null +++ b/public/register.php @@ -0,0 +1,38 @@ +<?php include "../lib/login.php" ?> +<?php // if_logged_in(true, "/") ?> +<?php +do { + if ($_SERVER['REQUEST_METHOD'] !== 'POST') break; + if (!$_POST['username']) break; + if (!$_POST['password']) break; + + //TODO: create new user in database + + // if all guards passed, successful login occurred + cookie_redir($_POST['username'], $_POST['password'], "/"); +} while (false); +?> +<html> +<head> + <?php include 'head.php' ?> + <title>registeren</title> + <link rel='stylesheet' type='text/css' media='screen' href='login.css'> +</head> +<body> + <?php include 'navbar.php' ?> + <div class="main limwidth"> + <h1>Registreren</h1> + <div class="modal"> + <form action="/register.php" method="post"> + <label for="username">Gebruikersnaam</label> + <input id="username" name="username" type="text" placeholder="gebruikersnaam"> + <label for="password">Wachtwoord</label> + <input id="password" name="password" type="password" placeholder="wachtwoord"> + <input type="submit" value="Registreren"> + </form> + <span class="register">Of <a href="/login.php">inloggen</a></span> + </div> + </div> + <?php include 'footer.php' ?> +</body> +</html> |