form method
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
164e339870
commit
171f68747e
|
@ -25,8 +25,8 @@ $buttons = [
|
||||||
'serializedtojson' => 'PHP Serialized to JSON',
|
'serializedtojson' => 'PHP Serialized to JSON',
|
||||||
];
|
];
|
||||||
|
|
||||||
$str = $result = $_GET['str'] ?? '';
|
$str = $result = $_POST['str'] ?? $_GET['str'] ?? '';
|
||||||
$action = $_GET['action'] ?? '';
|
$action = $_POST['action'] ?? $_GET['action'] ?? '';
|
||||||
$plain = str_contains($_SERVER['HTTP_ACCEPT'] ?? '', 'text/plain');
|
$plain = str_contains($_SERVER['HTTP_ACCEPT'] ?? '', 'text/plain');
|
||||||
$help = 'https://www.php.net/manual/';
|
$help = 'https://www.php.net/manual/';
|
||||||
$jsonEncodeOptions = JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION | JSON_UNESCAPED_SLASHES;
|
$jsonEncodeOptions = JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION | JSON_UNESCAPED_SLASHES;
|
||||||
|
@ -121,7 +121,7 @@ if ($action == 'reset') {
|
||||||
|
|
||||||
} elseif ($action == 'serializedtojson') {
|
} elseif ($action == 'serializedtojson') {
|
||||||
$stdClass = preg_replace('~O:[0-9]+:"[^"]+"~', 'O:8:"stdClass"', $str);
|
$stdClass = preg_replace('~O:[0-9]+:"[^"]+"~', 'O:8:"stdClass"', $str);
|
||||||
$unserialized = @unserialize($stdClass);
|
$unserialized = unserialize($stdClass);
|
||||||
if ($unserialized === false) {
|
if ($unserialized === false) {
|
||||||
$result = 'Input text couldn\'t be unserialized: '."\n\n".(error_get_last()['message'] ?? 'Unknown error.');
|
$result = 'Input text couldn\'t be unserialized: '."\n\n".(error_get_last()['message'] ?? 'Unknown error.');
|
||||||
} else {
|
} else {
|
||||||
|
@ -156,7 +156,7 @@ if ($plain) {
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="container-fluid">
|
<body class="container-fluid">
|
||||||
<form method="get">
|
<form method="get" id="form" action="/">
|
||||||
<main class="layout">
|
<main class="layout">
|
||||||
<div>
|
<div>
|
||||||
<?php foreach ($buttons as $act => $label) { ?>
|
<?php foreach ($buttons as $act => $label) { ?>
|
||||||
|
@ -169,9 +169,11 @@ if ($plain) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<textarea name="str" class="form-input" placeholder="Paste a string here"><?=htmlentities($result, ENT_QUOTES | ENT_HTML5 | ENT_IGNORE)?></textarea>
|
<textarea name="str" id="str" class="form-input" placeholder="Paste a string here"><?=htmlentities((string)$result, ENT_QUOTES | ENT_HTML5 | ENT_IGNORE)?></textarea>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<script src="/js/form.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const form = document.getElementById('form');
|
||||||
|
const textarea = document.getElementById('str');
|
||||||
|
|
||||||
|
// Change the form method between GET and POST based on the textarea length
|
||||||
|
const updateFormMethod = () => {
|
||||||
|
const maxLength = 1024;
|
||||||
|
const textLength = textarea.value.length;
|
||||||
|
console.log(textLength);
|
||||||
|
|
||||||
|
if (textLength > maxLength) {
|
||||||
|
form.method = 'post';
|
||||||
|
} else {
|
||||||
|
form.method = 'get';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', updateFormMethod);
|
||||||
|
textarea.addEventListener('input', updateFormMethod);
|
||||||
|
})();
|
Loading…
Reference in New Issue