Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Fenstername in PHP verwenden?

Ich möchte den Fensternamen des jeweiligen Browsers in einer PHP-Variable speichern.

Wie ich den Fenstrnamen mit JavaScript auslese, ist mir klar, nur ist dann PHP bereits verarbeitet. Wie bekomme ich den Wert in den PHP-Prozessor? Geht das überhaupt?

Hier gehts zum Orginal Eintrag "Fenstername in PHP verwenden?" im Forum

Antworten

gar nicht ... du müsstest die seite laden, den namen auslesen und dann ne andere seite laden der du den fensternamen übergibst, dann gehts


2.

Zitat:
Wie ich den Fenstrnamen mit JavaScript auslese, ist mir klar,
Mir ist nicht klar:
was erstens der Fenstername sein soll???
wieso du zweitens hier im Forum für Fortgeschrittene postest....

Helfen tut vermutlich das Superglobale Array SERVER in dem du deinen Fensternamen vermutlich finden wirst...


3.

na - der Fensternamen ist doch das was im htmlcode zwischen <title> und </title> steht.

lol - schon ein seltsames Problem...


4.

Zitat:
Bernd456 postete
na - der Fensternamen ist doch das was im htmlcode zwischen <title> und </title> steht.

lol - schon ein seltsames Problem...
da haste recht ... also ich weis z.B. immer was ich da oben reingeschrieben hab ... und wenn mans nich behalten kann dann schreibt mans halt in variablen ^^


aber das könnt echt ma wer woanders hin verschieben *zu foggy schielz*


5.

@Foggy & Bernd
Der Fenstername ist der Name der Browser-Instanz (z.B. parent.name), nicht der Titel (<title></title>)!

Auslesen möchte ich das Ding, um globale Daten fensterabhängig speichern zu können, wenn mehrere Instanzen des Scripts offen sind. Das ist genau das, was man in einem Shop z.B. nicht will.

Da das Verwenden von Objekteigenschaften wie Fensterbreite, Fenstername, usw. in PHP meiner Meinung nach was anspruchsvolleres ist, hab ich hier geschrieben und nicht im Grundlagen-Forum.

Und der Array _SERVER kennt den Namen der Fenster-Instanz nicht, oder ich bin blind. (Habs jedenfalls in der Doku nicht gefunden)

???Wieso seltsames Problem?



@DarkRose:
Du denkst da sicher an ein JavaScript, das den Fensternamen direkt nach dem öffnen ausliest, und dann die eigentlich gewünschte URL aufruft und z.B. per GET den Namen übergibt. Klingt sinnvoll und gut! DANKE!


6.

Bitte nicht das HTML-Attribut TITLE mit der Objekt-Eigenschaft "NAME" verwechseln!


7.

Zitat:
Der Fenstername ist der Name der Browser-Instanz (z.B. parent.name)
Eben genau falsch: das ist nicht der Fenstername, sondern der Objektname der Browser-Instanz. Aus Sicht der JavaScript API. Und zwar NUR aus dieser Sicht.

Das hat mit PHP rein überhaupt nichts zu tun.

Zitat:
Da das Verwenden von Objekteigenschaften wie Fensterbreite, Fenstername, usw. in PHP meiner Meinung nach was anspruchsvolleres ist, hab ich hier geschrieben und nicht im Grundlagen-Forum.
Das sind ALLES JavaScript Objekteigenschaften. Hat wieder rein gar nichts mit PHP zu tun.

Das "Fortgeschrittenenforum" bezieht sich im übrigen auf die Qualifikation des Fragestellers - daher gehört diese Frage in das Anfängerforum, mindestens!


8.

Seisdrum... da ich den Kram in meinem PHP-Script brauche, hab ichs hier gepostet.

Hätte ja auch andersrum kommen können, und im JavaScript-Forum hätte ich dann gehört "schrieb doch im PHP-Forum wenn dus dort brauchst!"


Egal, ich wünsche ein schönes WE...

Wem sonst noch ne Möglichkeit einfällt, multiple Browser-Instanzen in PHP zu identifizieren, ohne jeweils ne GET-Variable durchzuschleppen, kann sich melden.


9.

Zitat:
KEDO postete
Wem sonst noch ne Möglichkeit einfällt, multiple Browser-Instanzen in PHP zu identifizieren, ohne jeweils ne GET-Variable durchzuschleppen, kann sich melden.
sessions *g*


10.

Zitat:
daher gehört diese Frage in das Anfängerforum, mindestens!
Noch weiter runter geht's hier leider nicht :D

@KEDO: Wie Du schon geschrieben hast wird PHP ZUERST ausgeführt wird, diese erzeugte Seite wird dann an den Browser übergeben und DANN erst greift Javascript, womit Du den "Fensternamen" auslesen kannst. Also kann es logischerweise nicht funktionieren.

Zitat:
Da das Verwenden von Objekteigenschaften wie Fensterbreite, Fenstername, usw. in PHP meiner Meinung nach was anspruchsvolleres ist
Ich vermute mal ganz stark, dass Du ein viel zu kompliziertes Konzept erstellt hast. Zur korrekten Ausgabe einer "simplen" HTML-Seite benötigt man sowas wie die Fensterbreite schon seit Jahren nicht mehr, dafür gibt es CSS. Und das, was Du mmit Javascript vorhast ist vermutlich auch viel zu kompliziert bzw. überflüssig. Schreib' doch mal, wofür das genau gut sein soll.

Zitat:
[..]um globale Daten fensterabhängig speichern zu können, wenn mehrere Instanzen des Scripts offen sind. Das ist genau das, was man in einem Shop z.B. nicht will.
Das verstehe ich nicht. "globale Daten" und dann "fensterabhängig"? Verzichtest Du etwa auf Session-Daten zur Nutzeridentifikation? Aber als fortgeschrittener User sicherlich doch nicht, oder?

So far...
Matthias

P.S.: Um noch ein wenig klugzu[piiiiiiiep]en: "title" ist in kein HTML-Attribut sondern ein HTML-Element. Attribute wären sowas wie "class", "style" etc.

Edit: DarkRose war schneller, aber ich übe weiter :)


11.

Es geht um weit mehr, als ihr vermutet.

Stellt Euch vor Ihr habt ein Online-Lernsystem mit mehreren einzelnen Units.
Der Grundaufbau jeder Unit ist identisch (gleiche Zahl/Art von Unterseiten usw.)
Innerhalb jeder Unit können Formulardaten eingegeben werden, es wird navigiert uvm.
Die Formulardaten sollen dabei zwischengespeichert werden können (in der Session).

Alles in allem kann man EIN kapitel also mit einem Online-Shop vergleichen. Die gespeicherten Daten sind quasi der Warenkorb.

Nun soll es aber dem User möglich sein mehrere dieser Kapitel gleichzeitig zu öffnen, darin zu navigieren usw.
Also ungefähr so als wenn jedes Mal beim öffnen eines Shops (in einem neuem Fenster) ein neuer Warenkorb generiert werden würde.
Damit aber die Daten von Unit2 nicht die Daten von Unit1überschreiben, sollen die Variablen abhängig von der Browser-Instanz benannt werden können. Oder anders gesagt, ich will die einzelnen Units unterscheiden können, ohne GET-Variable.

Meine bisherige Lösung ist, daß ich eine GET-Variable mit der Unit-Nummer rumschleife, anhand der ich die Variablennamen für die Formulardaten und den Pfad der Quelldaten usw. basteln kann.

Unique Variablennamen sind hier halt schwierig, wir reden von insgesamt über 9000 Variablen!

Hab ich Euch jetzt noch mehr verwirrt? ..oder wirds klarer?! Ich bin heute jedenfalls total getoastet und entschuldige mich für das wirrwarr! ->Ich Anfänger


12.

Zitat:
KEDO postete
Nun soll es aber dem User möglich sein mehrere dieser Kapitel gleichzeitig zu öffnen, darin zu navigieren usw.
Also ungefähr so als wenn jedes Mal beim öffnen eines Shops (in einem neuem Fenster) ein neuer Warenkorb generiert werden würde.
Auhauahauaha, da musst Du dem User aber erstmal beibringen, warum plötzlich sein kompletter Warenkorb verschwunden ist. kA, wofür das nun gut sein soll.
Warum soll jetzt eine Unit - wenn ich sie schon einmal bearbeitet habe - plötzlich im selben Kontext plötzlich als "unbearbeitet" markiert sein, nur weil ein neues Fenster geöffnet wurde?

Zitat:
Damit aber die Daten von Unit2 nicht die Daten von Unit1überschreiben, sollen die Variablen abhängig von der Browser-Instanz benannt werden können. Oder anders gesagt, ich will die einzelnen Units unterscheiden können, ohne GET-Variable.
Dann nutze halt POST- oder Variablen-Variablen, wo ist das Problem?
Übrigens kann eine Browserinstanz auch mehrere Fenster/Tabs gleichzeitig geöffnet haben. Diese Browser-Instanz nennt sich dann Session.
In der Session speicherst Du die aktuelle Unit. Klickt der User nun auf "Weiter" (Link auf die weiter.php) so wird dort die aktuelle Unit ausgelesen und die nächste zurückgegeben. So klickt der User immer nur auf die weiter.php und bekommt automatisch die richtige Unit, ohne irgendeinen Javascript-Fensternamen oder sonstwas.

Zitat:
Hab ich Euch jetzt noch mehr verwirrt? ..oder wirds klarer?! Ich bin heute jedenfalls total getoastet und entschuldige mich für das wirrwarr! ->Ich Anfänger
Eher ersteres.
Ich glaube, ein konkretes Beispiel würde mir mehr helfen.

So far...
Matthias


13.

Ich gebe mal kurz ein Scenario vor:

Unit 1: Netzwerkgrundlagen (9 Unterseiten)
Unit 2: Entdecke deinen Körper (9 Unterseiten)

Wenn ich jetzt Unit 1 öffne, geht (in einem neuen Fenster) die Unit1 auf.
Ich navigiere darin ein bisschen hin und her, mache ein paar Übungsaufgaben und speicher meine Eingaben und habe eine Fehlerquote von vielleicht 20% (Alle gespeicherten Daten werden zunächst in Session gespeichert. )

Dann öffne ich Unit2 (wieder in neuem Fenster) und bearbeite diese. Auch wieder ne Fehlerqoute und viele andere Daten, die es zu speichern gilt. Wenn ich diese in die Session schreibe, sind die Daten von unit 1 futsch. Ich kann die Daten aber nicht alle als GET oder POST rumschleppen, während der User innerhalb beider Units nach seiner Erleuchtung sucht! Und jeztz kommts: Wenn ich jetzt nochmal (als User) Unit2 öffne, müssen dort die gespeicherten Daten der Unit2 die ja schon in einem anderen Fenster geöffnet ist verfügbar sein. Quasi müsste jedes Fenster ne eigene Session haben.


14.

ich könnte ja verstehen, wenn daten aus unit1 bei nochmaligem überschrieben würden... aber warum um alles in der welt gehen dir die daten von unit1 beim bearbeiten von unit2 verloren, oder habe ich dich komplett falsch verstanden.
vielleicht machte es sinn, wenn du dir nochmal dein datenhaltungskonzept durch den kopf gehen lässt...
ich sähe jede unit als objekt welches dann mit seinen daten (fragen/antworten/auswertung) unter einem eindeutigen namen in der session gespeichert wird.


15.

Du musst einfach die daten eindeutig halten, also die unitnummer mit zu den Daten speichern. als eine array $_SESSION['unit1'] mit den daten der Unit 1, und ein array $_SESSION['unit2'] mit den unit2 daten. Du musst nicht browserfensterspezifisch, sondern Unitspezifisch speichern. Dann spielts auch keine rolle, mit was für einem Browser oder programm oder irgendwas deine Seite aufgerufen wird.


16.

Dazu noch [doc]array[/doc]. Grundlagen eben

So far...
Matthias


Hier gehts zum Orginal Eintrag "Fenstername in PHP verwenden?" im Forum
 
phpforum.de | Impressum