add_db.php 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <!-- Begin toolbar -->
  2. <div class="toolbar">
  3. <div class="toolbar-inner">
  4. <div class="toolbar-buttons">
  5. <a class="button button-secondary button-back js-button-back" href="/list/db/">
  6. <i class="fas fa-arrow-left icon-blue"></i><?= _("Back") ?>
  7. </a>
  8. </div>
  9. <div class="toolbar-buttons">
  10. <button type="submit" class="button" form="main-form">
  11. <i class="fas fa-floppy-disk icon-purple"></i><?= _("Save") ?>
  12. </button>
  13. </div>
  14. </div>
  15. </div>
  16. <!-- End toolbar -->
  17. <div class="container animate__animated animate__fadeIn">
  18. <form
  19. x-data="{
  20. showAdvanced: <?= empty($v_adv) ? "false" : "true" ?>
  21. }"
  22. id="main-form"
  23. name="v_add_db"
  24. method="post"
  25. >
  26. <input type="hidden" name="token" value="<?= $_SESSION["token"] ?>">
  27. <input type="hidden" name="ok" value="Add">
  28. <div class="form-container">
  29. <h1 class="u-mb20"><?= _("Add Database") ?></h1>
  30. <?php show_alert_message($_SESSION); ?>
  31. <?php if ($user_plain == "admin" && $accept !== "true") { ?>
  32. <div class="alert alert-danger" role="alert">
  33. <i class="fas fa-exclamation"></i>
  34. <p><?= htmlify_trans(sprintf(_("It is strongly advised to {create a standard user account} before adding %s to the server due to the increased privileges the admin account possesses and potential security risks."), _('a database')), '</a>', '<a href="/add/user/">'); ?></p>
  35. </div>
  36. <?php } ?>
  37. <?php if ($user_plain == "admin" && empty($accept)) { ?>
  38. <div class="u-side-by-side u-mt20">
  39. <a href="/add/user/" class="button u-width-full u-mr10"><?= _("Add User") ?></a>
  40. <a href="/add/db/?accept=true" class="button button-danger u-width-full u-ml10"><?= _("Continue") ?></a>
  41. </div>
  42. <?php } ?>
  43. <?php if (($user_plain == "admin" && $accept === "true") || $user_plain !== "admin") { ?>
  44. <p class="hint u-mb20">
  45. <?= sprintf(_("Prefix %s will be automatically added to database name and database user"), "<span class=\"u-text-bold\">" . $user_plain . "_</span>") ?>
  46. </p>
  47. <div class="u-mb10">
  48. <label for="v_database" class="form-label"><?= _("Database") ?></label>
  49. <input type="text" class="form-control js-db-hint-database-name" name="v_database" id="v_database" value="<?= htmlentities(trim($v_database, "'")) ?>">
  50. <small class="hint"></small>
  51. </div>
  52. <div class="u-mb10">
  53. <label for="v_type" class="form-label"><?= _("Type") ?></label>
  54. <select class="form-select" name="v_type" id="v_type">
  55. <?php
  56. foreach ($db_types as $key => $value) {
  57. echo "\n\t\t\t\t\t\t\t\t\t\t<option value=\"".htmlentities($value)."\"";
  58. if ((!empty($v_type)) && ( $value == $v_type )) echo ' selected';
  59. echo ">".htmlentities($value)."</option>";
  60. }
  61. ?>
  62. </select>
  63. </div>
  64. <div class="u-mb10">
  65. <label for="v_dbuser" class="form-label u-side-by-side">
  66. <?= _("Username") ?>
  67. <em><small>(<?= sprintf(_("Maximum %s characters length, including prefix"), 32) ?>)</small></em>
  68. </label>
  69. <input type="text" class="form-control js-db-hint-username" name="v_dbuser" id="v_dbuser" value="<?= htmlentities(trim($v_dbuser, "'")) ?>">
  70. <small class="hint"></small>
  71. </div>
  72. <div class="u-mb10">
  73. <label for="v_password" class="form-label">
  74. <?= _("Password") ?>
  75. <button type="button" title="<?= _("Generate") ?>" class="u-unstyled-button u-ml5 js-generate-password">
  76. <i class="fas fa-arrows-rotate icon-green"></i>
  77. </button>
  78. </label>
  79. <div class="u-pos-relative u-mb10">
  80. <input type="text" class="form-control js-password-input" name="v_password" id="v_password">
  81. <div class="password-meter">
  82. <meter max="4" class="password-meter-input js-password-meter"></meter>
  83. </div>
  84. </div>
  85. </div>
  86. <p class="u-mb10"><?= _("Your password must have at least") ?>:</p>
  87. <ul class="u-list-bulleted u-mb10">
  88. <li><?= _("8 characters long") ?></li>
  89. <li><?= _("1 uppercase & 1 lowercase character") ?></li>
  90. <li><?= _("1 number") ?></li>
  91. </ul>
  92. <div class="u-mb20">
  93. <label for="v_db_email" class="form-label">
  94. <?= _("Email login credentials to:") ?>
  95. </label>
  96. <input type="email" class="form-control" name="v_db_email" id="v_db_email" value="<?= htmlentities(trim($v_db_email, "'")) ?>">
  97. </div>
  98. <div class="u-mb20">
  99. <button x-on:click="showAdvanced = !showAdvanced" type="button" class="button button-secondary">
  100. <?= _("Advanced Options") ?>
  101. </button>
  102. </div>
  103. <div x-cloak x-show="showAdvanced">
  104. <div class="u-mb10">
  105. <label for="v_host" class="form-label"><?= _("Host") ?></label>
  106. <select class="form-select" name="v_host" id="v_host">
  107. <?php
  108. foreach ($db_hosts as $value) {
  109. echo "\n\t\t\t\t\t\t\t\t\t\t<option value=\"".htmlentities($value)."\"";
  110. if ((!empty($v_host)) && ( $value == $v_host )) echo ' selected';
  111. echo ">".htmlentities($value)."</option>";
  112. }
  113. ?>
  114. </select>
  115. </div>
  116. <div class="u-mb10">
  117. <label for="v_charset" class="form-label"><?= _("Charset") ?></label>
  118. <select class="form-select" name="v_charset" id="v_charset">
  119. <option value=big5 <?php if ((!empty($v_charset)) && ( $v_charset == 'big5')) echo 'selected'; ?>>big5</option>
  120. <option value=dec8 <?php if ((!empty($v_charset)) && ( $v_charset == 'dec8')) echo 'selected'; ?>>dec8</option>
  121. <option value=cp850 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp850')) echo 'selected'; ?>>cp850</option>
  122. <option value=hp8 <?php if ((!empty($v_charset)) && ( $v_charset == 'hp8')) echo 'selected'; ?>>hp8</option>
  123. <option value=koi8r <?php if ((!empty($v_charset)) && ( $v_charset == 'koi8r')) echo 'selected'; ?>>koi8r</option>
  124. <option value=latin1 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin1')) echo 'selected'; ?>>latin1</option>
  125. <option value=latin2 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin2')) echo 'selected'; ?>>latin2</option>
  126. <option value=swe7 <?php if ((!empty($v_charset)) && ( $v_charset == 'swe7')) echo 'selected'; ?>>swe7</option>
  127. <option value=ascii <?php if ((!empty($v_charset)) && ( $v_charset == 'ascii')) echo 'selected'; ?>>ascii</option>
  128. <option value=ujis <?php if ((!empty($v_charset)) && ( $v_charset == 'ujis')) echo 'selected'; ?>>ujis</option>
  129. <option value=sjis <?php if ((!empty($v_charset)) && ( $v_charset == 'sjis')) echo 'selected'; ?>>sjis</option>
  130. <option value=hebrew <?php if ((!empty($v_charset)) && ( $v_charset == 'hebrew')) echo 'selected'; ?>>hebrew</option>
  131. <option value=tis620 <?php if ((!empty($v_charset)) && ( $v_charset == 'tis620')) echo 'selected'; ?>>tis620</option>
  132. <option value=euckr <?php if ((!empty($v_charset)) && ( $v_charset == 'euckr')) echo 'selected'; ?>>euckr</option>
  133. <option value=koi8u <?php if ((!empty($v_charset)) && ( $v_charset == 'koi8u')) echo 'selected'; ?>>koi8u</option>
  134. <option value=gb2312 <?php if ((!empty($v_charset)) && ( $v_charset == 'gb2312')) echo 'selected'; ?>>gb2312</option>
  135. <option value=greek <?php if ((!empty($v_charset)) && ( $v_charset == 'greek')) echo 'selected'; ?>>greek</option>
  136. <option value=cp1250 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1250')) echo 'selected'; ?>>cp1250</option>
  137. <option value=gbk <?php if ((!empty($v_charset)) && ( $v_charset == 'gbk')) echo 'selected'; ?>>gbk</option>
  138. <option value=latin5 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin5')) echo 'selected'; ?>>latin5</option>
  139. <option value=armscii8 <?php if ((!empty($v_charset)) && ( $v_charset == 'armscii8')) echo 'selected'; ?>>armscii8</option>
  140. <option value=utf8 <?php if ((!empty($v_charset)) && ( $v_charset == 'utf8')) echo 'selected'; ?>>utf8</option>
  141. <option value=utf8mb4 <?php if ((!empty($v_charset)) && ( $v_charset == 'utf8mb4')) echo 'selected'; ?> <?php if (empty($v_charset)) echo 'selected'; ?>>utf8mb4</option>
  142. <option value=ucs2 <?php if ((!empty($v_charset)) && ( $v_charset == 'ucs2')) echo 'selected'; ?>>ucs2</option>
  143. <option value=cp866 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp866')) echo 'selected'; ?>>cp866</option>
  144. <option value=keybcs2 <?php if ((!empty($v_charset)) && ( $v_charset == 'keybcs2')) echo 'selected'; ?>>keybcs2</option>
  145. <option value=macce <?php if ((!empty($v_charset)) && ( $v_charset == 'macce')) echo 'selected'; ?>>macce</option>
  146. <option value=macroman <?php if ((!empty($v_charset)) && ( $v_charset == 'macroman')) echo 'selected'; ?>>macroman</option>
  147. <option value=cp852 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp852')) echo 'selected'; ?>>cp852</option>
  148. <option value=latin7 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin7')) echo 'selected'; ?>>latin7</option>
  149. <option value=cp1251 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1251')) echo 'selected'; ?>>cp1251</option>
  150. <option value=cp1256 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1256')) echo 'selected'; ?>>cp1256</option>
  151. <option value=cp1257 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1257')) echo 'selected'; ?>>cp1257</option>
  152. <option value=binary <?php if ((!empty($v_charset)) && ( $v_charset == 'binary')) echo 'selected'; ?>>binary</option>
  153. <option value=geostd8 <?php if ((!empty($v_charset)) && ( $v_charset == 'geostd8')) echo 'selected'; ?>>geostd8</option>
  154. <option value=cp932 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp932')) echo 'selected'; ?>>cp932</option>
  155. <option value=eucjpms <?php if ((!empty($v_charset)) && ( $v_charset == 'eucjpms')) echo 'selected'; ?>>eucjpms</option>
  156. </select>
  157. </div>
  158. </div>
  159. <?php } ?>
  160. </div>
  161. </form>
  162. </div>