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

Frage Webseite - Berufsschul Projekt Hilfe:(

Ich erklär euch das so.
Mach ich aber gleich. Hab gerade was zu tun.

Edit:
Macht schonmal das HTML-Form fertig.
 
Werbung:
So, dann mal los:
Also was klar sein sollte ist, dass ihr erstmal eine Seite braucht, auf der ihr euer HTML-Form habt.
Hier kurz ein Beispiel:
Erstmal der ganze Standard-Klatsch
HTML:
<!DOCTYPE html>
<html>
    <head>
        <title>
            Form erstellt Domain
        </title>
        <meta charset="utf-8">
        <style>
            html, body, * {
                padding: 0;
                margin: 0;
            }
           
            .main {
                display: flex;
                justify-content: center;
                align-items: center;
                width: 100vW;
                height: 100vH;
            }
           
            input[name="name"] {
                width: 50vW;
                height: 40px;
                border: 1px solid black;
                padding-left: 13px;
                font-size: 20px;
            }
           
            input:focus, button:focus {
                outline: none;
            }
           
            button[type="submit"] {
                border: 1px solid black;
                background-color: white;
                color: black;
                padding: 10px 20px;
                font-size: 20px;
                margin-top: 10px;
            }
           
            button[type="submit"]:hover {
                background-color: black;
                color: white;
            }
        </style>
    </head>

    <body>
        <div class="main">
            <form method="post" action="HIER_DER_NAME_DER_PHP_DATEI_WO_DIE_ABFRAGE_GEMACHT_WIRD.php">
                <input type="text" name="name" id="name" required="" autocomplete="off"><br>
               
                <button name="submit" type="submit">Submit</button>
            </form>
        </div>
    </body>
</html>
Die Dateiendung .php ist bei der Form-Seite nicht zwingend nötig, jedoch empfehle ich es für spätere Features.

Als nächstes füge ich in den HTML-Code einen Ajax-Request durch. Dies verhindert, dass bei der Überprüfung des Feldes (ob z.B. das Feld leer ist), die Seite neu geladen werde muss.
Der neue html-Code sieht nun so aus:
HTML:
<!DOCTYPE html>
<html>
    <head>
        <title>
            Form erstellt Domain
        </title>
        <meta charset="utf-8">
        <script src="https://code.jquery.com/jquery-3.2.1.js"></script>
        <style>
            html, body, * {
                padding: 0;
                margin: 0;
                font-family: Arial;
            }

            .main {
                display: flex;
                justify-content: center;
                align-items: center;
                width: 100vW;
                height: 100vH;
                flex-flow: column;
            }

            input[name="name"] {
                width: 50vW;
                height: 40px;
                border: 1px solid black;
                padding-left: 13px;
                font-size: 20px;
            }

            input:focus, button:focus {
                outline: none;
            }

            button[type="submit"] {
                border: 1px solid black;
                background-color: white;
                color: black;
                padding: 10px 20px;
                font-size: 20px;
                margin-top: 10px;
            }

            button[type="submit"]:hover {
                background-color: black;
                color: white;
            }
        </style>
    </head>

    <body>
        <div class="main">
            <form method="post">
                <input type="text" name="name" id="name" required="" autocomplete="off"><br>

                <button name="submit" type="submit" onclick="return SendDataANM()">Submit</button>
            </form><br>
            <p style="height: 30px;" id="msg"></p>
        </div>
        <script>
            function SendDataANM()
            {
                var name = document.getElementById('name').value;               
                var dataString = 'name=' + name;
                $.ajax({
                    type: "post",
                    url: "create_site.php",
                    data: dataString,
                    cache: false,
                    success: function (html) {
                        $('#msg').html(html);
                    }
                });
                return false;
            }
        </script>
    </body>
</html>

Und nun zum eigentlichen PHP:
Ich habe immer per Kommentar neben geschrieben, was da passiert!
Datei Nr.1 (create_site.php)
PHP:
<?php
//Wir kriegen den eingegebenen Namen des HTML-FORMS geliefert
$name = $_POST['name'];

//Hier die Abfrage, ob das Feld leer ist, oder nicht dem Muster entspricht
if ($name == '') {
    echo "Bitte f&uuml;lle das Feld aus";
} else if (!preg_match("/^[a-zA-Z ]*$/", $name)) { //Hier wird vorgegeben, dass NUR BUCHSTABEN und LEERZEICHEN, aber KEINE ZAHLEN oder SONDERZEICHEN benutzt werden dürfen
    echo "Du benutzt unzul&auml;ssige Zeichen";
} else { //Wenn keiner der beiden Fälle oben zutrifft (also alles okay ist) dann mache das hier
    $vorlage = fopen("vorlage.php", "r");
    $read_vorlage = fread($vorlage, filesize("vorlage.php"));//Wir lesen den HTML-Code aus der Datei "vorlage.php" aus.
   
    $datei = fopen("$name.php", "w"); 
    echo fwrite($datei, "$read_vorlage");//Hier schreiben wir den ausgelesenen HTML-Code von "vorlage.php" in unsere neu erstellte Datei.
    fclose($datei);
    fclose($vorlage);
   
   
    ?>
    <meta http-equiv="refresh" content="0; URL=<?php echo "$name"; ?>"><!--Weiterleitung auf die neue Seite-->
    <?php
}

So wie aus den Kommentaren hervorgeht, implementieren wir html-Code von einer Datei, in die neu erstellte.
Hier also Datei 2 (da könnt ihr beliebig html/php Code reinschreiben (vorlage.php):
PHP:
<!DOCTYPE html>
<html>
    <head>
        <title>
            Blabla
        </title>
    </head>
    <body>
        Guck mal in die URL und schau, ob es funktioniert hat!
    </body>
</html>

Als letztes bleiben nur noch die Dateiendungen .php denn die sollen ja weg, sodass aus
www.blabla.de/test.php
nun
www.blabla.de/test
wird.

Um das zu tun, müssen wir die .htaccess bearbeiten.
Fügt einfach
Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
Das hier in eure .htaccess Datei und dann müsste alles funktionieren ;)

Wenn ihr Fragen zu irgendwas habt, dann fragt einfach.
Ich wollte jetzt nicht alles ganz genau erklären, da ihr ja schon ein bisschen PHP könnt.
 
Zurück
Oben