PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aus Formular HTML-Seite generieren



munkmill
22-02-2004, 17:34
Hallo an alle hier,

zunächst möchte ich mich vorstellen :) Ich habe mich soeben hier angemeldet, bin Informatik-Student und bereits einige Zeit in den LF.

Nun zu meinem Problem:

Ich möchte ein Formular erstellen (ähnlich, wie die Eingabe hier für neue Threads/Postings), in das man längere Texte eingeben kann.
Dabei sollen alle Eingaben mit Leerzeilen und Formatierungen direkt in eine HTML-Datei geschrieben werden, damit diese Später includet werden kann.

Gibt es dafür irgendwelche Möglichkeiten mit PHP? Eigentlich wäre das ja ein Parser, aber vielleicht bietet PHP sowas ja von Hause aus..

Vielen Dank im Voraus, Jan

Gaert
22-02-2004, 22:48
Hallo Jan,

ich verstehe nicht ganz, was du in das Formular eingeben möchtest...

Wenn du HTML eingeben willst, dann kannst du das ganze ohne es irgendwie zu verarbeiten in eine Datei schreiben.

Beschreib bitte nochmal genau was du möchtest - vielleicht denkst du zu kompliziert.

munkmill
23-02-2004, 10:19
Hallo,

also es soll folgendermaßen funktionieren.

Ein Benutzer gibt einen Text in ein Formularfeld ein (so, wie hier im Forum das Feld, in das ich gerade schreibe).

Wenn er auf "Submit" klickt, wird die Eingabe als HTML in eine Datei geschrieben. Dabei muss er aber keinerlei Tags eingeben, also gibt er z.b. Zeilenumbrüche ganz normale per "Enter" ein und in der Datei muss daraus dann <br> geworden sein.

Ich hoffe, es ist nun besser erklärt.

Jan

P.S.: Es geht um ein Eingabeformular für einen Newsletter, in dem jeder seine Neuigkeiten eintragen kann

SeeksTheMoon
23-02-2004, 10:49
Wenn man keine html-Tags eingibt, dann bleibt außer br nichts mehr übrig; benutz einfach das pre-Tag in Deiner Datei, dann wird der Text so ausgegeben wie er eingegeben wurde

sixfriends
23-02-2004, 13:17
Ist richtig, der Computer kann ja nicht erkennen, ob der Benutzer vorhatte, ob etwas eventuell fett geschrieben werden soll, wenn der das nicht angibt.

Wenn du keine HTML Tags erlauben willst ( <b> wird dann auch als solches ausgegeben):

auszugebenderString = htmlentities(eingegebenerString);
Zeilenumbrüche in <br> umwandeln:

auszugebenderString = nl2br(eingegebenerString);
Ersetzen von Hand:

auszugebenderString = str_replace(zuErsetzen, ErsetzenDurch, eingebenerString);

sixfriends

munkmill
23-02-2004, 18:28
Hi @ll,

also ich werde mal den <pre>-Tag verwenden. Mal schauen, ob das klappt. Da ich unsere Intranet-Seite momentan komplett neu aufbaue, kann es ne Weile dauern, bis ich ne Rückmeldung gebe.
Auf jeden Fall vielen Dank erstmal.

Jan

systemdefender
29-02-2004, 14:55
schau dir mal HTMLArea (http://dynarch.com/mishoo/htmlarea.epl) an.

was du hier in der demo siehst, kannst du noch abspecken.

lässt sich auch super-leicht in eigene projekte einbinden.

cu

corresponder
03-03-2004, 17:00
kommen da auch unwissende mit klar - ich meine wirklich unwissende!

gruss

c.

systemdefender
03-03-2004, 21:12
Original geschrieben von corresponder
kommen da auch unwissende mit klar - ich meine wirklich unwissende!


Da ich unsere Intranet-Seite momentan komplett neu aufbaue
... er hört sich so an als würde er mit zurecht kommen :~/

wenn nicht, wir stehen ihm doch alle bei :D

cu

munkmill
04-03-2004, 05:03
@systemdefender:

Vielen Dank für Dein Vertrauen :D und natürlich auch für den Link ;)
Leider bin ich noch immer nicht an der Stelle angelangt, an der das alles nötig wird... Aber ich werde euch informieren, wenn es dann soweit ist.

Jan

munkmill
03-04-2004, 22:03
Halli und hallo,

nochmals vielen Dank an sixfriends für die Hilfe beim Verzeichnis-Browsing. Inzwischen ist das Intranet soweit, dass man vordefinierte Verzeichnisse durchlaufen und Dateien öffnen kann. Die Zurück-Funktion funzt nun auch :D

Nun geht es also um die News-Funktion. Der Ticker läd inzwischen auch alles, was man benötigt, verlinkt auch auf die Newsseiten. Diese müssen nun noch gefüllt werden und da sind wir beim Ausgangspost dieses Threads, nur eine etwas erweiterte Problemstellung

Das <pre>-Tag ist ok, aber erfüllt z.b. nicht die Zwecke, Listen o.ä. darzustellen. Die Lösung mit HTMLarea ist auch nicht das Wahre, da unter Copyright, und die ganze Sache kommerziell eingesetzt werden soll.

Es geht nun also darum, einen Text eingeben zu können und diesen auch per Formular zu formatieren... Ich hoffe, dass ich an JScript vorbeikomme :/ , denn das gefällt mir nicht, weil es der User abschalten kann.

Vielen Dank für jede Antwort, Jan

slimie
15-04-2004, 15:36
moin,


hat sich das problem mittlerweile erledigt? falls nicht: also ich versteh noch nich so ganz genau welches problem du hast, bzw was du genau machen willst. aber etwas in eine datei schreiben (egal an welcher stelle) und abfragen (auch als html-code) ist im groben und ganzen kein problem. geht auch mit datenbank, das find ich jezt persöhnlich einfacher aber mit datein iset auch kein problem :)

sag mal bescheid, dann gucken wir mal falls du es nich schon hinbekommen hast!


mfg, jens

munkmill
15-04-2004, 17:38
Heidiho,

also das Prob hat sich noch nicht erledigt. Es geht im Großen und Ganzen um ein Eingabesystem, wie dieses hier.
Der Benutzer muss in der Lage sein, formatierten Text in ein Formularfeld einzugeben (z.b. Fett, Kursiv usw.)
Ich habe inzwischen auch schon einige News-Systeme gesehen, die per JavaScript OnClick die nötigen Tags einfügen.
Also eigentlich genau wie das System hier (vB oder wie es auch immer heißt).

Jan

P.S.: Inzwischen bin ich auch von JavaScript nicht ganz abgeneigt, da PHP ja wohl nicht unbedingt prädestiniert für solche Dinge ist.

elrond
16-04-2004, 08:48
hallo allerseits, ich stehe vor einem ähnlichen Problem. Ich habe mich schon dazu entschlossen vB Code zu benutzen.

Existiert irgendwo vieleicht eine fertige php-Klasse für die HTML Generierung, oder schreibt das jeder selbst? Ich weiß, es ist eigentlich nicht so viel...aber schöner wär's schon. ;)

slimie
18-04-2004, 18:33
also das es dafür ne klasse gibt glaube ich nicht. ich hab zumindest noch nie was davon gehört, wäre aber auch unpraktisch weil ja nich jeder die gleichen "kürzel" benutzt....

was der php-code theoretisch nur machen muss, ist z.b. ein [ B ] in < strong > oder < b > ändern (ohne die leerzeichen)! das ist einfach mit php, sehr einfach sogar ;) also wenn jetz irgendwo steht in einer datei [ B ] kann php dadrauss ein < strong > machen und der text wird fett ausgegeben! was php nicht kann: sachen in textfelder (wie z.b. das teil hier worin ich grade schreibe *g*) einfügen!!! das kann nur java oder wenn man langeweile hat kann mans auch mit flash machen (was ich nich so doll finde ausserdem dauerts zu lange) mit javascript geht das ganze aber recht einfach und vorallem schnell.

aus z.b. ein < strong > machst du mit php wie folgt:

text: hallo das ist nur ein test



$text = "[DICK]hallo das ist nur ein test"; # hier der text im board-style hehe

$text = str_replace ("", "<strong>", $text);
$text = str_replace ("", "</strong", $text);
$text = str_replace ("", "<i>", $text);
$text = str_replace ("", "</i>", $text);

echo $text; # gibt dann den formatierten text aus


das mit dem javascript eingabe dingsbums is auch einfach, hab ich jetz aber kein bock das zu tippen alles :D kannst dich aber gerne bei mir melden unter jens@derheine.de oder icq 86829151 oder einfach hier im board dann kann ich dir mit dem script helfen!


mfg,
jens

munkmill
20-04-2004, 18:54
Hm, das mit strreplace is schon klar. Allerdings sollte der User nicht in die Notwendigkeit kommen, irgendwelche Tags zu schreiben (somit könnte er ja gleich die "richtigen" HTML-Tags tippen).

Die JavaScript-Geschichte würde mich da eher interessieren.

Vielen Dank, Jan

slimie
20-04-2004, 21:08
jo das war ja jetz nur ein beispiel wie das dann im php-code aussehen könnte. das umwandeln macht der dann ja automatisch und der user kann mit der javascript geschichte einfach wie hier im board auf z.b. "dick schreiben" klicken und die [DICK] schose wird dann automatisch eingefügt ;)

munkmill
22-04-2004, 07:11
Hi,

gut, ich habe das inzwischen implementiert. Mit JavaScript und PHP funzt die Sache ganz gut. Nur noch ein Problem: Wie kann ich, wenn ich auf den Button für "Fett" drücke, das [B]-Tag an der Cursorposition im Textarea einfügen?

Ich habe zwar eine Funktion dazu, allerdings setzt diese das Tag immer hinter das letzte Zeichen bzw. das erste freie Feld. Sinnvoll wäre es, wenn der User 3 Leerzeilen macht, dass das Tag dann eben in der letzten Zeile erscheint. Momentan wird es dann wie gesagt an die erste freie Stelle gesetzt.

Ich hoffe, ich hab mich nicht zu unverständlich ausgedrückt...

Jan

slimie
22-04-2004, 10:59
hi,


da habe ich keine ahnung ;) das problem ist, ich kenn mich auch nich sooo doll mit java aus! man müsse da irgendwie den text zerschneiden... geht ja nur mit dem

value + eingabe

wie man das jetz genau macht, sorry aber keine ahnung :(


mfg,
jens

Gaert
22-04-2004, 11:29
@munkmill:

Ich kenne leider kein Board, welches das so implementiert hat wie du es gerne möchtest - schau doch mal bei hotscripts.com vorbei und lade dir mal testweise ein paar Boards runter - vielleicht ist da was dabei, wo du du dir was abschauen kannst.

@slimie: keine ahnung was du meinst... übrigens: java != javascript :)

slimie
28-04-2004, 14:12
hehe jo ich weiß aber ich bin meistens zu faul javascript zu schreiben! abgesehen davon kenn ich mich nur n bisel mit javascript aus... ich weiß nich mal genau was wo da die unterschiede liegen ;)