• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Sry, Ich ma wieder

Lurid

Neues Mitglied
hi,

wie ihr sicher schon bemerkt habt bin ich ein zimlicher noob was php angeht, und es tut mir leid, aber ich habe schon wieder einen fehler, beim datenbankauslesen, werden nur die Spalten namen angezeigt, aber nicht die datensätze, könnt ihr mir weiterhelfen?

PHP:
<html>
<head>
</head>
<body>
<?php
#error_reporting(E_ALL | E_STRICT);
if(!isset($_POST["send"]) and !isset($_POST["send2"]) and  !isset($_POST["send3"]) or isset($_POST["neuer_vorgang"]))
print "<form action='' method='post'>
       <h1>MySql verbindung</h1>
       <h3>Host : </h3>
       <input type='text' name='host' size='15' value='localhost'>
       <h3>Benutzer : </h3>
       <input type='text' name='benutzer' size='20' value='root'>
       <h3>Passwort : </h3>
       <input type='password' name='pw' size='10' value=''>
       <input type='submit' name='send' value='Senden'>
       </form>";
$localhost = $_POST["host"];
$root = $_POST["benutzer"];
$pw = $_POST["pw"];
if(isset($localhost)){
//1. mit DB-Server verbinden
$my_sql = mysql_connect("$localhost", "$root","$pw") or  die(mysql_error());
}
if(isset($_POST["send"])){
    print "<h2>Hier eine Liste der Datenbanken</h2>";
    $result = mysql_query("SHOW DATABASES");
    print "<table bgcolor='#FF1493'>";
    while ( $row = mysql_fetch_row($result) )
     {
         print "<tr  bgcolor='#B22222'><td>".$row[0]."</td></tr>";
      }   
    print "</table>";  
    print"<h3>Welche Datenbank ?</h3><form action=''  method='post'>
          <input type='text' name='db' size='25'><br>
          <input type='hidden' name='host' value='".$localhost."'>
          <input type='hidden' name='benutzer' value='".$root."'>
          <input type='hidden' name='pw' value='".$pw."'>
          <input type='hidden' name='my_sql' value='".$my_sql."'>
          <input type='submit' name='send2'  value='Senden'></form>";
}
if(isset($_POST["send2"])){
$db = $_POST["db"];
$localhost = $_POST["host"];
$root = $_POST["benutzer"];
$pw = $_POST["pw"];
$my_sql = mysql_connect("$localhost", "$root","$pw") or  die(mysql_error());
$_DB = mysql_select_db("$db", $my_sql) or die(mysql_error());
print "     <form action='' method='post'>
            <h3>Welche Tabelle ?</h3>
            <input type='text' name='tb' size='25'><br>
            <input type='hidden' name='db' value='".$db."'>
            <input type='hidden' name='host'  value='".$localhost."'>
            <input type='hidden' name='benutzer'  value='".$root."'>
            <input type='hidden' name='pw' value='".$pw."'>
            <input type='hidden' name='my_sql'  value='".$my_sql."'>
            <input type='submit' name='send3'  value='Senden'></form>";
print "<h2>Hier eine Liste der Tabellen</h2>";
$result2 = mysql_query("SHOW TABLES FROM $db");
print "<table bgcolor='#FF1493'>";
    while ( $row2 = mysql_fetch_row($result2) )
     {
         print "<tr  bgcolor='#B22222'><td>".$row2[0]."</td></tr>";
      }   
    print "</table>";  
}
if(isset($_POST["send3"])){
$tb = $_POST["tb"];
$db = $_POST["db"];
$localhost = $_POST["host"];
$root = $_POST["benutzer"];
$pw = $_POST["pw"];
$my_sql = mysql_connect("$localhost", "$root","$pw") or  die(mysql_error());
$_DB = mysql_select_db("$db", $my_sql) or die(mysql_error());
 
   $_datensätze = mysql_query("SELECT * FROM $tb");
   if(!$_datensätze)
      die('SQL-Abfrage fehlgeschlagen');
   //4. Result-Handle auslesen
   $_complete = mysql_num_rows($_datensätze);
   $i = 0;
   $c = 0;
$printed_headers = false ;

 $row = mysql_fetch_array ( $_datensätze);
         print "<table bgcolor='#00FFFF'><tr  bgcolor='#00ff99'>";
        foreach ( array_keys ( $row) AS $header )
        {
            if ( ! is_int ( $header ) )
            {      
                print "<td>$header</td>";
            }
        }
           print "</tr>";
           print"<tr>";
           echo hallo; die;
   while ( $_ausgabe = mysql_fetch_object($_datensätze)){
       print "<tr bgcolor='#FF00FF' color='#FF0000'>";
       foreach ($_ausgabe as $nameSpalte => $wertSpalte)
       {
       $neu  = $_ausgabe->$nameSpalte;
       
    if($i == $zahl){
                $i = 0;
                print "</tr>";  
                print "<tr bgcolor='#FF00FF' color='#FF0000'>";
                }
         else{
              print " <td>
                         $neu
                      </td>";        
                $i++;          
          }
          }
      print "</tr>";
   }
    print "</table>";
    print      "<form action='' method='post'>
                <input type='submit' name='neuer_vorgang'  value='Neuer Vorgang'></form>";
}
?>
</body>
</html>


___________________________________________________________________________

Alle rechtschreibfehler sind gewollt und dienen zur allgemeinen belustigung
 
Ergänzung, das "echo hallo; die; " hab ich reingenommen NACHDEM ich den fehler hatte. Das die; den code an der stelle unterbricht und zum ende schickt weiß ich inzwischen zum glück schon.
 
So, habe es doch hinbekommen :) für alle die mein ergebnis sehen wollen hier der code.
PHP:
<html>
<head>
</head>
<body>
<?php
error_reporting(E_ALL | E_STRICT);
if(!isset($_POST["send"]) and !isset($_POST["send2"]) and !isset($_POST["send3"]) or isset($_POST["neuer_vorgang"]))
print "<form action='' method='post'>
       <h1>MySql verbindung</h1>
       <h3>Host : </h3>
       <input type='text' name='host' size='15' value='localhost'>
       <h3>Benutzer : </h3>
       <input type='text' name='benutzer' size='20' value='root'>
       <h3>Passwort : </h3>
       <input type='password' name='pw' size='10' value=''>
       <input type='submit' name='send' value='Senden'>
       </form>";
$localhost = $_POST["host"];
$root = $_POST["benutzer"];
$pw = $_POST["pw"];
if(isset($localhost)){
//1. mit DB-Server verbinden
$my_sql = mysql_connect("$localhost", "$root","$pw") or die(mysql_error());
}
if(isset($_POST["send"])){
    print "<h2>Hier eine Liste der Datenbanken</h2>";
    $result = mysql_query("SHOW DATABASES");
    print "<table bgcolor='#FF1493'>";
    while ( $row = mysql_fetch_row($result) )
     {
         print "<tr bgcolor='#B22222'><td>".$row[0]."</td></tr>";
      }   
    print "</table>";  
    print"<h3>Welche Datenbank ?</h3><form action='' method='post'>
          <input type='text' name='db' size='25'><br>
          <input type='hidden' name='host' value='".$localhost."'>
          <input type='hidden' name='benutzer' value='".$root."'>
          <input type='hidden' name='pw' value='".$pw."'>
          <input type='hidden' name='my_sql' value='".$my_sql."'>
          <input type='submit' name='send2' value='Senden'></form>";
}
if(isset($_POST["send2"])){
$db = $_POST["db"];
$localhost = $_POST["host"];
$root = $_POST["benutzer"];
$pw = $_POST["pw"];
$my_sql = mysql_connect("$localhost", "$root","$pw") or die(mysql_error());
$_DB = mysql_select_db("$db", $my_sql) or die(mysql_error());
print "     <form action='' method='post'>
            <h3>Welche Tabelle ?</h3>
            <input type='text' name='tb' size='25'><br>
            <input type='hidden' name='db' value='".$db."'>
            <input type='hidden' name='host' value='".$localhost."'>
            <input type='hidden' name='benutzer' value='".$root."'>
            <input type='hidden' name='pw' value='".$pw."'>
            <input type='hidden' name='my_sql' value='".$my_sql."'>
            <input type='submit' name='send3' value='Senden'></form>";
print "<h2>Hier eine Liste der Tabellen</h2>";
$result2 = mysql_query("SHOW TABLES FROM $db");
print "<table bgcolor='#FF1493'>";
    while ( $row2 = mysql_fetch_row($result2) )
     {
         print "<tr bgcolor='#B22222'><td>".$row2[0]."</td></tr>";
      }   
    print "</table>";  
}
if(isset($_POST["send3"])){
$tb = $_POST["tb"];
$db = $_POST["db"];
$localhost = $_POST["host"];
$root = $_POST["benutzer"];
$pw = $_POST["pw"];
$my_sql = mysql_connect("$localhost", "$root","$pw") or die(mysql_error());
$_DB = mysql_select_db("$db", $my_sql) or die(mysql_error());
 
   $_datensätze = mysql_query("SELECT * FROM $tb");
   if(!$_datensätze)
      die('SQL-Abfrage fehlgeschlagen');
   //4. Result-Handle auslesen
   $_complete = mysql_num_rows($_datensätze);
   $c = 0;
$printed_headers = false ;

 $row = mysql_fetch_array ( $_datensätze);
     print "<table bgcolor='#00FF00'><tr bgcolor='#00FFFF'>";
      foreach ( array_keys ( $row) AS $header )
       {
            if ( ! is_int ( $header ) )
          {      
               print "<td><font color='#FF00FF'><blink><b> $header </b></blink></font></td>";
        }
        }
          print "</tr>";
    $_datensätze = mysql_query("SELECT * FROM $tb");
    $i = 0;
      while ( $_ausgabe = mysql_fetch_object($_datensätze)){
       print "<tr bgcolor='#FF0000'>";
       foreach ($_ausgabe as $nameSpalte => $wertSpalte)
       {
       $neu  = $_ausgabe->$nameSpalte;
       
    if($i%1){
                $i = 0;
                print "</tr>";  
                print "<tr bgcolor='#FF0000'>";
                }
         else{
              print " <td>
                        <font color='#00FF00'><blink><b> $neu </b></blink></font>
                      </td>";        
                $i++;          
          }
          }
      print "</tr>";
   }
    print "</table>";
    print      "<form action='' method='post'>
                <input type='submit' name='neuer_vorgang' value='Neuer Vorgang'></form>";
}
?>
</body>
</html>

Für verbesserungsvorschläge bin ich immer offen, also immer her mit kritik.
 
Ich habe probiert mir deinen Code anzugucken, ich habe es echt probiert ^^ Du solltets unbedingt den Code etwas aufräumen.
Dann helfen kommentare sehr viel weiter. Probiere Namen für deine variablen zu definieren, die etwas aussagen. Denn was sagt mir send, send2 und send3?

Es hilft auch einzelne Aktionen (nehme mal an das sind mehrere Aktionen) in einzelne Dateien auszulagern. So reduzierst den Code der auf einer Seite steht und damit wird er übersichtlicher.

Meine so etwas (nur als beispiel)

PHP:
<?php
 if($_POST['action'] == "showDatabases") {
   include_once "showDatabases.php"; 
 } else {
   include_once "databaseFormular.php";
 }
?>

Falls du noch mehr Aktionen haben solltest bietet es sich an auch einen Switch-Case zu nehmen anstatt If-Abfragen.
Wenn der Code gut aufgeräumt ist kann man auch mehr daraus erkennen. Und Kommentier deinen Code immer. Kommentare sind dein Freund. Sie helfen dir Codefragmente Logisch wieder zu erkennen.
Es reicht sowas wie:
PHP:
<?php 

 if($_POST['action'] == "showDatabases") {
   include_once "showDatabases.php"; 
 } else {
   // Wenn Daten noch nicht abgesendet wurden Datenbank-Formular anzeigen
   include_once "databaseFormular.php";
 }

?>

Also sei mir nicht böse, dass ich dir nicht geholfen habe. Probiere es uns aber auch bitte ein wenig leichter zu machen dir zu helfen :)
 
Ausserdem ist es anzuraten HTML nie mittels echo oder print auszugeben. Ich mache es meistens so:
PHP:
        <?php 
        /**Hier Dein PHP Code der die Verwaltung macht. KEINE AUSGABEN HIER**/
        ?>
        <html>
            <head>
            ......
            </head>
            <body>
            <div id = "Header">
            
            </div>
            <div id = "Content">
                        .....
                <?php if(isset($_POST['register'])):?>
                    <!-- Hier kannst Du nun den HTML code hineinschreiben, beispielsweise ein Formular falls jemand sich registrieren will und er auf den Registrierbutton gedrückt hat.Verstehst Du das Prinzip? -->
                <?php endif;?>
            </div>
            <div id = "Footer">
            
                        .....
            </div>
            </body>
        </html>
 
Interessehalber habe ich versucht, das Konzept aus diesem Thread auch hier anzuwenden:

inc.func.php

PHP:
<?php

/**
 * Stellt fest, ob alle benötigten Werte im POST-/GET-/COOKIE- bzw. REQUEST-Feld
 * gesetzt sind
 *
 * Hintergrund: Es ist für den Client möglich, nur bestimmte POST-Felder zurück
 * an den Server zu schicken. Wenn wir das ganz zu Beginn der Auswertung einmal
 * zentral prüfen, können wir danach davon ausgehen, dass alle erwarteten Felder
 * gesetzt sind. Das spart ewige isset()-Aufrufe.
 *
 * Diese Funktion sollte zentral in ein Include ausgelagert werden.
 *
 * @param array  $needles Feld von Feldnamen, die gesetzt sein müssen
 * @param string $where   Nachsehen in GET, POST, COOKIE oder REQUEST
 *                        (Standard: POST)
 * @return array Feld mit Fehlermeldungen
 */
function istGesetzt(array $needles, $where = 'POST')
{
    $where  = strtoupper($where);
    $errors = array();
    $a      = null;

    switch ($where) {
        case 'GET'    : $a = &$_GET;     break;
        case 'POST'   : $a = &$_POST;    break;
        case 'COOKIE' : $a = &$_COOKIE;  break;
        case 'REQUEST': $a = &$_REQUEST; break;
        default:
            throw new IllegalArgumentException(
                    '$where needs to be "GET", "POST", "COOKIE" or "REQUEST"');
            break;
    }

    foreach ($needles as $needle) {
        $a[$needle] = (isset($a[$needle])) ? trim($a[$needle]) : null;

        if (is_null($a[$needle]) || $a[$needle] === '') {
            $errors[] = 'Feld "' . $needle . '" nicht gesetzt';
        }
    }

    return $errors;
}

/**
 * Sichert einen String vor XSS-Attacken
 *
 * Es ist sinnvoll, diese Funktion auszulagern, um die Ausgabe schnell von UTF-8
 * auf ISO-8859-1 oder so umstellen zu können (erfordern unterschiedliche Escape-
 * Funktionen).
 *
 * Diese Funktion sollte zentral in ein Include ausgelagert werden.
 *
 * @param string $string
 * @return string
 */
function escape($string)
{
    return htmlspecialchars($string);
}

function dispatch()
{
    /*
     * Dieser Teil ist beliebig wiederverwendbar. Hier wird die aktuell nachgefragte
     * Action ermittelt und ausgeführt
     */

    $_POST['action'] = (isset($_POST['action']))
        ? strtolower(trim($_POST['action']))
        : 'index';

    $tplVars = array();
    forwardAction($_POST['action'], $tplVars);

    return $tplVars;
}

function forwardAction($actionName, array &$vars)
{
    $vars = array();

    $vars['action'] = $actionName;

    $actionFunction = 'action' . ucfirst($actionName);

    if (!function_exists($actionFunction)) {
        throw new BadFunctionCallException(
                'Action "' . $_POST['action'] . '" does not exist');
    } else {
        $actionFunction($vars);
    }
}


// Es wäre sauberer, diese beiden Zeilen nicht mit in die Include-Datei zu
// setzen, aber auf diese Weise ist es so schön simpel

error_reporting(E_ALL | E_STRICT);
extract(dispatch());

index.php im nächsten Post wegen Zeichenbegrenzung.
 
index.php

PHP:
<?php

require_once './inc.func.php';

/**
 * Von mehreren Actions dieser Datei gemeinsam genutzer Code
 *
 * @param array $vars
 * @return resource
 */
function _connectToHost(array &$vars)
{
    $vars['host']     = $_POST["host"];
    $vars['benutzer'] = $_POST["benutzer"];
    $vars['pw']       = $_POST["pw"];

    $connection = @mysql_connect($vars['host'], $vars["benutzer"], $vars["pw"]);

    if ($connection === false) {
        $vars['errors'][] = mysql_error();
    }

    return $connection;
}



/**
 *
 * @param array $vars
 */
function actionIndex(array &$vars)
{}

/**
 *
 * @param array $vars
 * @return void
 */
function actionSend(array &$vars)
{
    // Prüfen, ob alle Werte gesetzt
    $vars['errors'] = istGesetzt(array('host', 'benutzer', 'pw'));

    if (empty($vars['errors'])) {
        $connection = _connectToHost($vars);
    }

    if (empty($vars['errors'])) {
        $vars['databases'] = array();
        $result = mysql_query("SHOW DATABASES", $connection);

        if ($result === false) {
            $vars['errors'][] = mysql_error();
        } else {
            while ($row = mysql_fetch_row($result)) {
                $vars['databases'][] = $row[0];
            }
        }
    }

    // Die Idee hinter diesen Blöcken ist: Falls irgendetwas schiefgeganen ist,
    // soll die vorherige Aktion erneut ausgelöst werden, aber die
    // Fehlermeldungen dieser Aktion sollen dazu angezeigt werden.
    //
    // Die forwardAction()-Funktion löscht den Inhalt von $vars.
    if (!empty($vars['errors'])) {
        $tmp = $vars['errors'];
        forwardAction('index', $vars);
        $vars['errors'] = $tmp;
    }
}

/**
 *
 * @param array $vars
 * @return void
 */
function actionSend2(array &$vars)
{
    $vars['errors'] = istGesetzt(array('host', 'benutzer', 'pw', 'db'));

    $vars['db'] = $_POST['db'];

    if (empty($vars['errors'])) {
        $connection = _connectToHost($vars);
    }

    if (empty($vars['errors'])) {
        $result = mysql_select_db($vars['db'], $connection);
        if ($result === false) {
            $vars['errors'][] = mysql_error();
        }
    }

    if (empty($vars['errors'])) {
        $result = mysql_query("SHOW TABLES FROM " . $vars['db'], $connection);
        if ($result === false) {
            $vars['errors'][] = mysql_error();
        } else {
            $vars['tables'] = array();

            while ($row = mysql_fetch_row($result)) {
                $vars['tables'][] = $row[0];
            }
        }
    }

    if (!empty($vars['errors'])) {
        $tmp = $vars['errors'];
        forwardAction('send', $vars);
        $vars['errors'] = $tmp;
    }
}

/**
 *
 * @param array $vars
 * @return void
 */
function actionSend3(array &$vars)
{
    $vars['errors'] = istGesetzt(array('host', 'benutzer', 'pw', 'db', 'tb'));

    $vars['db'] = $_POST['db'];
    $vars['tb'] = $_POST['tb'];

    if (empty($vars['errors'])) {
        $connection = _connectToHost($vars);
    }

    if (empty($vars['errors'])) {
        $result = mysql_select_db($vars['db'], $connection);
        if ($result === false) {
            $vars['errors'][] = mysql_error();
        }
    }

    if (empty($vars['errors'])) {
        $result = mysql_query("SELECT * FROM " . $vars['tb'], $connection);
        if ($result === false) {
            $vars['errors'][] = mysql_error();
        } else {
            $vars['rows'] = array();

            while ($row = mysql_fetch_object($result)) {
                $vars['rows'][] = $row;
            }
        }
    }

    if (!empty($vars['errors'])) {
        $tmp = $vars['errors'];
        forwardAction('send2', $vars);
        $vars['errors'] = $tmp;
        return;
    }
}

?>


<html>
<head>
</head>
<body>

<?php if (!empty($errors)): ?>
    <h2>Fehler!</h2>

    <?php foreach ($errors as $error): ?>
        <p>Fehler: <?php echo escape($error); ?></p>
    <?php endforeach; ?>

    <hr />
<?php endif; ?>

<?php if ($action === 'index'): ?>
    <form action='' method='post'>
        <h1>MySql verbindung</h1>
        <h3>Host : </h3>
        <input type='text' name='host' size='15' value='localhost'>
        <h3>Benutzer : </h3>
        <input type='text' name='benutzer' size='20' value='root'>
        <h3>Passwort : </h3>
        <input type='password' name='pw' size='10' value=''>
        <input type="hidden" name="action" value="send" />
        <input type='submit' name='send' value='Senden'>
    </form>
<?php endif; ?>

<?php if ($action === 'send'): ?>
    <h3>Welche Datenbank ?</h3>
    <form action='' method='post'>
          <input type='text' name='db' size='25'><br>
          <input type='hidden' name='host' value='<?php echo escape($host); ?>'>
          <input type='hidden' name='benutzer' value='<?php echo escape($benutzer); ?>'>
          <input type='hidden' name='pw' value='<?php echo escape($pw); ?>'>
          <input type="hidden" name="action" value="send2" />
          <input type='submit' name='send2' value='Senden'>
    </form>

    <h2>Hier eine Liste der Datenbanken</h2>
    <table bgcolor='#FF1493'>
    <?php foreach ($databases as $db): ?>
        <tr bgcolor='#B22222'><td><?php echo escape($db); ?></td></tr>
    <?php endforeach; ?>
    </table>
<?php endif; ?>

<?php if ($action === 'send2'): ?>
    <h3>Welche Tabelle ?</h3>
    <form action='' method='post'>
        <input type='text' name='tb' size='25'><br>
        <input type='hidden' name='db' value='<?php echo escape($db); ?>'>
        <input type='hidden' name='host' value='<?php echo escape($host); ?>'>
        <input type='hidden' name='benutzer' value='<?php echo escape($benutzer); ?>'>
        <input type='hidden' name='pw' value='<?php echo escape($pw); ?>'>
        <input type="hidden" name="action" value="send3" />
        <input type='submit' name='send3' value='Senden'>
    </form>

    <h2>Hier eine Liste der Tabellen</h2>
    <table bgcolor='#FF1493'>
    <?php foreach ($tables as $tb): ?>
        <tr bgcolor='#B22222'><td><?php echo escape($tb); ?></td></tr>
    <?php endforeach; ?>
    </table>
<?php endif; ?>

<?php if ($action === 'send3'): ?>
    <?php
        $i = 1;
        $printed_headers = false ;
    ?>

    <table bgcolor='#00FF00'>
    <?php foreach ($rows as $row): ?>

        <?php if (!$printed_headers): ?>
            <tr bgcolor='#00FFFF'>
            <?php foreach ($row as $header => $unused): ?>
                <td><font color='#FF00FF'><blink><b><?php echo escape($header); ?></b></blink></font></td>
            <?php endforeach; ?>
            </tr>
        <?php
                $printed_headers = true;
            endif;
        ?>

        <?php if ($i % 2 === 0): ?>
        <tr bgcolor='<?php echo ($i % 2 === 0) ? '#FF0000' : '#0000FF'; ?>'>
        <?php endif; ?>

        <?php foreach ($row as $key => $value): ?>
            <td><font color='#0000FF'><blink><b><?php echo escape($value); ?></b></blink></font></td>
        <?php endforeach; ?>

        </tr>

    <?php
    $i++;
    endforeach;
    ?>
    </table>

        <form action='' method='post'>
            <input type="hidden" name="action" value="index" />
            <input type='submit' name='neuer_vorgang' value='Neuer Vorgang'>
        </form>
<?php endif; ?>

</body>
</html>

PS: Die Farbwahl und das Geblinke sind übrigens gewöhnungsbedürftig, Lurid. ;)

Edit: Ich weiß nicht, ob das schon jemand gesagt hat, aber Sessions sind für so einen Fall besser geeignet als das "Mitschleifen" von POST-Daten über mehrere Schritte. Vor allem auch hinsichtlich der Fehlerbehandlung. Einmal gesetzte Felder verschwinden in Session-Dateien nicht so schnell wie in POST-Daten.

(Und der Threadtitel ist nichtssagend.)
 
Zuletzt bearbeitet:
Vielen Dank für die gantzen tipps und Hilfen :)
@brebsaron: das interessiert mich auch mal warum man sowas nicht machen sollte.
@mermshaus: Sessions hab ich noch nicht wirklich drauf, und bis ich sie wirklich drauf habe, versuch ich sie meist zu umgehen irgendwie, ist eine leider etwas größere Macke von mir.
Die Farbauswahl ist nur als verdeutlichung gemeint gewesen wie man es machen könnte, hatte eig in erinerrung das ich Das noch geändert hätte bevor ich das hier geposted hatte. Nochmal Entschuldigung dafür.
 
Zurück
Oben