2016-04-17 13 views
-1

Für meine Website können Sie hier unter http://desire.site88.net ganz unten sehen Sie mein Formular. Wenn du mit dem Formular fertig bist und auf "Senden" klickst, werden die Daten per Email an desire.site88.net/post.php übermittelt. Was ich neugierig bin, ist, wie ich es dauerhaft mache? Wenn der Benutzer Daten an post.php übermittelt, möchte ich, dass er dort bleibt. Ich suche nichts Sicheres oder Unhackbares, nur etwas, das ich benutzen kann, um Mitglieder zu rekrutieren. Hier ist mein CodeKann ich meine post.php speichern die Daten dauerhaft?

<?php 

$username = $_POST['username']; 
$email = $_POST['email']; 
$message = $_POST['message']; 

// what it will say down below 
echo $username. ' has an email of </br>'; 

echo $email. ' and wants to join because </br>'; 

echo $message. '</br></br>'; 

<form method="post" action="test.php"> <div class="row 50%"> <div class="6u 12u(mobile)"><input type="text" name="username" placeholder="Username" /></div> <div class="6u 12u(mobile)"><input type="email" name="email" placeholder="Email" /></div> </div> <div class="row 50%"> <div class="12u"><textarea name="message" placeholder="Application" rows="6"></textarea></div> </div> <div class="row"> <div class="12u"> <ul class="actions"> <li><input type="submit" value="submit" /></li> </ul> </div> </div> </form>

+1

Permanent für wen? Dieser Benutzer sieht das gleiche dauerhaft? _Alle_ Benutzer sehen, dass die Benutzer dauerhaft denken? Sie sammeln sie für später? Persistenz bedeutet normalerweise, in eine Datenbank zu schreiben, aber abhängig davon, was Sie wirklich meinen, könnte es auch [Speichern in der Sitzung] bedeuten. (Http://php.net/manual/en/reserved.variables.session.php) –

+0

Zuerst : Willkommen bei StackOverflow! Besuche [frag] und nimm eine [Tour]! – manniL

+0

Willkommen bei Stack Overflow! Bitte nehmen Sie die [Tour] (http://stackoverflow.com/tour), schauen Sie sich um und lesen Sie die [Hilfe] (http://stackoverflow.com/help), insbesondere [Wie frage ich eine gute Frage?] (http://stackoverflow.com/help/how-to-ask) –

Antwort

0

So Ihren vorherigen Kommentar zu lesen über die Suche nach einer einfachen Möglichkeit, Daten zu sammeln, ohne die Notwendigkeit für die Sicherheit, empfehle ich es in einer Textdatei zu speichern für jetzt, und vielleicht später mit XML, zu dem Sie später nachforschen können.

Code in eine Textdatei zu speichern:

$filePath = $username."-".time().".txt"; 
$myFile = fopen($filePath, "w"); 
fwrite($myFile, ("username: ".$username."\n")); 
fwrite($myFile, ("email: ".$email."\n")); 
fwrite($myFile, ("message: ".$message."\n")); 
fclose($myFile); 

dass Code eine Datei mit einem eindeutigen Namen jedes Mal speichern wird es gespeichert wird, und es würde im gleichen Verzeichnis wie die PHP-Seite befindet.

lassen Sie mich wissen, ob das für Sie gearbeitet oder wenn Sie irgendwelche Zweifel haben :)

Edited: zuerst erklären, wie die Funktion fopen() funktioniert. Wenn Sie "w" in den zweiten Parameter setzen, bedeutet dies, dass die Funktion eine neue Datei mit den von Ihnen angegebenen Informationen erstellt. Wenn die Datei bereits existiert, wird sie neu geschrieben, was bedeutet, dass frühere Informationen in der Datei nicht mehr vorhanden sind. Aus diesem Grund habe ich den $ filePath eindeutig gemacht, so dass kein Überschreiben stattfindet. Ich werde jetzt ein bisschen weiter und umfassen die Protokolle in einem neuen separaten Datei gehen, die für zusätzliche Sicherheit außerhalb des Stammordner ist:

//++++ path obtained to your root folder 
$root_directory_path = $_SERVER['DOCUMENT_ROOT']; 
//++++ creating the path for the logs in a new folder outside 
//++++ the root director 
$filePath = $root_directory."/../my_logs/".$username."-".time().".txt"; 

//++++ starting the creation of the file 
$myFile = fopen($filePath, "w"); 

//++++ inputing information into the file 
$inputString = "username: ".$username."\n"; 
fwrite($myFile, $inputString); 

$inputString = "email: ".$email."\n"; 
fwrite($myFile, $inputString); 

$inputString = "message: ".$message."\n"; 
fwrite($myFile, $inputString); 

//++++ closing the file/finalizing the creation of the file 
fclose($myFile); 

ich Ihre Website besucht und es scheint, dass Sie Probleme mit den Berechtigungen haben dass die Seite dir gibt. Wenn Sie weiterhin Textdateien im Stammverzeichnis verwenden möchten, können Sie dem unten stehenden Code folgen. Beachten Sie jedoch, dass jeder die Benutzer anzeigen kann, die seit dem Speichern der Informationen in einem Unterordner des rood-Verzeichnisses registriert sind Übergang in eine sichere Datenbank:

$filePath = "/myLogs/".$username."-".time().".txt"; 
$myFile = fopen($filePath, "w"); 
fwrite($myFile, ("username: ".$username."\n")); 
fwrite($myFile, ("email: ".$email."\n")); 
fwrite($myFile, ("message: ".$message."\n")); 
fclose($myFile); 
+0

Blindführung Blind – naomik

+0

@naomik Ich würde gerne wissen, warum, ich bin immer offen, etwas Neues zu lernen :). Wenn es um Sicherheit geht, hat er erwähnt, dass dies kein Faktor in seiner Gleichung war. Wenn er etwas sicherer sein wollte, konnte er es in einer Datei speichern, die sich außerhalb seines Stammverzeichnisses befand. – Webeng

+0

Es speichert die Informationen, aber nur um sicherzustellen, dass. Ich muss noch Echo in diesem Code hinzufügen, oder? – Jayy

Verwandte Themen