If you are not registered or logged in, you may still use these forums but with limited features. Show recent topics
  [Search] Search   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [FAQ]  FAQ 
[Register] Register / 
[Login] Login 
Advanced Guestbook 2.21: Preview  XML
Forum Index » German Forum
Author Message
Timo
Beginner

Joined: 25/01/2002 15:16:39
Messages: 11
Offline

Ich wollte für meine Seite das GB (2.21) eigentlich so umbauen, daß man immer erst in die Preview kommt, bevor man den Text abschicken kann, so daß die Leute gezwungen sind, ihren Text nochmal zu überprüfen.
Dabei ist mir aufgefallen, daß wenn ich auf Zurück drücke (ist ja ein history.back Link). Der vorher geschriebene Text gelöscht wird (IE 5.5, Netcaptor).
Bei "Achims Guestbook" (www.lkcc.org/achim) wird der Inhalt immer per POST Formular an die Preview und zurück übergeben. Nun hab ich mich gefragt, ob ich das nicht irgendwie hinbekomme, daß zu programmieren. Deshalb wollte ich hier mal fragen (vor allem die Developer) wie ich da am besten vorgehen kann?!

Hab mir gestern den ganzen Abend den Code angeschaut, aber das Guestbook ist doch sehr komplex, und deshalb hatte ich da so meine Schwierigkeiten durchzusteigen.

Danke für alle Hinweise.
Anonymous



1) history.back

Das liegt an den gesendeten headers
Entferne alle 'pragma: no-cache, expire, etc.' aus den templates

2) Preview
Entferne einfach den 'Submit'-Button (Abschicken) aus dem Formularfeld

3) Der Inhalt wird per 'POST' abgeschickt oder sehe ich das etwa falsch?
Timo
Beginner

Joined: 25/01/2002 15:16:39
Messages: 11
Offline

zu 1.) wenn's dann auf allen Browsern klappt, ok. Werd ich mal testen.

zu 2.) Das war auch meine Idee... :)

zu 3.) Ja, von NeuerEntrag -> Preview schon. Aber von Preview -> EintragVerbessern ja leider nicht. Aber schöner wär's eigentlich, da solche Probleme dann nicht auftauchen.
Anonymous



1.) sollte miot allen browsern funktioneren, die JS 1.0 unterstützen (das sind praktisch alle gängigen, selbst Opera)

2.) abgehakt

3.) Ich hab' das jetzt verstanden was du meinst. Da wird aber nicht so einfach werden. Vielleicht gibt's ja doch einen genialen Trick.
Timo
Beginner

Joined: 25/01/2002 15:16:39
Messages: 11
Offline

zu 1.) Du meinst history.back funktioniert mit allen gängigen Browser... das ist klar. Aber ob überall dann auch der Text drin stehen bleibt, das war vielmehr meine Frage.
Timo
Beginner

Joined: 25/01/2002 15:16:39
Messages: 11
Offline

Auf der Seite für den neuen Eintrag und auf der Preview Seite sind keine Meta Tag bzgl. pragma: no-cache, expire. Trotzdem werden die Daten bei mir beim Zurück Link gelöscht.
Timo
Beginner

Joined: 25/01/2002 15:16:39
Messages: 11
Offline

Hab eine Lösung gefunden, die ist jedoch noch nicht 100% perfekt, da es Probleme mit dem parsen von Sonderzeichen wie " ' \ gibt, da diese Zeichen in der Preview schon umgewandelt werden und ein vorangehendes Backslash bekommen, damit die MySQL Datenbank keine Probleme macht. Beim Hin- und Hergeben des Textes zwischen Preview und NewEntry kommt jedesmal ein weiterer Backslash dazu. Aber vielleicht finde ich dazu ja auch noch was.

Hier meine Lösung:

In der form.php und allen form_xxx.php müssen für die inputs und textareas value gesetzt werden, z.B.:


In der preview_entry.php hab ich den Code des Zurück Buttons wie folgt geändert:


Dann bei der addentry.php diesen kompletten Block hinzufügen (vor dem anderen if Block!):


Das war nur Copy&Paste des alten Blockes mit den Änderungen in der if Bedinung und bei process() ganz unten.

Probleme wie gesagt nur bei Sonderzeichen und aber auch bei der URL, von der Preview zurück zum Editieren, sind dann zwei mal http:// vor der URL: http://http://www.meinedomain.de. Wenn man dann noch mal in die Preview geht, wird die Domain gelöscht, da ungültig.
Timo
Beginner

Joined: 25/01/2002 15:16:39
Messages: 11
Offline

Ok... jetzt hab ich's:
Im if-Block, dort wo die HTTP_POST_VARS gesetzt werden einfach:



statt des vorherigen:



Und ähnlich wie eben, das die URL Variable ändern:


Fertig!!
matts
Newbie

Joined: 27/01/2002 17:57:39
Messages: 1
Offline

Hallo Timo,

Ich kann Deinen Änderungen nicht ganz folgen; ich habs probiert und mir tun sich einige Fragen auf, da es bei mir nicht funktioniert (liegt aber vielleicht auch daran dass ich kein PHP kann):

Zu den Änderungen in addentry.php

* ist es richtig, das die variable zB. gb_post=>name aus $HTTP_POS_VARS("name") versorgt wird? Das entsprechende input feld im form.php heisst ja gb_name.

* Du fügst einen if Block ein wenn gb_back gilt, welcher implizit den Eingabeblock erzeugt. Der andere if-Block tut das selbe, womit zwei Eingabeblöcke vorhanden sind (wenn gb_back); sollte hier nicht mit "else" der andere im falle von gb_back ausgeschlossen werden?


Solltest Du vielleicht noch eine Idee haben warum Deine Änderungen bei mir nicht funktioniert bin ich natürlich dankbar.

Matts.
Timo
Beginner

Joined: 25/01/2002 15:16:39
Messages: 11
Offline

matts wrote:
* ist es richtig, das die variable zB. gb_post=>name aus $HTTP_POS_VARS("name") versorgt wird? Das entsprechende input feld im form.php heisst ja gb_name.


Welche Guestbook Version hast Du? Bei mir heißen die Input Felder einfach name="name", name="email" usw.
Die Klassen Variabeln übernehmen ansonsten die Werte der Variablen, die durch das POST Formular übergeben werden.

matts wrote:
* Du fügst einen if Block ein wenn gb_back gilt, welcher implizit den Eingabeblock erzeugt. Der andere if-Block tut das selbe, womit zwei Eingabeblöcke vorhanden sind (wenn gb_back); sollte hier nicht mit "else" der andere im falle von gb_back ausgeschlossen werden?


Klar! Hab ich nur nicht explizit dazu geschrieben. In diesem Falle sogar mit "else if", da ja noch ein dritter Block vorhanden ist.

matts wrote:
Solltest Du vielleicht noch eine Idee haben warum Deine Änderungen bei mir nicht funktioniert bin ich natürlich dankbar.


Beschreib mal genau was bei dir passiert, bzw. nicht passiert ;)

BTW: Meine Änderungen sind wie Du schon bemerkt hast, keine Schritt für Schritt Anweisungen, sondern waren mehr als Denkanstoss gedacht. Kann also sein, daß ich ein paar Kleinigkeiten vergessen habe. Aber Fragen beantworte ich gerne.
Timo
Beginner

Joined: 25/01/2002 15:16:39
Messages: 11
Offline

Nachtrag: von Version 2.21 zu Version 2.3 haben sich die Variabelnamen geändert. Von z.B. name -> gb_name, location -> gb_location usw. Das müßt ihr natürlich entsprechend modifizieren, copy&paste von meinem geposteten Text wird nicht reichen, wenn ihr die Version 2.3 verwendet.
Anonymous



Kannst du mal vielleicht die URL posten, wo die modifizierte Version läuft.
Scheint ja ein interessanter 'Hack' zu sein
Timo
Beginner

Joined: 25/01/2002 15:16:39
Messages: 11
Offline

Nö, möchte ich hier nicht öffentlich posten, aber Du kannst mir ne Email schreiben.
 
Forum Index » German Forum
Go to:   
Based on the open source JForum