php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.04.2009, 00:27  
Neuer Benutzer
 
Registriert seit: 26.03.2009
Beiträge: 26
Tomchen befindet sich auf einem aufstrebenden Ast
Standard Formularfeld -> per POST-Methode Ergebnis in andere Datei speichern?

Hallo zusammen,

eine Noob-Frage - ich raff' es einfach nicht:

Ich habe ein Formular mit nur 1 Textarea. Die Benutzereingabe wird per "Submit"-Button und der POST-Methode an der Server übergeben. Ich möchte jetzt, dass dieses Ergebnis nicht nur per z.B. "echo" ausgegeben wird (das geht ja soweit...), sondern das soll in eine HTML-Datei gespeichert werden, die ich an anderer Stelle für jeden Besucher ausgeben möchte (=Frontend).

Hintergrund: Es handelt sich um "formatierten" Text, der von dem script "fckeditor" in einem selbstgeschriebenen Mini-Backend/CMS übergeben wird. Die Ausgabe klappt ja per "echo"-Befehl wie gesagt wunderbar, aber das bringt mir ja nicht viel, wenn ich damit "dauerhaften content" in einer Datei hinterlegen will.

Geht das überhaupt? Hab mir vorhin fopen/fwrite/fclose angesehen, aber ich blicke nicht mehr ganz durch...

Ich wäre für jeden Schubs in die richtige Richtung sehr dankbar.

Danke fürs Lesen und Liebe Grüße,
Tommy.

Geändert von Tomchen (19.04.2009 um 00:34 Uhr).
Tomchen ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.04.2009, 00:31  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von Tomchen
Geht das überhaupt? Hab mir vorhin fopen/fwrite/fclose angesehen, aber ich blicke nicht mehr ganz durch...
Ja, damit geht das.
Was Du in _POST findest, sind ganz normale Zeichenketten aus PHP-Sicht. Du kannst damit alles tun, was Du auch mit anderen Zeichenketten tun kannst.
David ist offline  
Alt 19.04.2009, 00:35  
Neuer Benutzer
 
Registriert seit: 26.03.2009
Beiträge: 26
Tomchen befindet sich auf einem aufstrebenden Ast
Standard

@David: Danke, dann schaue ich mir das Thema nochmal an...

LG
Tommy
Tomchen ist offline  
Alt 19.04.2009, 02:21  
Neuer Benutzer
 
Registriert seit: 26.03.2009
Beiträge: 26
Tomchen befindet sich auf einem aufstrebenden Ast
Standard

Juhuu! Ich habe es hinbekommen, die Daten in eine externe .html-Datei auf dem Server zu schreiben, und diese auch in der korrekten Formatierung wieder auszulesen - Danke nochmal für den "Schubs". Toll, dass das schonmal geht.

Wenn ich es nicht etwas eilig hätte, würde ich nicht weiter fragen, aber ich kämpfe noch mit Folgendem: Die HTML-Datei, welche die Formulareingabe final speichert, "hängt" die eingegebenen Daten jeweils nur "hinten dran". Die HTML-Datei soll aber komplett überschrieben werden, weil der Admin den Inhalt im Endeffekt vorher dargestellt bekommt, und einfach bearbeiten können soll.

Hier mal die Codes, falls jemand helfen möchte:

Erstmal die aufruf.php, mit welcher der "fckeditor" aufgerufen wird:

PHP-Code:
<?php
include_once("fckeditor/fckeditor.php") ;
?>
<html>
<head>
  <title>FCKeditor - Sample</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
  <form action="sampleposteddata.php" method="post" target="_blank">
<?php
$oFCKeditor 
= new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath '/fckeditor/' ;
$oFCKeditor->Config['EnterMode'] = 'br';
$oFCKeditor->Value '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
$oFCKeditor->Create() ;
?>
    <br>
    <input type="submit" value="Submit">
  </form>
</body>
</html>
Das geht dann an die sampleposteddata.php, welche auch zugleich die Datei namens aktuelles.html mit Inhalt füllt:

PHP-Code:
<?php
$sValue 
stripslashes$_POST['FCKeditor1'] ) ;
echo 
"Tommys Test: Die übergebenen Werte lauten:<br>";
echo 
$sValue;

$filename 'aktuelles.html';
$somecontent $sValue;

// Sichergehen, dass die Datei existiert und beschreibbar ist
if (is_writable($filename)) {

    
// Wir öffnen $filename im "Anhänge" - Modus.
    // Der Dateizeiger befindet sich am Ende der Datei, und
    // dort wird $somecontent später mit fwrite() geschrieben.
    
if (!$handle fopen($filename"a")) {
         print 
"Kann die Datei $filename nicht öffnen";
         exit;
    }

    
// Schreibe $somecontent in die geöffnete Datei.
    
if (!fwrite($handle$somecontent)) {
        print 
"Kann in die Datei $filename nicht schreiben";
        exit;
    }

    print 
"Fertig, in Datei $filename wurde $somecontent geschrieben";

    
fclose($handle);

} else {
    print 
"Die Datei $filename ist nicht schreibbar";
}

?>
Was muss ich ändern, um die aktuelles.html bei jedem Submit-Vorgang neu zu beschreiben, anstatt nur zu "ergänzen"?


Ich nehme ja an, dass es hiermit was zu tun hat:
// Der Dateizeiger befindet sich am Ende der Datei, und
// dort wird $somecontent später mit fwrite() geschrieben.
Aber, wie meist (wenn ich überhaupt mal frage), ist es spät, ich sitze schon lange, und... bin PHP-Noob... Saublöde Kombination, nicht wahr? ,-))

Danke für's Lesen

LG
Tommy

Geändert von Tomchen (19.04.2009 um 02:47 Uhr).
Tomchen ist offline  
Alt 19.04.2009, 09:50  
Erfahrener Benutzer
 
Benutzerbild von wassereimer
 
Registriert seit: 06.04.2009
Beiträge: 105
PHP-Kenntnisse:
Anfänger
wassereimer befindet sich auf einem aufstrebenden Ast
wassereimer eine Nachricht über ICQ schicken wassereimer eine Nachricht über MSN schicken
Standard

Änder das
Code:
    if (!$handle = fopen($filename, "a")) {
mal in
Code:
    if (!$handle = fopen($filename, "w")) {
Google ist übrigens echt super. - Musst nur fopen eingeben und es kommt als erstes das: PHP: fopen - Manual

Zitat:
'r' Öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei.
'r+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.
'w' Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.
'w+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a' Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a+' Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
wassereimer ist offline  
Alt 19.04.2009, 09:58  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Anstatt w würde ich r+ benutzen.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 19.04.2009, 10:07  
Erfahrener Benutzer
 
Benutzerbild von wassereimer
 
Registriert seit: 06.04.2009
Beiträge: 105
PHP-Kenntnisse:
Anfänger
wassereimer befindet sich auf einem aufstrebenden Ast
wassereimer eine Nachricht über ICQ schicken wassereimer eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von litterauspirna Beitrag anzeigen
Anstatt w würde ich r+ benutzen.
Darf ich fragen wieso?
Kann ja sein das ich nen Denkfehler habe oder etwas nicht bedacht habe... Möcht ja dazu lernen.
wassereimer ist offline  
Alt 19.04.2009, 12:20  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

r+ würde ich in diesem Fall nicht empfehlen, da die bisherigen Daten nicht gelöscht sondern nur überschrieben werden. Wenn die bisherigen Daten länger als die neuen sind, bleibt dadurch am Ende der Datei Müll stehen.
(Dem könnte man zwar nachträglich mit ftruncate() entgegenwirken ...aber wozu?)

edit: also in diesem Fall 'w' verwenden
Zitat:
'w' Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.

Geändert von David (19.04.2009 um 12:43 Uhr).
David ist offline  
Alt 19.04.2009, 12:26  
Erfahrener Benutzer
 
Benutzerbild von wassereimer
 
Registriert seit: 06.04.2009
Beiträge: 105
PHP-Kenntnisse:
Anfänger
wassereimer befindet sich auf einem aufstrebenden Ast
wassereimer eine Nachricht über ICQ schicken wassereimer eine Nachricht über MSN schicken
Standard

Achso, das stimmt natürlich.
wassereimer ist offline  
Alt 19.04.2009, 16:43  
Neuer Benutzer
 
Registriert seit: 26.03.2009
Beiträge: 26
Tomchen befindet sich auf einem aufstrebenden Ast
Standard

Vielen lieben Dank für Eure Antworten, es hat geklappt!


Natürlich hab ich google benutzt, aber ich habs trotzdem nicht gerafft


LG
Tommy
Tomchen ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
.ini Datei öffnen >>> ändern >>> speichern Kallewaze Scriptbörse 3 18.03.2009 11:56
[Erledigt] URL als Datei speichern Hape42 PHP Tipps 2009 17 04.01.2009 17:59
Wert in externer Datei speichern Abakay PHP Tipps 2008 6 04.12.2008 18:56
GET Request in Datei speichern noreux PHP Tipps 2008 5 11.11.2008 20:09
txt datei editieren und unter anderen namen speichern hugo25m Scriptbörse 10 07.11.2008 12:37
Text in Datei Speichern wie? Zero0090 PHP Tipps 2008 2 28.09.2008 10:52
Schleifenoutput in datei Speichern thecracked PHP Tipps 2008 21 20.06.2008 10:33
Probleme mit der post methode PHP Tipps 2005-2 19 28.09.2005 15:28
wiedermal ein kleines problem mit der post methode Tic Rederon PHP Tipps 2005-2 4 23.08.2005 08:59
benutzereingaben in einer datei speichern PHP Tipps 2005 1 27.01.2005 08:16
[Erledigt] Datei speichern - via header - O Byte PHP-Fortgeschrittene 1 15.01.2005 17:13
Idee zum Speichern einer Datei PHP Tipps 2005 6 10.01.2005 22:36
[Erledigt] Kann man andere Werte als Strings in Array speichern? PHP Tipps 2004 2 03.11.2004 15:00
Nach datei Upload den namen der datei in DB speichern?? PHP Tipps 2004 14 17.07.2004 15:38
Ergebnis aus PHP in HTMl speichern funzt nicht als Cronjob PHP Tipps 2004 5 28.06.2004 21:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
cron \php > html\ \0 byte\, php ergebnis seitenquelltext in andere datei speichern, wie schaut der string für post methode aus

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum