-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadmin.php
More file actions
123 lines (121 loc) · 5.38 KB
/
admin.php
File metadata and controls
123 lines (121 loc) · 5.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
include("incl/multipage.php");
$title = "Admin-sida";
if ($_GET['dbaction'] ?? false and $_GET['dbaction'] == 'create') {
$_SESSION['dbaction'] = 'create';
// Redirect to a dbrow-action.php page.
header("Location: dbrow-action.php?action={$_GET['dbaction']}&table={$_GET['table']}&maxhits={$_GET['maxhits']}&startPage={$_GET['startPage']}");
exit();
}
include("incl/header.php");
?>
<main>
<article class="all-browsers">
<header>
<h2>ADMIN</h2>
</header>
<?php
if (isset($_GET['database'])) {
$_SESSION['database'] = $_GET['database'];
}
if (isset($_GET['table'])) {
$_SESSION['table'] = $_GET['table'];
}
if (!isset($_SESSION['logedin']) or !isset($_SESSION['database'])) {
if (!isset($_SESSION['logedin'])) {
echo <<<LGI
<p>
Du behöver logga in först!
Klicka <a href="login.php">här</a> för att komma till inloggningssidan.
</p>
</article>
</main>
LGI;
} elseif (!isset($_SESSION['database'])) {
echo <<<DB
<section class="kmom">
<h3>Tillgängliga databaser</h3>
<p>Välj en databas:</p>
<form>
DB;
$msg = 'Tillgängliga databaser:';
echo construcSelectElement(array_keys($databases), 'database', $msg);
echo<<<END
<input name="submit" type="submit" value="välj DB">
</form></article></main>'
END;
}
include("incl/byline.php");
include("incl/footer.php");
exit();
}
$maxhits = isset($_GET['maxhits']) ? $_GET['maxhits'] :
(isset($_SESSION['maxhits']) ? $_SESSION['maxhits'] : 100);
$_SESSION['maxhits'] = $maxhits;
$startPage = isset($_GET['startPage']) ? $_GET['startPage'] :
(isset($_SESSION['startPage']) ? $_SESSION['startPage'] : 0);
$_SESSION['startPage'] = $startPage;
$dbaction = isset($_GET['dbaction']) ? $_GET['dbaction'] :
(isset($_SESSION['dbaction']) ? $_SESSION['dbaction'] : null);
$_SESSION['dbaction'] = $dbaction;
$dsn = $databases[$_SESSION['database']];
// No search/SELECT filter
$search = '%';
?>
<section class="kmom">
<h3>Site administration</h3>
<hr>
<form>
<h4>Val av tabellen och funktionerna</h4>
<p class="lined-box">
<?php
$tableAndColumnNames = fetchTableAndColumnNames($dsn);
$tableNames = array_keys($tableAndColumnNames);
$msg = '<strong>Välj en tabell</strong>';
echo construcSelectElement($tableNames, 'table', $msg);
?>
</p>
<p class="lined-box">
<strong>Välj vad du vill göra med tabellen</strong>
<br>
<input type="radio" id="create" name="dbaction" value="create" required
<?= $dbaction == 'create' ? 'checked' : null ?>>
<label for="create">Lägg till en ny rad</label>
<input type="radio" id="update" name="dbaction" value="update"
<?= $dbaction == 'update' ? 'checked' : null ?>>
<label for="update">Uppdatera uppgifterna</label>
<input type="radio" id="delete" name="dbaction" value="delete"
<?= $dbaction == 'delete' ? 'checked' : null ?>>
<label for="delete">Ta bort raden</label>
</p>
<h4>Alternativ: Återställ databasen från backup</h4>
<p class="lined-box">
Klicka på <a href="post-redirect.php?send=admin&action=init">återställ databasen</a> för att genomföra återställningen.
<br>
<span class="error">Varning!</span> Detta kommer resultera i att samtliga ändringar sedan senaste backupen kommer att försvinna!
</p>
<input name="submit" type="submit" value="Bekräfta">
<?php
// Execute the SQL statement
$db = connectToDatabase($dsn);
$tableNames[] = null;
$filter = null;
if (!empty($_SESSION['table'])) {
echo<<<TBL
<hr>
<h4>Steg 2 — Tabell: {$_SESSION['table']} - Radhantering</h4>
<p>Klicka på radens ID i den första kolumnen för att hantera den raden!</p>
TBL;
$link = "dbrow-action.php?action={$_SESSION['dbaction']}&table={$_SESSION['table']}&maxhits={$_SESSION['maxhits']}&startPage={$_SESSION['startPage']}";
$keyColumn = 0;
echo fetchTableFromDB($db, $_SESSION['table'], $startPage, $maxhits, $filter, $link, $keyColumn);
} else {
echo "<p class='error'>Du behöver välja en tabell från listan ovan!";
}
?>
</section>
</article>
</main>
<?php
include("incl/footer.php");
?>