kostenloser Webspace werbefrei: lima-city


Eigne CMS (Probleme mit MySQL)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    skateen

    skateen hat kostenlosen Webspace.

    Ich habe mir vorgenommen als langzeit Projekt eine eigne CMS zu schreiben bzw meine Seite :http://skateen.lima-city.de/Hauptseite/ in einer umzuwandeln.

    Ich hab hab mir viele schritte bei PHP-einfach.de befolgt,
    jedoch leider komme ich nicht weiter.

    Ich komme bei der Login Funktion und bei der Dateiabfrage bzw das senden nicht weiter. (Aber das kommt später)

    HTML
    <form action="login.php" method="post">
    Benutzer<input type="text" name="name">
    Passwort<input type="password" name="passwort">
    <input type="submit" value="Login">
    </form>


    PHP
    <?php
    session_start();
    error_reporting(-1);
    ini_set('display_errors', 'ON');
    
    $verbindung = mysql_connect ("mysql.lima-city.de","USER","Passwort")
    or die ("keine Verbindung möglich");
    
    mysql_select_db("db_220732_12")
    or die ("Die Datenbank existiert nicht.");
    
    
    $benutzername = $_POST["name"]; 
    $passwort = md5($_POST["passwort"]); 
    
    $abfrage = "SELECT benutzername, passwort FROM anmelden WHERE benutzername LIKE 'benutzername' LIMIT 1"; 
    $ergebnis = mysqli_query($abfrage); 
    $row = mysqli_fetch_object($ergebnis); 
    
    if($row->passwort == $passwort) 
        { 
        $_SESSION["benutzername"] = $benutzername; 
        echo "Login erfolgreich. "; 
        } 
    else 
        { 
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
        } 
    
    ?>

    MySQL
    benutzername Text,,,
    passwort Text,,,

    Fehlermeldungen, kann leider damit nichts anfangen...
    Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\Websitescript\test\login.php on line 6
    
    Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\Websitescript\test\login.php on line 17
    
    Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\Websitescript\test\login.php on line 18
    
    Notice: Trying to get property of non-object in C:\xampp\htdocs\Websitescript\test\login.php on line 20


    Kann mir da jemand helfen, bzw Ratschläge.....


    Grup Leyup

    Beitrag zuletzt geändert: 6.8.2014 15:38:46 von skateen
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo,
    so wie es sich für mich darstellt, vermischst Du hier mysql und mysqli. Da mysql veraltet ist, solltest Du dich direkt in mysqli einlesen...

    Verbinden kannst Du dich mit der Datenbank wie folgt...
    $verbindung = new mysqli('mysql.lima-city.de', $user, $password, 'db_220732_12');

    Aber hier noch ein Link zu einem Tutorial...
  4. Hallo!
    skateen schrieb:
    Ich habe mir vorgenommen als langzeit Projekt eine eigne CMS zu schreiben bzw meine Seite :http://skateen.lima-city.de/Hauptseite/ in einer umzuwandeln.

    Ich hab hab mir viele schritte bei PHP-einfach.de befolgt,
    jedoch leider komme ich nicht weiter.

    Ich komme bei der Login Funktion und bei der Dateiabfrage bzw das senden nicht weiter. (Aber das kommt später)

    HTML
    <form action="login.php" method="post">
    Benutzer<input type="text" name="name">
    Passwort<input type="password" name="passwort">
    <input type="submit" value="Login">
    </form>


    PHP
    <?php
    session_start();
    error_reporting(-1);
    ini_set('display_errors', 'ON');
    
    $verbindung = mysql_connect ("mysql.lima-city.de","USER","Passwort")
    or die ("keine Verbindung möglich");
    
    mysql_select_db("db_220732_12")
    or die ("Die Datenbank existiert nicht.");
    
    
    $benutzername = $_POST["name"]; 
    $passwort = md5($_POST["passwort"]); 
    
    $abfrage = "SELECT benutzername, passwort FROM anmelden WHERE benutzername LIKE 'benutzername' LIMIT 1"; 
    $ergebnis = mysqli_query($abfrage); 
    $row = mysqli_fetch_object($ergebnis); 
    
    if($row->passwort == $passwort) 
        { 
        $_SESSION["benutzername"] = $benutzername; 
        echo "Login erfolgreich. "; 
        } 
    else 
        { 
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
        } 
    
    ?>

    MySQL
    benutzername Text,,,
    passwort Text,,,

    Fehlermeldungen, kann leider damit nichts anfangen...
    Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\Websitescript\test\login.php on line 6
    
    Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\Websitescript\test\login.php on line 17
    
    Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\Websitescript\test\login.php on line 18
    
    Notice: Trying to get property of non-object in C:\xampp\htdocs\Websitescript\test\login.php on line 20


    Kann mir da jemand helfen, bzw Ratschläge.....


    Grup Leyup

    In deinem Code verwendest du mysql und mysqli parallel. Das geht aber nicht, da es ganz verschiedene Klassen sind. Richtig wäre es so (mysql durch mysqli ersetzt):
    <?php
    session_start();
    error_reporting(-1);
    ini_set('display_errors', 'ON');
    
    $verbindung = mysqli_connect ("mysql.lima-city.de","USER","Passwort","Datenbank")
    or die ("keine Verbindung möglich");
    
    $benutzername = $_POST["name"]; 
    $passwort = md5($_POST["passwort"]); 
    
    $abfrage = "SELECT benutzername, passwort FROM anmelden WHERE benutzername LIKE 'benutzername' LIMIT 1"; 
    $ergebnis = mysqli_query($verbindung, $abfrage); 
    $row = mysqli_fetch_object($ergebnis); 
    
    if($row->passwort == $passwort) 
        { 
        $_SESSION["benutzername"] = $benutzername; 
        echo "Login erfolgreich. "; 
        } 
    else 
        { 
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
        } 
    
    ?>


    MfG. Simon D.

    EDIT: Mist, da war jemand schneller

    Beitrag zuletzt geändert: 6.8.2014 16:04:33 von simon-d
  5. Autor dieses Themas

    skateen

    skateen hat kostenlosen Webspace.

    staymyfriend schrieb:
    Hallo,
    so wie es sich für mich darstellt, vermischst Du hier mysql und mysqli. Da mysql veraltet ist, solltest Du dich direkt in mysqli einlesen...

    Verbinden kannst Du dich mit der Datenbank wie folgt...
    $verbindung = new mysqli('mysql.lima-city.de', $user, $password, 'db_220732_12');

    Aber hier noch ein Link zu einem Tutorial...


    Das erklärt so einiges,
    Hab es jetzt so geändert:
    <?php
    session_start();
    error_reporting(-1);
    ini_set('display_errors', 'ON');
    
    $verbindung = new mysqli("mysql.lima-city.de","name","passwort")
    or die ("keine Verbindung möglich");
    
    mysqli_select_db("db_220732_12")
    or die ("Die Datenbank existiert nicht.");
    
    
    $benutzername = $_POST["name"]; 
    $passwort = md5($_POST["passwort"]); 
    
    $abfrage = "SELECT benutzername, passwort FROM anmelden WHERE benutzername LIKE 'benutzername' LIMIT 1"; 
    $ergebnis = mysqli_query($abfrage); 
    $row = mysqli_fetch_object($ergebnis); 
    
    if($row->passwort == $passwort) 
        { 
        $_SESSION["benutzername"] = $benutzername; 
        echo "Login erfolgreich. "; 
        } 
    else 
        { 
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
        } 
    
    ?>


    Da kommt nur diese or die Meldung: Die Datenbank existiert nicht, obwohl die Datenbank ja existiert..
    Muss die Datenbank auch irgendwie geändert werden oder wie`?
    Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\Websitescript\test\login.php on line 9


    Gruß Leyup

    Beitrag zuletzt geändert: 6.8.2014 16:28:15 von skateen
  6. staymyfriend schrieb:
    [...]
    Verbinden kannst Du dich mit der Datenbank wie folgt...
    $verbindung = new mysqli('mysql.lima-city.de', $user, $password, 'db_220732_12');

    <?php
    session_start();
    error_reporting(-1);
    ini_set('display_errors', 'ON');
    
    $verbindung = new mysqli("mysql.lima-city.de","name","passwort", "db_220732_12")
    or die ("keine Verbindung möglich");
    
    
    $benutzername = $_POST["name"]; 
    $passwort = md5($_POST["passwort"]); 
    
    $abfrage = "SELECT benutzername, passwort FROM anmelden WHERE benutzername LIKE 'benutzername' LIMIT 1"; 
    $ergebnis = $verbindung->query($abfrage); 
    $row = $ergebnis->fetch_object(MYSQLI_ASSOC); 
    
    if($row->passwort == $passwort) 
        { 
        $_SESSION["benutzername"] = $benutzername; 
        echo "Login erfolgreich. "; 
        } 
    else 
        { 
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
        } 
    
    ?>

    Ungetestet, aber ich habe soweit erst einmal alles (hoffentlich) abgeändert... Ansonsten verweise ich nochmals auf das Tutorial...

    Beitrag zuletzt geändert: 6.8.2014 16:44:44 von staymyfriend
  7. Autor dieses Themas

    skateen

    skateen hat kostenlosen Webspace.

    staymyfriend schrieb:
    staymyfriend schrieb:
    [...]
    Verbinden kannst Du dich mit der Datenbank wie folgt...
    $verbindung = new mysqli('mysql.lima-city.de', $user, $password, 'db_220732_12');

    <?php
    session_start();
    error_reporting(-1);
    ini_set('display_errors', 'ON');
    
    $verbindung = new mysqli("mysql.lima-city.de","name","passwort", "db_220732_12")
    or die ("keine Verbindung möglich");
    
    
    $benutzername = $_POST["name"]; 
    $passwort = md5($_POST["passwort"]); 
    
    $abfrage = "SELECT benutzername, passwort FROM anmelden WHERE benutzername LIKE 'benutzername' LIMIT 1"; 
    $ergebnis = $verbindung->query($abfrage); 
    $row = $ergebnis->fetch_object(MYSQLI_ASSOC); 
    
    if($row->passwort == $passwort) 
        { 
        $_SESSION["benutzername"] = $benutzername; 
        echo "Login erfolgreich. "; 
        } 
    else 
        { 
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
        } 
    
    ?>

    Ungetestet, aber ich habe soweit erst einmal alles (hoffentlich) abgeändert... Ansonsten verweise ich nochmals auf das Tutorial...


    Das sieht jetzt richtig kompliziert aus.
    Geht leider nicht
    Fatal error: Class '1' not found in C:\xampp\htdocs\Websitescript\test\login.php on line 15

    Aber Gut ich lese später mal die Anleitung durch vlt klapptes ja dann :D

    Gruß Leyup :D

    Beitrag zuletzt geändert: 6.8.2014 18:40:27 von skateen
  8. Hallo!
    Skateen, bei mysqli hat sich auch noch mehr verändert außer das i!:wink:
    Ich habs zwar in meinen korrigierten Code geschrieben, aber wohl vergessen zu erwähnen: In mysqli benutzt man nicht
    mysqli_select_db
    !
    Es wird weggelassen und in connect geschrieben:
    $verbindung = mysqli_connect ("mysql.lima-city.de","USER","Passwort","Datenbank")


    MfG. Simon D.
  9. Sorry,
    ändere Zeile 15 wie folgt..
    $row = $ergebnis->fetch_object();
  10. Autor dieses Themas

    skateen

    skateen hat kostenlosen Webspace.

    simon-d schrieb:
    Hallo!
    Skateen, bei mysqli hat sich auch noch mehr verändert außer das i!:wink:
    Ich habs zwar in meinen korrigierten Code geschrieben, aber wohl vergessen zu erwähnen: In mysqli benutzt man nicht
    mysqli_select_db
    !
    Es wird weggelassen und in connect geschrieben:
    $verbindung = mysqli_connect ("mysql.lima-city.de","USER","Passwort","Datenbank")


    MfG. Simon D.

    Hätte mich doch erkundigen sollen, hab wohl das Falsche gelernt :D

    staymyfriend schrieb:
    Sorry,
    ändere Zeile 15 wie folgt..
    $row = $ergebnis->fetch_object();


    Danke, aber irgendwie geht das immer noch nicht....
    Diese Meldung kommt vor:
    Trying to get property of non-object in C:\xampp\htdocs\Websitescript\test\login.php on line 17

    Edit: Moment mal wenn ich Benutzer ausfülle, ohne Passwort steht da Login Erfolgreich und wenn ich Passwort dazugebe, dann nicht....

    Wie sollte das den sonst aussehen`?

    Gruß Leyup

    Beitrag zuletzt geändert: 6.8.2014 21:40:10 von skateen
  11. Hallo!
    skateen schrieb:
    simon-d schrieb:
    Hallo!
    Skateen, bei mysqli hat sich auch noch mehr verändert außer das i!:wink:
    Ich habs zwar in meinen korrigierten Code geschrieben, aber wohl vergessen zu erwähnen: In mysqli benutzt man nicht
    mysqli_select_db
    !
    Es wird weggelassen und in connect geschrieben:
    $verbindung = mysqli_connect ("mysql.lima-city.de","USER","Passwort","Datenbank")


    MfG. Simon D.

    Hätte mich doch erkundigen sollen, hab wohl das Falsche gelernt :D

    staymyfriend schrieb:
    Sorry,
    ändere Zeile 15 wie folgt..
    $row = $ergebnis->fetch_object();


    Danke, aber irgendwie geht das immer noch nicht....
    Diese Meldung kommt vor:
    Trying to get property of non-object in C:\xampp\htdocs\Websitescript\test\login.php on line 17

    Edit: Moment mal wenn ich Benutzer ausfülle, ohne Passwort steht da Login Erfolgreich und wenn ich Passwort dazugebe, dann nicht....

    Wie sollte das den sonst aussehen`?

    Gruß Leyup

    Was du da beschreibst ist komisch...
    Noch ein Paar Verbesserungen:
    $abfrage = "SELECT benutzername, passwort FROM anmelden WHERE benutzername LIKE 'benutzername' LIMIT 1";

    Außerdem: Hast du mal die Datenbank überprüft? Sind dort denn der Benutzername und das Passwort richtig eingetragen? So wie es aussieht, ist das Datenbankfeld für das Passwort leer.

    MfG. Simon D.

    PS: Außerdem würde ich nie ein Passwort im Klartext in der Datenbank speichern!
    1. Wie hier beschrieben speichern: http://www.heise.de/security/artikel/Passwoerter-unknackbar-speichern-1253931.html?artikelseite=3
    2. Beim Login nicht decoden (geht nicht), sondern kodieren und schauen, ob das gleiche rauskommt.
  12. Autor dieses Themas

    skateen

    skateen hat kostenlosen Webspace.

    <?php
    session_start();
    error_reporting(-1);
    ini_set('display_errors', 'ON');
    
    $verbindung = new mysqli("mysql.lima-city.de","USER","Pass", "db_220732_12")
    or die ("keine Verbindung möglich");
    
    $benutzername = $_POST["name"]; 
    $passwort = $_POST["passwort"]; 
    
    $abfrage = "SELECT benutzername, passwort FROM anmelden WHERE benutzername LIKE 'benutzername' LIMIT 1"; 
    $ergebnis = $verbindung->query($abfrage); 
    $row = $ergebnis->fetch_object(); 
    
    if($row->passwort == $passwort) 
        { 
        $_SESSION["benutzername"] = $benutzername; 
        echo "Login erfolgreich. "; 
        } 
    else 
        { 
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
        } 
    
    ?>

    Ja das habe ich.

    Das sind das was bei mir eingetragen wurde.
    benutzername passwort
    Hallo 123456
    leyup pw

    Aber egal was ich als Benutzername schreibe, kommt Login erfolgreich...
    Das MD5 habe ich bewusst nicht gemacht, später soll das eingeführt werden

    Gruß Leyup :D

    Beitrag zuletzt geändert: 6.8.2014 23:29:04 von skateen
  13. Hi,

    es ist auch nicht verwunderlich, dass du dich mit jedem Benutzernamen einloggen kannst, schließlich prüft du in deinem SQL auf den namen "benutzername" ;-)

    Ich würde das ganze übrigens etwas abstrakter gestalten und mit prepared Statements arbeiten, zum Beipiel so:

    config.php
    <?php
    // Fehlerbehandlung
    error_reporting(-1);
    ini_set('display_errors', 'ON');
    // Datenbank konfiguration
    define('DB_HOST', 'mysql.lima-city.de');
    define('DB_USER', 'db-username');
    define('DB_PASS', 'db-password');
    define('DB_NAME', 'db_220732_12');
    // Mögliche Ausgaben
    $msq = array(
      'mysql-connection' => "Connect failed: %s\n",
      'wrong-credentials' => 'Die Zugangsdaten waren falsch. <a href="login.html">Login</a>',
      'login-successful' => 'Login erfolgreich',
    );

    login.php
    <?php
    require_once 'config.php';
    
    session_start();
    
    $username = $_POST["name"]; 
    $password = $_POST["passwort"]; 
    
    $connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    
    if (mysqli_connect_errno()) {
        printf($msq['mysql-connection'], mysqli_connect_error());
        exit;
    }
    
    $sql = <<<END_OF_SQL
    SELECT COUNT()
      FROM anmelden
     WHERE benutzername = ?
       AND password = ?
    END_OF_SQL;
    
    if($stmt = $connection->prepare($sql)){
      $stmt->bind_param("ss", $username, md5($password));
      $stmt->execute();
      $stmt->bind_result($numberOfValidUsers);
      $stmt->fetch();
      if($numberOfValidUsers == 1){
        $_SESSION["benutzername"] = $username; 
        echo $msq['login-successful'];
      }else{
        echo $msg['wrong-credentials'];
      }
      $stmt->close();
    }
    $connection->close();

    Aber warum würde ich solch einen Aufbau vorziehen?
    1.) Die Konfiguration und die Texte, die ausgegeben werden sind getrennt von der Logik, das hat den Vorteil, dass ich immer nur eines von beidem anpassen muss.
    2.) Durch die Verwendung von prepared-Statements fällt es leichter Fehler zu finden und man kann sich ebenfalls einfacher vor SQL-Injections schützen, das Beispiel ist zum Beispiel bereits dagegen geschützt.
    3.) Ist der Code so wesentlich leichter nachzuvollziehen (auch wenn das für dich jetzt nicht unbedingt so wirkt), da nervige Ausgaben, die den Lesefluss stören in kompakte Platzhalter, nämlich Variablen gepackt werden. Ich will beim lesen ja nicht ständig gucken müssen, wo ich jetzt gerade bin.

    Darüberhinaus will ich dir auch erklären, was ich da mache.

    Als erstes habe ich alles was nicht zur Logik gehört in eine Datei (config.php) ausgelagert. Dazu gehört übrigens auch die Behandlung von Fehlern, da ich die später ja ändern kann wie ich will, ohne das es einen Einfluss auf das Programm nimmt. Darüber hinaus definiere ich hier einige Konstanten mit den Zugangsdaten für die Datenbank. Konstanten nehme ich, weil ich so leicht verhindern kann, dass die Variablen überschrieben werden und ich den Fehler nicht mehr finde ;-) Zu guter letzt habe ich noch ein Array erstellt, dass alle ausgaben enthält, die mein Programm erzeugen könnte. Dies hat mehrere Vorteile, zum einen kann ich die selbe Ausgabe mehrfach verwenden, ohne dass ich immer den Text kopieren muss, zum anderen kann ich den Text einfach ändern, ohne das Programm danach zu durchsuchen.

    So nun aber zu dem eigentlichen Programm, das erkläre ich am besten Zeilenweise.
    Zeile 2: Hier hole ich mir die zuvor definierten Konfigurationen, sodass ich diese nutzen kann
    Zeile 4: Die Session wird geöffnet, damit uns die Variable $_SESSION zur Verfügung steht und wir hier Werte hineinschreiben können, die mehrere Requests überleben.
    Zeile 6 und 7: Die Variablen aus $_POST in eine eigene Variable übertragen, damit wir damit besser arbeiten können.
    Zeile 9: Eine Verbindung zur Datenbank aufbauen, hier nutzen wir die definierten Konstanten.
    Zeile 11: Überprüfen, ob es Fehler bei der Verbindung gab, sollte dass der Fall sein wird der Inhalt der IF-Verzweigung ausgeführt.
    Zeile 12: Falls ein Fehler auftratt, geben wir die Ursache aus, zur Formatierung nutzen wir das Array aus der config.php.
    Zeile 13: Das Programm beenden, falls ein Fehler auftratt.
    Zeile 16 bis 21: Wir speichern in der Variablen $sql die SQL-Abfrage, die wir später nutzen wollen, hierbei sind die Fragezeichen zu beachten, die bei prepared-Statements als Platzhalter für die eigentlichen Werte dienen.
    Zeile 23: Hier wird, aus dem SQL das in $sql steht, ein prepared-Statement erzeugt und in der Variable $stmt gespeichert, wenn dies erfolgreich ist, geht es innerhalb der IF-Abfrage weiter.
    Zeile 24: Hier kommt die große Stärke von prepared-Staments zum tragen, denn hier ersetzen wir die beiden Platzhalter durch die Strings aus den Variablen $username und dem md5 von $password
    Zeile 25: Hier feuern wir endlich die Query an die Datenbank ab.
    Zeile 26: Das Ergebnis der Query ist nun in $stmt hinterlegt, allerdings kommen wir da so nicht ran, stattdessen müssen uns das Ergebnis abholen, am einfachsten geht das, indem wir definieren wo es hineingeschrieben werden soll, und zwar in die Variable $numberOfValidUsers.
    Zeile 27: So damit das Ergebnis auch in der Variablen steht müssen wir das PHP auch mitteilen. Jedesmal wenn wir nun $stmt->fetch() aufrufen wird eine neue Zeile des Ergebnisses ausgewertet und damit die Variable überschrieben. Wenn keine Zeile mehr gefunden wird, dann gibt die Funktion false zurück, sodass man weiß wann man alle Zeile hat. Das brauchen wir hier aber gar nicht alles, da wir ja nur eine Zeile haben wollen und das gegebene SQL auch immer eine Zeile liefert ;-)
    Zeile 28: Hier überprüfen wir einfach die Anzahl der gefunden Nutzer, wenn diese nicht 1 sind, dann waren die Anmeldedaten wohl falsch. Entsprechend sind auch die folgenden Zeilen nur noch aufräumarbeiten.
    Zeile 29: $_SESSION füllen, da sich der User erfolgreich einloggen konnte.
    Zeile 30: Ausgabe, dass man sich erfolgreich eingeloggt hat.
    Zeile 32: Ausgabe, falls man sich nicht einloggen konnte.
    Zeile 34 und 36: Die offenen Verbindungen zur Datenbank schließen, dies würde aber ohnehin beim beenden des Programms passieren.

    So das war es, ich hoffe, dir hilft meine ausführliche Antwort zukünftig. Du hattest dein Problem ja eigentlich schon gelöst, dennoch wollte ich dir noch einen kleine Einblick zeigen, wie du den Code noch verbessern könntest.

    Mit freundlichen Grüßen
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!