Improve session restarting
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1227 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
parent
881fbf58dc
commit
be49e08bb4
|
@ -2,6 +2,7 @@
|
||||||
if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP changes add.x to add_x
|
if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP changes add.x to add_x
|
||||||
if (DB !== $_POST["name"]) {
|
if (DB !== $_POST["name"]) {
|
||||||
// create or rename database
|
// create or rename database
|
||||||
|
restart_session();
|
||||||
unset($_SESSION["databases"][$_GET["server"]]); // clear cache
|
unset($_SESSION["databases"][$_GET["server"]]); // clear cache
|
||||||
$dbs = explode("\n", str_replace("\r", "", $_POST["name"]));
|
$dbs = explode("\n", str_replace("\r", "", $_POST["name"]));
|
||||||
$failed = false;
|
$failed = false;
|
||||||
|
@ -15,6 +16,7 @@ if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP c
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (query_redirect(queries(), ME . "db=" . urlencode($last), lang('Database has been created.'), !strlen(DB), false, $failed)) {
|
if (query_redirect(queries(), ME . "db=" . urlencode($last), lang('Database has been created.'), !strlen(DB), false, $failed)) {
|
||||||
|
//! move triggers
|
||||||
$result = $connection->query("SHOW TABLES");
|
$result = $connection->query("SHOW TABLES");
|
||||||
while ($row = $result->fetch_row()) {
|
while ($row = $result->fetch_row()) {
|
||||||
if (!queries("RENAME TABLE " . idf_escape($row[0]) . " TO " . idf_escape($_POST["name"]) . "." . idf_escape($row[0]))) {
|
if (!queries("RENAME TABLE " . idf_escape($row[0]) . " TO " . idf_escape($_POST["name"]) . "." . idf_escape($row[0]))) {
|
||||||
|
|
|
@ -358,7 +358,7 @@ class Adminer {
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function messageQuery($query) {
|
function messageQuery($query) {
|
||||||
session_start();
|
restart_session();
|
||||||
$id = "sql-" . count($_SESSION["messages"]);
|
$id = "sql-" . count($_SESSION["messages"]);
|
||||||
$_SESSION["history"][$_GET["server"]][DB][] = $query;
|
$_SESSION["history"][$_GET["server"]][DB][] = $query;
|
||||||
return " <a href='#$id' onclick=\"return !toggle('$id');\">" . lang('SQL command') . "</a><div id='$id' class='hidden'><pre class='jush-sql'>" . shorten_utf8($query, 1000) . '</pre><a href="' . h(ME . 'sql=&history=' . (count($_SESSION["history"][$_GET["server"]][DB]) - 1)) . '">' . lang('Edit') . '</a></div>';
|
return " <a href='#$id' onclick=\"return !toggle('$id');\">" . lang('SQL command') . "</a><div id='$id' class='hidden'><pre class='jush-sql'>" . shorten_utf8($query, 1000) . '</pre><a href="' . h(ME . 'sql=&history=' . (count($_SESSION["history"][$_GET["server"]][DB]) - 1)) . '">' . lang('Edit') . '</a></div>';
|
||||||
|
|
|
@ -92,8 +92,8 @@ include "./include/editing.inc.php";
|
||||||
include "./include/export.inc.php";
|
include "./include/export.inc.php";
|
||||||
|
|
||||||
session_cache_limiter(""); // to allow restarting session
|
session_cache_limiter(""); // to allow restarting session
|
||||||
if (@ini_set("session.use_cookies", false) !== false) { // @ - may be disabled
|
if (!ini_get("session.use_cookies") || @ini_set("session.use_cookies", false) !== false) { // @ - may be disabled
|
||||||
session_write_close(); // improves concurrency, may be restarted later
|
session_write_close(); // improves concurrency if a user opens several pages at once, may be restarted later
|
||||||
}
|
}
|
||||||
|
|
||||||
$confirm = " onclick=\"return confirm('" . lang('Are you sure?') . "');\"";
|
$confirm = " onclick=\"return confirm('" . lang('Are you sure?') . "');\"";
|
||||||
|
|
|
@ -52,10 +52,6 @@ function page_header($title, $error = "", $breadcrumb = array(), $title2 = "") {
|
||||||
if (strlen(DB) && $databases && !in_array(DB, $databases, true)) {
|
if (strlen(DB) && $databases && !in_array(DB, $databases, true)) {
|
||||||
$databases = null;
|
$databases = null;
|
||||||
}
|
}
|
||||||
if ((isset($databases) && !isset($_GET["sql"])) || !ini_get("session.use_cookies")) {
|
|
||||||
// improves concurrency if a user opens several pages at once
|
|
||||||
session_write_close();
|
|
||||||
}
|
|
||||||
if ($error) {
|
if ($error) {
|
||||||
echo "<div class='error'>$error</div>\n";
|
echo "<div class='error'>$error</div>\n";
|
||||||
}
|
}
|
||||||
|
|
|
@ -351,7 +351,7 @@ function drop_create($drop, $create, $location, $message_drop, $message_alter, $
|
||||||
$dropped = strlen($name) && ($_POST["dropped"] || queries($drop));
|
$dropped = strlen($name) && ($_POST["dropped"] || queries($drop));
|
||||||
$created = queries($create);
|
$created = queries($create);
|
||||||
if (!queries_redirect($location, (strlen($name) ? $message_alter : $message_create), $created) && $dropped) {
|
if (!queries_redirect($location, (strlen($name) ? $message_alter : $message_create), $created) && $dropped) {
|
||||||
session_start();
|
restart_session();
|
||||||
$_SESSION["messages"][] = $message_drop;
|
$_SESSION["messages"][] = $message_drop;
|
||||||
}
|
}
|
||||||
return $dropped;
|
return $dropped;
|
||||||
|
|
|
@ -220,7 +220,7 @@ function restart_session() {
|
||||||
*/
|
*/
|
||||||
function redirect($location, $message = null) {
|
function redirect($location, $message = null) {
|
||||||
if (isset($message)) {
|
if (isset($message)) {
|
||||||
session_start();
|
restart_session();
|
||||||
$_SESSION["messages"][] = $message;
|
$_SESSION["messages"][] = $message;
|
||||||
}
|
}
|
||||||
header("Location: " . (strlen($location) ? $location : "."));
|
header("Location: " . (strlen($location) ? $location : "."));
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
restart_session();
|
||||||
$history = &$_SESSION["history"][$_GET["server"]][DB];
|
$history = &$_SESSION["history"][$_GET["server"]][DB];
|
||||||
if (!$error && $_POST["clear"]) {
|
if (!$error && $_POST["clear"]) {
|
||||||
$history = array();
|
$history = array();
|
||||||
|
@ -27,7 +28,7 @@ if (!$error && $_POST) {
|
||||||
$space = "(\\s|/\\*.*\\*/|(#|-- )[^\n]*\n|--\n)";
|
$space = "(\\s|/\\*.*\\*/|(#|-- )[^\n]*\n|--\n)";
|
||||||
$alter_database = "(CREATE|DROP)$space+(DATABASE|SCHEMA)\\b~isU";
|
$alter_database = "(CREATE|DROP)$space+(DATABASE|SCHEMA)\\b~isU";
|
||||||
$databases = &$_SESSION["databases"][$_GET["server"]];
|
$databases = &$_SESSION["databases"][$_GET["server"]];
|
||||||
if ((isset($databases) && !preg_match("~\\b$alter_database", $query)) || !ini_get("session.use_cookies")) { // quick check - may be inside string
|
if (!ini_get("session.use_cookies") || (isset($databases) && !preg_match("~\\b$alter_database", $query))) { // quick check - may be inside string
|
||||||
//! false positive with $fp and disabled ini_set() and enabled session.use_cookies
|
//! false positive with $fp and disabled ini_set() and enabled session.use_cookies
|
||||||
session_write_close();
|
session_write_close();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue