Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus Formular an Server senden/ dort speichern

Einklappen

Neue Werbung 2019

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

  • Daten aus Formular an Server senden/ dort speichern

    Guten Tag,

    ich hab ein Problem mit einem Formular, dessen Daten ich auf einem Server abspeichern will. Da ich aus den bisher besprochenen Themen nicht ganz schlau geworden bin, frage ich jetzt hier nochmals nach.

    Also ich hab hier jetzt schon mal was gefunden/geschrieben, aber ich weiß jetzt nicht wie ich den Part mit dem Server löse, sprich, wie wähle ich meinen Zielserver aus usw.
    Die Daten des Formulars sollen in ganz einfacher Form(kann auch .txt sein) abgespeichert werden. Wichtig für mich ist einfach nur, das sie irgendwie an den Server übergeben und dort gespeichert werden.


    Danke schon mal.


    PHP-Code:
    <?php
        
        
    /**
        * Datei Name, wo die Daten gespeichert werden
            sollen
        */
        
    $dateiname 'daten.csv';
        
    /**
        * Prüfen ob die Variable ein Wert zugewiesen
            wurde. Ansonsten werden diese Variablen
            deklariert.
        */
        
    if (!isset($_POST['vorname'])) $_POST['vorname'] =
            
    '';
        if (!isset(
    $_POST['nachname'])) $_POST['nachname']
            = 
    '';
        if (!isset(
    $_POST['email'])) $_POST['email'] = '';
        if (!isset(
    $_POST['senden'])) $_POST['senden'] =
            
    '';
        
    $meldung '';
        
    /**
        * Prüfen der Variable $_POST['senden'] ob diese
            ein Wert hat.
        */
        
    if ($_POST['senden'] == 'speichern') {
            
    /**
            * Zeile aufbauen, die in die CSV-Datei am Ende
                geschrieben werden soll
            */
            
    $inhalt =
                
    $_POST['vorname'].';'.$_POST['nachname'].'
                ;'
    .$_POST['email']."
            "
    ;
            
    /**
            * Datei öffnen und den Dateizeiger auf das
                Ende der CSV Datei legen, wenn die Datei
                noch nicht vorhanden ist wird versucht
                diese anzulegen. Wichtig ist, dass die
                Skriptdatei die Rechte zum anlegen einer
                Datei hat.
            */
            
    $handle = @fopen($dateiname"ab+");
            
    /**
            * Schreiben der Zeile, in der CSV Datei
            */
            
    fwrite($handle$inhalt);
            
    /**
            * Datei wieder schließen
            */
            
    fclose ($handle);
            
    /**
            * Prüfen ob die CSV Datei existiert
            */
            
    if (file_exists($dateiname) == true) {
                
    /**
                * Die schreib Rechte ändern bei der CSV
                    Datei, damit das nächste mal diese
                    beschrieben werden kann.
                */
                
    @chmod ($dateiname0757);
            }
            
    /**
            *  Ausgabemeldung erstellen
            */
            
    $meldung '<font color="green">Daten wurden
                gespeichert!</font>'
    ;
             
        }
        
    /**
        * Prüfen ob eine Ausgabemeldung in der Variable
            $meldung hinterlegt wurde, wenn eine
            Ausgabemeldung vorhanden ist wird diese per
            Echo ausgegeben.
        */
        
    if ($meldung != '') echo $meldung;
    ?>
    Code:
    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" 
           method="post">
      <table>
        <tr>
          <td>Vorname:</td>
          <td><input type="text" name="vorname" value=""/></td>
        </tr>
        <tr>
          <td>Namename:</td>
          <td><input type="text" name="nachname" value=""/></td>
        </tr>
        <tr>
          <td>Email:</td>
          <td><input type="text" name="email" value=""/></td>
        </tr>
      </table> 
      <input type="submit" name="senden" value="speichern"/>
    </form>

  • #2
    - http://blog.oncode.info/2008/05/07/p...scripting-xss/

    Was meinst du mit "Server auswählen"?
    [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

    Kommentar


    • #3
      den Speicherort meine ich damit

      Kommentar


      • #4
        Hier bitte das action Target einfach leer lassen wenn das selbe Script das verarbeitende Ziel sein soll, oder einen anderen Pfad.. auf keinen Fall PHP_SELF, das ist "böse" (-> google)

        PHP-Code:
        <form action="" ...> 
        ... den Speicherort
        Ziel des Forms ist ein Script (kann auch das selbe sein) und darin sind dann die Formulardaten in $_POST vorhanden und können nach belieben verarbeitet werden.

        Siehe auch: http://php-de.github.io/#form
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Entschuldigt aber ich habe keine Ahnung von Skripten

          die Daten sollen auf dem Server erstmal in dem selben Verzeichnis wie die Website gespeichert werden

          Also aus
          Code:
          <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"
          wird dann
          Code:
          <form action="<?php echo htmlspecialchars($_SERVER['']);?>"
          ???

          Kommentar


          • #6
            Nein, wenn das Ziel der Formulardaten das selbe Script sein soll, dann so:

            PHP-Code:
            <form action="" ...> 
            EDIT: Und im Ziel-Script hast du dann im $_POST Array alle übertragenen Formulardaten und kannst damit machen was du willst.

            Anzeigen - was im Form übertragen wurde - kannst du diese zB mittels:

            PHP-Code:
            echo "<pre>";
            print_r($_POST);
            echo 
            "</pre>"
            oder auch :

            PHP-Code:
            var_dump($_POST); 
            BTW: Zur Formularverarbeitung gibt es - abgesehen von den von mir bereits geposteten - massenhaft Tutorials/Beispiel im Web, schau dir die sonst auch mal an.

            LG
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Super danke.

              Abspeichern funktioniert schon mal. Vielleicht frag ich in ein paar Stunden nochmals nach, falls irgendwas nicht funktioniert.

              Kommentar


              • #8
                Du kannst zum Schreiben (ergänzen) übrigens auch http://php.net/manual/de/function.file-put-contents.php verwenden.

                PHP-Code:
                file_put_contents($dateinname$inhaltFILE_APPEND LOCK_EX); 
                Und schau dir auch filter_input(), du übernimmst derzeit alles ungefiltert, Werte von aussen sollen man immer prüfen/filtern. http://php.net/manual/de/function.filter-input.php
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar

                Lädt...
                X