• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Formulardaten an einen Unterframe weitergeben ??

freezer

New member
Hi Leute,

ich bin gerade daran für meine Prüfung in Informatik einen Chat zu erstellen.
Die erste Seite (der Index) begrüßt den User und fordert ihn auf einen Usernamen einzugeben. Mit Enter wird das Formular abgeschickt und die nächste Datei wird geöffnet.

Die nächste Datei (x_chatfenster.php) besteht aus 2 Frames:
HTML:
<html>
<frameset rows="3*,*">
	<frame src="x_ausgabe.php" name="ausgabe" noresize>
	<frame src="x_eingabe.php" name="eingabe" noresize>	
</frameset>
</html>

Der obere Frame (x_ausgabe.php) ist für die ausgabe der Nachrichten zuständig, während der untere Frame (x_eingabe.php) für das Eintippen des Textes und das Senden der Nachricht zuständig ist.

Die bereits vorhandenen Nachrichten speichere und rufe ich nicht mittels einer Datenbank auf sondern mit einer Textdatei. (Ja ich weiß nicht wirklich klasse aber darum gehts nicht)

Mein Problem ist jetzt folgendes:
Ich übergebe den einzugebenden Usernamen von der ersten Seite (x_index.htm) an die zweite Seite (x_chatfenster.php) welche aus den beiden Dateien x_ausgabe.php und x_eingabe.php besteht.
Wenn ich nun aber versuche in x_eingabe.php den Usernamen aufzurufen mithilfe $_POST["username"] bekomm ich einen Error weil mein Programm die Variable nicht kennt.

Wie kann ich den Usernamen von meiner ersten Seite an einen Frame des Dokuments x_chatfenster.php senden um mit ihm arbeiten zu können?

Ich hoffe ich konnte mein Problem möglichst genau schildern und hoffe auf hilfreiche Antworten! :)
 
verzichte auf die frames und es geht ohne probleme

Wie kann ich den Usernamen von meiner ersten Seite an einen Frame des Dokuments x_chatfenster.php senden um mit ihm arbeiten zu können?
x_chatfenster.php bekommt ja fie parameter, x_eingabe.php und x_ausgabe.php nicht
da x_chatfenster.php sie aber bekommt, kannst du sie aber an x_eingabe.php und x_ausgabe.php weitergeben.

eine andere möglichkeite wären eine session, an der du den usernamen speicherst.

aber für das von dir beschriebene ist der umbau auf eine framefreie variante kein problem und die bevorzugte lösung.
 
zunächst einmal: vielen dank für deine antwort! :)
geht es nicht irgendwie trotz frames?
möchte jetzt eigentlich nicht mein ganzes programm umwerfen.
wie kann ich die parameter von x_chatfenster.php an x_eingabe.php weitersenden?
 
möchte jetzt eigentlich nicht mein ganzes programm umwerfen.
was musst du dafür großartig umwerfen?
seit wann schreibt man eine prüfung eigentlich zu hause?

wie kann ich die parameter von x_chatfenster.php an x_eingabe.php weitersenden?
in x_chatfenster.php kannst du sie auslesen? Ja! richtig!
in x_chatfenster.php generierst du das html in dem x_eingabe.php aufgerufen wird?
kannst du dann die parameter die für x_eingabe.php gedacht sind und in x_chatfenster.php bekannt sind nicht gleich mit in den aufruf generieren? Ja!
 
also mit prüfung ist die präsentationsprüfung (5.Prüfungsfach) beim Abitur in BaWü gemeint.
Du musst 4 Themen einreichen und es wird eine woche davor eins bekanntgegeben, welches drannkommt. Dieses stellst du dann vor und danach wird noch über die 2 Jahre geprüft.
Ich bereite also schonmal das gröbste vor.

sorry, aber ich muss mir sehr viel selbst beibringen da wir in der Schule nur die wesentlichsten Grundlagen gelehrt bekamen und weiß jetzt auch nicht wie man die parameter gleich mit in den aufruf des frames generiert.
Könntest du das bitte erläutern?
 
Servus zusammen,

da ich hier als "Frischfleisch" noch durchgehe und wohl an der einen oder anderen Stelle erst noch "abhängen" muss, mische ich gleich mal mit - obwohl das Thema schon einen Hauch älter ist.

Du kannst in Deiner Hierarchie selbstverständlich Daten an die beiden Frames geben - das klappt nur "top-down", nicht aus den Frames "bottom-up" (ein Sicherheitsaspekt und angewandte Technik von Google; das ist eine lange Geschichte)! Da es sich bei Dir aber wohl um eine Prüfung handelt, mag ich Dir gar nicht das Ergebnis vorkauen - stattdessen bekommst Du von mir einen Lösungsansatz, den Du bei Dir probierst zu adaptieren. *gemein, ich weiß*

Du kannst ein Formular anweisen, dass es Informationen an ein bestimmtes Frame reicht - hierzu genügt es, wenn das Frame einen Namen trägt und das Form-Tag, welches die Abwicklung eigentlich macht, diesen Namen als "target"-Attribut genannt bekommt. So eine Lösung findest Du bspw. mit iframes und Dateiuploads - hat was mit Usability zu tun und damit der User nicht qualvoll - vor Langeweile - am PC stirbt und er eine Animation gezeigt bekommt. "Yeah, Animation ... !" *gnarf* Jedenfalls bin ich mir sehr sicher, dass "target" auch hier funktionieren wird ... in Verbindung mit JavaScript kannst Du sogar aus einem Form an alle Fenster die gewünschte Info reinwerfen.

Und doch muss ich dem Foren-Gott hesst völlig recht geben: Aufgrund Suchmaschinen-Indexierung, SEO, Mobilgerät-Wahnsinn und HTML5-"proprietär" ist so ein Frameset absolut nicht mehr "gesellschaftsfähig".

Persönlich würde mir (!) eher eine Lösung mit sessionbasierter Datenbank, schönem Controlling für Inaktivität (lässt sich dann auch prima darstellen und DB-seitig erweitern) und ganz, ganz viel AJAX mit jQuery gefallen, wodurch "neue Informationen" (andere Eingaben, andere User) stets asynchron je User vom Server abgeholt werden (was wiederum mit websockets wohl noch größeres Tennis wäre).

Ich wünsche Dir viel Erfolg.
 
Du kannst in Deiner Hierarchie selbstverständlich Daten an die beiden Frames geben - das klappt nur "top-down", nicht aus den Frames "bottom-up" (ein Sicherheitsaspekt und angewandte Technik von Google; das ist eine lange Geschichte)!
keine ahnung was du hier meinst.
du kannst ohne js, also rein serverseitig, nur daten an requests dieser seite mitgeben, nicht aus den frames zur aufrufenden seite, das ist richtig. das hat aber rein gar nichts mit google und sicherheit zu tun, sondern ist technisch nicht möglich.

Du kannst ein Formular anweisen, dass es Informationen an ein bestimmtes Frame reicht - hierzu genügt es, wenn das Frame einen Namen trägt und das Form-Tag, welches die Abwicklung eigentlich macht, diesen Namen als "target"-Attribut genannt bekommt.
er will ja aber als antwort auf das Formular die seite mit dem frameset erhalten, und nicht die seite eines frames, wenn er das so machen würde, hat er ja keine frames mehr.
 
Technisch nicht möglich, da ein Sicherheitsding (es geht absichtlich nicht) - jupp. Ich habe mich selbst schon häufig genug darüber aufgeregt, dass es nicht geht (da ich immer zu gern wissen würde, wer es probiert). Google hat da insofern erstmal nichts mit zu tun - allerdings benutzt Google selbst diese Technik (iFrames mind.), um div. Dinge mit Deiner Seite zu machen (Geschwindigkeitsmessungen etc.). Wie gesagt: Eine längere Geschichte, die hier nun den Rahmen sprengen würde ... Sicherheit im Sinne von XSS o. ä. ganz und gar nicht. ;)

Zugegeben, ein wenig über das Ziel hinaus - liegt aber auf der Hand, dass $_POST in den jeweiligen Frames leer ist. Demnach?
- Session wäre die bequemste Art (wurde schon erwähnt)
- Aufruf der in den Frames befindlichen Seiten mittels angehängtem GET-Paramter (sagte der hesst ja bereits)

Ich überlege gerade, ob es deutlich komplizierter geht ... so mit domready, Eintragen via "top-down" als Parent in die Frames - diese müssten aber melden, dass sie "da" wären ... hmmmm ... na, streichen! :D

Sorry, falls ich Verwirrung gestiftet haben sollte.

Beste Grüße
 
Technisch nicht möglich, da ein Sicherheitsding (es geht absichtlich nicht) - jupp.
nein, technisch nicht möglich, da technisch nicht möglich. keine absicht, mit sicherheit hat das nichts zu tun.
php script 1 generiert auf request eine htmlseite in welcher weitere requests an ein anderes php-script 2 enthalten sind. script 1 kann im html-generat dem request auf script 2 parameter mitgeben. script 2 aber kann dem html-generat von script 1 keine parameter mitteilen, da dieses schon lange beim client ist.
 
das klappt nur "top-down", nicht aus den Frames "bottom-up"
Wenn man auf JS setzt und die SOP nicht verletzt wird, kann man Daten in beide Richtungen transferieren.

Auch kann man ein <form> ein target="_parent" (oder "_top") geben und es somit "bottom-up" absenden...

Die Datenautobahn ist also keine Einbahnstraße.
 
Auch kann man ein <form> ein target="_parent" (oder "_top") geben und es somit "bottom-up" absenden...
aber nicht dem phpscript, welches html erzeugt hat, welches ein phpscript requestet, welches html erzeugt aus letzterem html parameter übermitteln. (außer ich requeste dieses wieder, also top-down). das ist doch der punkt um den es geht.
 
Natürlich nicht. Das "äußere" PHP-Skript ist ja schon längst fertig, wenn das "innere" erst startet.

Aber SteelWheel hat irgendwas von Formularen gesagt, die irgendwie "angewiesen" werden, Informationen weiterzugeben. Da wollte ich klarstellen, dass das eben auch "bottom-up" funktioniert.
 
Zurück
Oben