Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Formular Daten speichern (nicht in einer DB)“

masterb44hz

Lernender

Hallo,

ich stehe vor folgendem Problem und zwar möchte ich die einige Daten, die in ein Formular eingegeben wurden speichern, sodass ich sie später für andere php-seiten wieder aufrufen kann.

Es handelt sich im genauen um die Einlogdaten für MySQL, deshalb kommt eine Speicherung in den DB selbst natürlich nicht in Frage. Aber weil es eben die Logindaten sind, sollte der Zugriff nicht zu einfach sein.

Wie gestaltet sich das im genauen? Hat das was mit .htaccess zu tun??

Danke für jede Hilfe :)
 

sokie

Mod | Web

AW: Formular Daten speichern (nicht in einer DB)

dafür kannst du dir doch einfach eine php-Datei anlegen die du bei bedarf in die anderen Seiteneinfach includest.
inhalte zB:
Code:
<?php
$db_serv = "localhost";
$db_name = "db001";
$db_user = "username";
$db_pass = "geheim";
//...
?>
 

masterb44hz

Lernender

AW: Formular Daten speichern (nicht in einer DB)

Jep das ist klar ;) aber wie sieht das dann mit der Sicherheit aus?

Und außerdem: Die Daten sind das Ergebnis aus einem Formular, wie bekomme ich das also gespeichert.

Was ich noch nicht erwähnt hatte, weil es bisher immer sofort abgewunken wurde, ist das ich mich an einem sehr simplem cms für eigene Zwecke versuche. Da das CMS für mehrere Seiten zum einsatz kommen soll, habe ich eine kleine Installation geproggt, wobei eben auch die MySQL daten eingegeben werden. Bloß das Problem bleibt, wie bekomm ich die gespeichert.

Code:
<?php
$dbhost = $_POST['dbhost'];
$dbuser = $_POST['dbuser'];
$dbpass = $_POST['dbpass'];
$dbname = $_POST['dbname'];
?>
...so geht es nämlich nicht...
 

exo

Aktives Mitglied

AW: Formular Daten speichern (nicht in einer DB)

hmm mit fopen() und co. wäre es doch wohl am sinnvollsten eine Datei zu bearbeiten oder?

Schau dir mal das hier an, vielleicht hilft es dir ja weiter --> PHP: Dateisystem - Manual
 

sokie

Mod | Web

AW: Formular Daten speichern (nicht in einer DB)

Jep das ist klar ;) aber wie sieht das dann mit der Sicherheit aus?

Und außerdem: Die Daten sind das Ergebnis aus einem Formular, wie bekomme ich das also gespeichert.

Was ich noch nicht erwähnt hatte, weil es bisher immer sofort abgewunken wurde, ist das ich mich an einem sehr simplem cms für eigene Zwecke versuche. Da das CMS für mehrere Seiten zum einsatz kommen soll, habe ich eine kleine Installation geproggt, wobei eben auch die MySQL daten eingegeben werden. Bloß das Problem bleibt, wie bekomm ich die gespeichert.

Code:
<?php
$dbhost = $_POST['dbhost'];
$dbuser = $_POST['dbuser'];
$dbpass = $_POST['dbpass'];
$dbname = $_POST['dbname'];
?>
...so geht es nämlich nicht...

dafür musst du eine Art Konfigurationsdatei anlegen, in der Diese Daten gespeichert werden.
das muss eben eine php Datei sein, damit sie nichtim Browser angezeigt wird, sondern durch den Server interpretiert (Beim direktaufruf wirddann eben nur eine weisse Seite gezeigt, oder nur eine Meldung ausgegeben.

nachdem die daten über ein Formular eingegeben worden sind, werden die in dieser Datei gespeichert.
wie mein Vorredner schon schrieb mit den Methoden fopen(), fwrite() etc.

...das ich mich an einem sehr simplem cms für eigene Zwecke versuche...
wenn du es 'für eigene Zwecke' brauchst, benötigst du doch keine Installationsroutine mit eingabe der Daten per maske. diese kannst du doch schon vorab in eine Konfigurationsdatei(s #2) schreiben und auf den Server legen...
 
Zuletzt bearbeitet:

masterb44hz

Lernender

AW: Formular Daten speichern (nicht in einer DB)

hey thx :)
gucke mir das gleich alles genauer an.

@Installationsroutine: bin da eigen ;) Finde das immer hässlich mich durch code zu wühlen wenns auch so geht.. und bei der Masse der Seiten wird sich das denke schon lohnen ;), da nimmt man anfang gerne ein bisschen mehr coding auf sich.
 

masterb44hz

Lernender

AW: Formular Daten speichern (nicht in einer DB)

Klappt fast, bis auf eine Sache:

Ich habe folgenden Code zur Erstellung der config.php:

irgendwas.php
Code:
<?php
$filename = '../includes/config.php';
$content = "<?php
            $dbhost = ".$_POST['dbhost'].";
            $dbuser = ".$_POST['dbuser'].";
            $dbpass = ".$_POST['dbpass'].";
            $dbname = ".$_POST['dbname'].";
            ?>";

if(is_writable($filename)){
    if(!$handle = fopen($filename, 'w')){
        echo 'Kann die Datei $filename nicht öffnen.';
        exit;
    }
    if (!fwrite($handle, $content)) {
        print "Kann in die Datei ".$filename." nicht schreiben";
        exit;
    }
    echo "Fertig, in Datei ".$filename." wurde ".$content." geschrieben";
    fclose($handle);
}else{
    echo "Die Datei ".$filename." ist nicht schreibbar";
}
?>

Das Ergebnis ist jedoch folgendes:

config.php
Code:
<?php
             = localhost;
             = root;
             = ;
             = blub;
            ?>

Richtig sollte es so sein:

config.php
Code:
<?php
  [COLOR=Red]$dbhost[/COLOR] = localhost;
  [COLOR=Red]$dbuser[/COLOR] = root;
  [COLOR=Red]$dbpass[/COLOR] = ;
  [COLOR=Red]$dbname[/COLOR] = blub;
            ?>

Wie bekomme ich das hin, dass die config.php so aussieht?? Konnte auf php.net leider nichts finden dazu...
 

r3nt5ch3r

~ Allround pG ~

AW: Formular Daten speichern (nicht in einer DB)

mit " werden die Vars ersetzt, benutze ' für Strings @Z.3!

(ich würds mit seria lize (http://de3.php.net/seria lize) machen, falls ich überhaupt ma so etwas katastrophales machen würde xD)
 
Zuletzt bearbeitet:
G

GreenTurtle

Guest

AW: Formular Daten speichern (nicht in einer DB)

Noch eine kleine Anmerkungen. So sollte die $content-Variable besser aussehen:

PHP:
$content = '<?php
            $dbhost = "'.$_POST['dbhost'].'";
            $dbuser = "'.$_POST['dbuser'].'";
            $dbpass = "'.$_POST['dbpass'].'";
            $dbname = "'.$_POST['dbname'].'";
 ?>';

Zuweisungen von Text in Variablen ohne umschließende Anführungszeichen ist etwas unschön und sollte eigentlich Notices/Warnings zur Folge haben, auf die du sicher verzichten kannst. ;-)
 

Christian

verpeilt & verschallert

AW: Formular Daten speichern (nicht in einer DB)

Noch eine kleine Anmerkungen. So sollte die $content-Variable besser aussehen:

PHP:
$content = '<?php
            $dbhost = "'.$_POST['dbhost'].'";
            $dbuser = "'.$_POST['dbuser'].'";
            $dbpass = "'.$_POST['dbpass'].'";
            $dbname = "'.$_POST['dbname'].'";
 ?>';

Zuweisungen von Text in Variablen ohne umschließende Anführungszeichen ist etwas unschön und sollte eigentlich Notices/Warnings zur Folge haben, auf die du sicher verzichten kannst. ;-)

Kannst Du mir den Sinn erklären?
Das wird niemals funktionieren!
 
G

GreenTurtle

Guest

AW: Formular Daten speichern (nicht in einer DB)

Sicher funktioniert das! Ich formatiere dir den Code einfach mal etwas um, dann versteht man's denke ich besser. Der eigentliche String, der in die Datei geschrieben wird, wird von den Hochkommas markiert - die Anführungszeichen darin werden dabei einfach nur so in die Datei übernommen:

PHP:
$content = '<?php ';
$content .= '$dbhost = "' . $_POST['dbhost'] . '"; ';
$content .= '$dbuser = "' . $_POST['dbuser'] . '"; ';
$content .= '$dbpass = "' . $_POST['dbpass'] . '"; ';
$content .= '$dbname = "' . $_POST['dbname'] . '"; ';
$content .= '?>';
So würde jetzt zwar alles in einer Zeile stehen, aber es würde genauso funktionieren wie das erste, das ich geschrieben habe.

Wenn du $content dann wie oben beschrieben in eine Datei schreibst, sieht diese dann z.B. so aus:
PHP:
<?php $dbhost = "localhost"; $dbuser = "root"; $dbpass = ""; $dbname = "blub"; ?>
 

Christian

verpeilt & verschallert

AW: Formular Daten speichern (nicht in einer DB)

Ah, hatte nen kleinen Denkfehler. Wird vll funktionieren, aber der Sinn der Sache wird mir vermutlich auf ewig verschlossen bleiben.
 
G

GreenTurtle

Guest

AW: Formular Daten speichern (nicht in einer DB)

Sinn der Sache ist, dass in deiner config.php anschließend valider PHP-Code steht und nicht so Code, der zwar funktioniert, das aber nur tut, weil PHP so tolerant gegenüber unsauberer Programmierung ist. Strings (Zeichenketten) werden nunmal in Anführungszeichen gestellt, wenn man sie Variablen zuweisen will...
Aber besonders aufgeschlossen scheinst du meinen Verbesserungsvorschlägen ja sowieso nicht zu sein - von daher darfst du's natürlich auch so (unschön) lassen wie du es jetzt schon hast...
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.155
Beiträge
2.581.855
Mitglieder
67.221
Neuestes Mitglied
opaklaus
Oben