Ankündigung

Einklappen
Keine Ankündigung bisher.

Datei nach Registrierung erstellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datei nach Registrierung erstellen

    Hallo,

    ich bin gerade am bauen eines Scriptes und brauche eure Hilfe. Wenn ein User sich registriert, soll für den User eine php Datei erstellt werden. Irgendwie schaffe ich das aber nicht. Könnt ihr mir evtl helfen?


    Danke im Voraus Gruß
    Daniel


  • #2
    http://schattenbaum.net/php/datei.php
    http://de.php.net/manual/de/ref.filesystem.php

    Kommentar


    • #3
      Re: Datei nach Registrierung erstellen

      Zitat von Danie
      ich bin gerade am bauen eines Scriptes und brauche eure Hilfe. Wenn ein User sich registriert, soll für den User eine php Datei erstellt werden.
      Das ist in praktisch 100% der Fälle unnötig und ein Sicherheitsrisiko obendrein. Was hast du vor?

      Kommentar


      • #4
        Ja, ich weis, dass man dies auch über eine Datenbank laufen lasse könnte, aber ich würde es gerna mal auf diese Weise versuchen. Jetzt habe ich diesen Code, aber es wird keine neue Datei erstellt
        PHP-Code:
         <?php
        $fname 
        "/danielss.php";
        $str "testnachricht\r\n";
        $erroerMessage "Fehler beim Zugriff auf die Datei $fname";
        if(
        is_writeable($fname)) {
        $fp fopen($fname'w');
        if(!
        $fp) {
        echo 
        $errorMessage;
        exit;
        }
        $fbytes fwrite($fp$str);
        if(!
        $bytes) {
        echo 
        $errorMessage;
        exit;
        }
        echo 
        "$fbytes Byte wurden gespeichert";
        fclose($fp);
        }
        else {
        echo 
        $errorMessage;
        exit;
        }
        ?>

        Kommentar


        • #5
          (- warum benutzt du nicht den php-BBCode? -- hat sich erledigt)
          - rück deinen Code ein
          - weißt du in welches Verzeichnis dich ein beginnender Slash bringt?
          - etwas geht nicht, warum unterdrückst du trotzdem die Fehlermeldung mit @, wer hat dir beigebracht so zu arbeiten? Hör auf dieses Tutorial oder Buch zu lesen.
          - Schreibfehler $erroerMessage
          - is_writable: "Gibt TRUE zurück, wenn die Datei existiert und nicht schreibgeschützt ist."

          Alles in allem ein schlampiger Code.

          Kommentar


          • #6
            Hi.

            Anstatt is_writable() den Namen der Datei zu übergeben (die ja noch nicht
            existiert, wenn ich dich richtig verstehe), übergib den Namen des
            Verzeichnisses, in das die Datei gesetzt werden soll (dirname($filename)).

            Und, nimm doch einfach file_put_contents().

            http://php.net/manual/en/function.file-put-contents.php

            Aber, wie bereits geschrieben ist es ziemlich heikel, PHP-Dateien dynamisch
            zu erzeugen und in der Regel vermeidbar. Beschreib doch mal dein
            Vorhaben, da gibt es sicher sauberere Lösungen.

            Basti

            Kommentar


            • #7
              Also ich will, dass jeder nach der Registrierung einen Link erhält. Wenn man den Link aufruft, können andere einem Grüße schicken (also so in der Art eines Gästebuches), aber die Grüße sollten nicht angezeigt sondern per e-Mail zugeschickt werden.

              Kommentar


              • #8
                Dazu reicht es, eine einzige Datei mit dieser Gruß-Funktionalität zu schreiben, der als Parameter der
                Name des zu grüßenden Benutzers übergeben wird.

                Basti

                Kommentar


                • #9
                  ...

                  Zitat von Basti
                  Dazu reicht es, eine einzige Datei mit dieser Gruß-Funktionalität zu schreiben, der als Parameter der
                  Name des zu grüßenden Benutzers übergeben wird.

                  Basti
                  denkst du echt, dass es so klappt, Denn diesen Link, den man nach der Registrierung erhält, soll man dann an andere weitergeben können und die können dann über diesen Link Grüße hinterlassen.

                  Kommentar


                  • #10
                    Schau mal nach oben, da übergibst du der Datei viewtopic.php doch auch Parameter die den Seiteninhalt entscheidend verändern.
                    Oder glaubst du die Seiten werden beim erstellen tatsächlich mit HTML-Layout erstellt? Änder mal deine Signatur und du wirst sehen, das passiert überall, auch in älteren Beiträgen.
                    Oder schau mal auf Unterseiten von www.spiegel.de, die .html-Seiten sind eigentlich nur Fakes, der Server extrahiert sich per Modrewrite-Rules die IDs im Dateinamen und übergibt sie wahrscheinlich ganz normal per Parameter an ein Skript.
                    Die Endung .html wird wohl verwendet, um den Link wie eine Datei aussehen zu lassen, außerdem verschleiert es die verwendete Skriptart (PHP, JSP, ASP, Perl, ..) was es für Hacker schwieriger macht. Denn wie nutze ich Sicherheitslücken von Skriptsprachen aus, wenn ich noch nichtmal die Skriptsprache kenne. Sie ist wahrscheinlich kein unknackbares Geheimnis, Skriptkiddies hälts aber schonmal fern.

                    Du siehst, serverseitige Skriptsprachen kombiniert mit Modrewrite-Rules sind ziemlich clevere Sachen.

                    Kommentar


                    • #11
                      Danke für deine ausführliche Antwort. Aber wenn z.B. jemand einen Link erstellt, dann erhält er z.B. so einen Link www.domain.de/daniel.html aber dieser Link wird ja nicht auf dem server als Datei angelegt. Oder muss der Link so z.B. aussehen www.domain.de/link.php?Daniel Habt ihr evtl. ein Code Beispiel wo ich mir anschauen kann, wie das mit dem Parametern abläuft

                      Kommentar


                      • #12
                        Zitat von Danie
                        [...] dann erhält er z.B. so einen Link www.domain.de/daniel.html aber dieser Link wird ja nicht auf dem server als Datei angelegt.
                        URLs nach diesem Schema werden häufig mit dem Apachemodul mod_rewrite gelöst, so dass die Adresse intern auf beispeilsweise http://www.domain.de/profil.php?name=daniel umgelenkt wird und somit einfach die Daten des Benutzers über den URL-Parameter name ermittelt werden können.

                        Kommentar

                        Lädt...
                        X