mirror of
https://github.com/vrana/adminer.git
synced 2025-08-17 03:53:59 +02:00
Editor: User friendly data editor
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@787 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
2
editor/db.inc.php
Normal file
2
editor/db.inc.php
Normal file
@@ -0,0 +1,2 @@
|
||||
<?php
|
||||
page_header(lang('Database') . ": " . htmlspecialchars($_GET["db"]), $error, false);
|
55
editor/include/adminer.inc.php
Normal file
55
editor/include/adminer.inc.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
class AdminerBase {
|
||||
|
||||
function name() {
|
||||
return lang('Editor');
|
||||
}
|
||||
|
||||
function server() {
|
||||
return "";
|
||||
}
|
||||
|
||||
function username() {
|
||||
return "";
|
||||
}
|
||||
|
||||
function password() {
|
||||
return "";
|
||||
}
|
||||
|
||||
function table_name($row) {
|
||||
return htmlspecialchars(strlen($row["Comment"]) ? $row["Comment"] : $row["Name"]);
|
||||
}
|
||||
|
||||
function field_name($fields, $key) {
|
||||
return htmlspecialchars(strlen($fields[$key]["comment"]) ? $fields[$key]["comment"] : $key);
|
||||
}
|
||||
|
||||
function navigation($missing) {
|
||||
global $SELF;
|
||||
if ($missing != "auth") {
|
||||
?>
|
||||
<form action="" method="post">
|
||||
<p>
|
||||
<input type="hidden" name="token" value="<?php echo $_SESSION["tokens"][$_GET["server"]]; ?>" />
|
||||
<input type="submit" name="logout" value="<?php echo lang('Logout'); ?>" />
|
||||
</p>
|
||||
</form>
|
||||
<?php
|
||||
if ($missing != "db" && strlen($_GET["db"])) {
|
||||
$table_status = table_status();
|
||||
if (!$table_status) {
|
||||
echo "<p class='message'>" . lang('No tables.') . "</p>\n";
|
||||
} else {
|
||||
echo "<p>\n";
|
||||
foreach ($table_status as $row) {
|
||||
echo '<a href="' . htmlspecialchars($SELF) . 'select=' . urlencode($row["Name"]) . '">' . $this->table_name($row) . "</a><br />\n";
|
||||
}
|
||||
echo "</p>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$adminer = (class_exists("Adminer") ? new Adminer : new AdminerBase);
|
2
editor/include/auth.inc.php
Normal file
2
editor/include/auth.inc.php
Normal file
@@ -0,0 +1,2 @@
|
||||
<?php
|
||||
$dbh = connect(); //! process errors
|
3
editor/include/connect.inc.php
Normal file
3
editor/include/connect.inc.php
Normal file
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$_GET["db"] = "test";
|
||||
$dbh->select_db($_GET["db"]);
|
55
editor/index.php
Normal file
55
editor/index.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/** Adminer Editor - Compact MySQL editor
|
||||
* @link http://www.adminer.org/
|
||||
* @author Jakub Vrana, http://php.vrana.cz/
|
||||
* @copyright 2009 Jakub Vrana
|
||||
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
||||
*/
|
||||
|
||||
include "../adminer/include/bootstrap.inc.php";
|
||||
include "../adminer/include/version.inc.php";
|
||||
include "../adminer/include/functions.inc.php";
|
||||
include "../adminer/include/lang.inc.php";
|
||||
include "../adminer/lang/$LANG.inc.php"; //! subset and superset
|
||||
include "./include/adminer.inc.php";
|
||||
include "../adminer/include/design.inc.php";
|
||||
if (isset($_GET["coverage"])) {
|
||||
include "../adminer/coverage.inc.php";
|
||||
}
|
||||
include "../adminer/include/pdo.inc.php";
|
||||
include "../adminer/include/mysql.inc.php";
|
||||
include "./include/auth.inc.php";
|
||||
include "./include/connect.inc.php";
|
||||
include "../adminer/include/editing.inc.php";
|
||||
include "../adminer/include/export.inc.php";
|
||||
|
||||
$confirm = " onclick=\"return confirm('" . lang('Are you sure?') . "');\"";
|
||||
$error = "";
|
||||
|
||||
if (isset($_GET["download"])) {
|
||||
include "../adminer/download.inc.php";
|
||||
} else { // uses CSRF token
|
||||
$token = $_SESSION["tokens"][$_GET["server"]];
|
||||
if ($_POST) {
|
||||
if ($_POST["token"] != $token) {
|
||||
$error = lang('Invalid CSRF token. Send the form again.');
|
||||
}
|
||||
} elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
// posted form with no data means exceeded post_max_size because Adminer always sends token at least
|
||||
$error = lang('Too big POST data. Reduce the data or increase the "post_max_size" configuration directive.');
|
||||
}
|
||||
if (isset($_GET["select"]) && $_POST && (!$_POST["delete"] && !$_POST["export"] && !$_POST["import"] && !$_POST["save"])) {
|
||||
// POST form on select page is used to edit or clone data
|
||||
$_GET["edit"] = $_GET["select"];
|
||||
}
|
||||
if (isset($_GET["edit"])) {
|
||||
include "../adminer/edit.inc.php";
|
||||
} elseif (isset($_GET["select"])) {
|
||||
include "../adminer/select.inc.php";
|
||||
} else {
|
||||
include "./db.inc.php";
|
||||
}
|
||||
}
|
||||
|
||||
// each page calls its own page_header(), if the footer should not be called then the page exits
|
||||
page_footer();
|
Reference in New Issue
Block a user