PHP Formular probleme

DRMCW

Cadet 3rd Year
Registriert
Nov. 2009
Beiträge
59
Moin leute,

ich habe ein Problem mit PhP, leider sind meine PhP kenntnisse leider nicht mehr aussreichend.
Aber ich muss ein Formular erstellten, wo ich die eingegeben Daten in eine csv datei speichern muss.

Da PHP einige funtktionen bereitstellt, wie bspw. fputcsv wollte ich das ich hierbei die Daten vom Formular, in ein Array stecken und diese dann in die csv datei schreiben lassen. Sobald das formular abgesickt worden ist, aber da ist das Problem, das ich sobald ich auf Submit / Speichern drücke zwar lokal alles in $vars gespeichert wird, und als überprüfung in echo´s ausgegeben wird, diese Daten aber nicht in die Datei geschrieben wird.

kann mir hier einer bspw. ein Code beispiel geben ?

Das Formular wird hierbei so bei mir per methode=POST in Html geschrieben. Die Verarbeitung der Daten wird per PHP gemacht.

das Formular enthält
Username
ID
lastname
Firstname

Diese Daten werden dem PHP script per POST $username = $_POST['username'] überbegeben
vorher wird auf if (isset($_POST['aktion']) and $_POST['aktion']=='speichern') auf submit geprüft.

Problem bei mir ist, das sobald ich auf Submit drücke alles zwar local gespeichert wird, aber leider nicht in die Datei geschrieben wird.

Auf was muss ich achten ?
 
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors"> <meta name="generator" content="Hugo 0.79.0"> <title>Top navbar example · Bootstrap v5.0</title> <link rel="canonical" href="https://getbootstrap.com/docs/5.0/examples/navbar-static/"> <!-- Bootstrap core CSS --> <link href="../assets/dist/css/bootstrap.min.css" rel="stylesheet"> <style> .bd-placeholder-img { font-size: 1.125rem; text-anchor: middle; -webkit-user-select: none; -moz-user-select: none; user-select: none; } @media (min-width: 768px) { .bd-placeholder-img-lg { font-size: 3.5rem; } } </style> <!-- Custom styles for this template --> <link href="navbar-top.css" rel="stylesheet"> </head> <body> <nav class="navbar navbar-expand-md navbar-dark bg-dark mb-4"> <div class="container-fluid"> <a class="navbar-brand" href="#">Tabelle</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarCollapse"> <ul class="navbar-nav me-auto mb-2 mb-md-0"> <li class="nav-item active"> <a class="nav-link" aria-current="page" href="../index.php">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="/add/add.php">Hinzufügen</a> </ul> </div> </div> </nav> <main class="container"> <div class="bg-light p-5 rounded"> <h1>Formular</h1> </div> <p class="h3">Neuen User anlegen </p> <div class="containier"> <div class="item_1"> <form action="" method="post"> <div class="form-group"> <label for="exampleInputText">Firstname</label> <input type="text" name="firstname" class="form-control" id="firstname" aria-describedby="emailHelp" placeholder="Firstname"> </div> <div class="form-group"> <label for="exampleInputText">Lastname</label> <input type="text" name="lastname" class="form-control" id="lastname" aria-describedby="emailHelp" placeholder="Lastname"> </div> <div class="form-group"> <label for="exampleInputText">ID</label> <input type="text" name="id" class="form-control" id="id" aria-describedby="emailHelp" placeholder="ID"> </div> <div class="form-group"> <label for="exampleInputText">Username</label> <input type="text" name="username" class="form-control" id="username" aria-describedby="emailHelp" placeholder="Username"> </div> <input type="hidden" name="aktion" value="speichern"> <input type="submit" value="speichern" class="btn btn-primary"> </form> </div> </div> </main> </body> </html> <script src="../assets/dist/js/bootstrap.bundle.min.js"></script> <?php include("../tabelle.php"); $speichern = new tabelle(); if (isset($_POST['aktion']) and $_POST['aktion']=='speichern'){ echo "erfolgt <br>"; $username = $_POST['username'] ; $id = $_POST['id'] ; $lastname = $_POST['lastname'] ; $firstname = $_POST['firstname'] ; echo ($firstname . " <br> " . $lastname); echo ($id . " <br> " . $username); $var = $speichern->schreiben($firstname,$lastname,$id,$username); echo "<br> ",$var; if($var){ echo "<br>"; echo ($firstname . " <br> " . $lastname); echo ($id . " <br> " . $username); echo "hat geklappt"; }else{ echo "hat nicht geklappt"; } } // ?>
 
Das schaut mir, zusammen mit dem Wortlaut in deinem anderen Thread, doch sehr nach einer Schulaufgabe aus...
 
Tipp: Darf der Benutzer, unter der dein Web-Dienst läuft auf das gewünschte Verzeichnis schreibend zugreifen?
 
Was hast du denn mit dem Code-Tag veranstaltet? Ein Tag pro Zeile?

Du solltest dir auf jeden Fall Gedanken zu deinen Variablen/Funktionen machen. Deine Request-Parameter sind teilweise deutsch, sowie deine Funktionen. Warum der Mix?
 
Okay mein Problem hat sich erledigt, hatte in der tabelle.php einen falschen pfad der Datei drin. Dieser hat dafür gesorgt das er die Datei ja neu schreibt anstatt die vorhandende zu benutzen.

Ne Schulaufgabe ist das nicht,
Studium, aber das letzte mal als ich mit php und html gearbeitet habe ist schon 8-9 jahre her und dementsprechend nichts hängengeblieben und innerhalb von 2-3 Wochen bearbeitungszeit, php erneut zu lernen ist schon irgendwie kurzfristig, wie ich finde.

Man hat mir immer gesagt Sprechende sachen zu nutzen und als Deutscher ist meine Hauptsprache Deutsch.
Der mix kommt daher das ich zufaul bin, und das erste nutze was mir einfällt, und da ich nicht ständig programmiere, fallen mir auch manche englische begriffe nicht schnell ein.
 
Zurück
Oben