Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

webbsrvprg/exercises/slutprojekt/

actions.php
administer_users.php
create_code.php
database_include.php
dbconnection.php
index.php
login copy.php
login.php
main.php
password_renewals.php
play copy.php
play.php
setup.php
sign_up.php
statistics.php
verification.php
verify_mail.php

administer_users.php

107 lines UTF-8 Windows (CRLF)
<?php
ini_set
('display_errors'1);
ini_set('display_startup_errors'1);
error_reporting(E_ALL);
session_start(["gc_maxlifetime" => 86400]);
?>

<!DOCTYPE html>
<html lang="sv">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Administera användare</title>
    <style>
        fieldset {
            margin: 5px;
            padding: 5px;
            border: 2px solid black;
        }
        
        * {
            box-sizing: border-box;
        }
    </style>
</head>

<body>
    <a href="main.php">Tillbaka till main</a>
    <?php
    
try {
        
/** @var PDO $dbconn */
        
include("dbconnection.php");
        
$adminrequired TRUE;
        include(
"verification.php");

        if (isset(
$_GET["id"])) {
            
// Om man vill ändra en användare
            
$user_id $_GET["id"];
            
$sql "SELECT * FROM bs_users WHERE id = ?";
            
$stmt $dbconn->prepare($sql);
            
$data = [$user_id];
            
$stmt->execute($data);
            
$user $stmt->fetch(PDO::FETCH_ASSOC);

            
$checked_text_1 $user["admin"] ? "checked" "";
            
$checked_text_2 $user["verified"] ? "checked" "";

            echo (
'<form method="post" action="administer_users.php"><fieldset>
            <legend>' 
$user_id '</legend>
            <input type="hidden" value="' 
$user_id '" name="user_id">
            <input type="text" value="' 
$user["username"] . '" id="username" name="username" required><label for="username">Användarnamn (Har inte hunnnit verifiera att det är ledigt så håll koll)</label><br>
            <input type="text" value="' 
$user["name"] . '" id="name" name="name" required><label for="name">Namn</label><br>
            <input type="mail" value="' 
$user["mail"] . '" id="mail" name="mail" required><label for="mail">Mejl</label><br>
            <input type="checkbox" ' 
$checked_text_1 ' id="admin" name="admin"><label for="admin">Admin?</label><br>
            <input type="checkbox" ' 
$checked_text_2 '  kanske id="verified" name="verified"><label for="verified">Verifierad? (Klicka bort för att banna)</label><br>
            <button type="submit">Genomför ändringar (Användaren kan loggas ut om den är inloggad just nu)</button>
            </fieldset></form>'
);
        }
        if (isset(
$_POST["user_id"])) {
            
// Om man ska ändra en användare.
            
$user_id $_POST["user_id"];
            
$username $_POST["username"];
            
$name $_POST["name"];
            
$mail $_POST["mail"];
            
$admin = isset($_POST["admin"]) ? 0;
            
$verified = isset($_POST["verified"]) ? 0;

            
$sql "UPDATE bs_users SET username = ?, name = ?, mail = ?, admin = ?, verified = ? WHERE id = ?";
            
$stmt $dbconn->prepare($sql);
            
$data = [$username$name$mail$admin$verified$user_id];
            
$stmt->execute($data);
        }

        
$sql "SELECT * FROM bs_users ORDER BY id";
        
$stmt $dbconn->prepare($sql);
        
$stmt->execute();

        echo (
"<table><tr>
            <th>ID</th>
            <th>USERNAME</th>
            <th>NAME</th>
            <th>LAST CHECKIN</th>
            <th>MAIL</th>
            <th>ADMIN</th>
            <th>VERIFIED</th>
            </tr>"
);
        while (
$user $stmt->fetch(PDO::FETCH_ASSOC)) {
            
// Printar ut alla users med en länk på id't så att man kan modifiera dem.
            
echo ("<tr>");
            echo (
'<td><a href="administer_users.php?id=' $user["id"] . '">' $user["id"] . '</a></td>');
            echo (
'<td>' $user["username"] . '</td>');
            echo (
'<td>' $user["name"] . '</td>');
            echo (
'<td>' $user["last_checkin"] . '</td>');
            echo (
'<td>' $user["mail"] . '</td>');
            echo (
'<td>' $user["admin"] . '</td>');
            echo (
'<td>' $user["verified"] . '</td>');
            echo (
"</tr>");
        }
        echo (
"</table>");
    } catch (
PDOException $e) {
        echo (
$e->getMessage());
    }
    
?>
</body>

</html>