![]() |
PHP im Framest?
Hab da mal eine kleine Frage...
vielleicht is diese Frage auch sau blöd aber ich komm nicht drauf und nachlesen ist auch mühsam. Es ist folgendes, ich hab ein Scrip welches einen Link zu einer datei (index.php) sendet allerdings mit einer action dabei. (als Beispiel die Email Benachrichtigung des WCM Forums http://www.wcm.at/vb2/showthread.php...2&goto=newpost) Alles schön und gut geht einwandfrei, mein Problem ist folgendes, der Link http://www.wcm.at/vb2/showthread.php...2&goto=newpost soll in einem FRAMESET geöffnet werden. Das heisst, die Datei wird im Frameset frame.html im Mainframe geöffnet bzw. sie SOLLTE da geöffnet werden. Ist das denn irgendwie möglich??? Kurz gesagt: http://www.wcm.at/vb2/showthread.php...2&goto=newpost soll im hauptframe eines Framesets geöffnet werden Danke im Voraus... MfG Nighty |
Hallo!
Es gibt die Möglichkeit, mittels JavaScript ein "fehlendes" Frameset nachzuladen. Das JavaScript überprüft also, ob es Teil eines Framesets ist, und wenn nicht, lädt es was nach. Wie das genau geht, sollte auf den einschlägigen JavaScript-Seiten nachzulesen sein. Scheint mir die einfachste Möglichkeit zu sein. Sollte dir eine serverseitige Skriptsprache zur Verfügung stehen, kannst du auch das Frameset selbst mit angehängten Parametern aufrufen, und der Server bastelt dir den entsprechenden Framest zusammen. hth, Roland |
hmm, du kannst das frameset als php-datei machen, über ein session_start() eine session initialisieren und alle variablen in die session registern, dann die session in dem main-fenster des frames (der entsprechenden php-datei halt) wieder mit session_start() initialisieren, dann hast du die variablen zur verfügung.
|
Wieso setzt Du den Link nicht auf das Frameset und lädst als Hauptframe eben diesen Link mit dem action tag?
|
Nun also Java halt ich persönlich für keine gute
Lösung, ich mag java nicht und abgesehn davon müsste ich dan mein Script wieder auf den Kopf stellen. Was die Sessions angeht muß ich sagen, ich weiß was du meinst aber ich hab einen totalen hänger wenn ich mir das im Kopf so durchdenk. Vielleicht kann mir das wer mal anhand eines Beispiels erklären oder so *g* @alibert1: Was deinen Vorschlag betrifft, der ist zwar nett nur ergibt sich dabei daß problem daß dann IMMER dei GLEICHE Seite geladen wird was aber nicht möglich ist da es ja jedesmal eine andere ist, also z.B.: http://www.wcm.at/vb2/showthread.php...9&goto=newpost http://www.wcm.at/vb2/showthread.php...9&goto=newpost http://www.wcm.at/vb2/showthread.php...9&goto=newpost Und es ist technisch nicht (moment mal...) Naja vielleicht doch... dann müsste aber bei jedem Link der erzeugt wird eine Variable generiert werden die dann... nein das geht so nicht... Also das bereitet mir echt Kopfschmerzen... :( HILFEEEE MfG Nighty |
Zitat:
Wennst das einmal hinkriegst, funktionierts für alle Seiten. |
Hast eine Idee wo ich da anfangen sollte???
Das Script ist eine Email Benachrichtigung und ist eigentlich genau gleich wie die hier im WCM: Script mit sendmail funktion die dann folgendes macht: function MailNotification($forum, $thread, $poster) { global $config,$PHP_SELF,$HTTP_SERVER_VARS,$realm; $result = db_select("SELECT u.* FROM $config[mtable] AS m, $config[utable] AS u WHERE m.fname = '$forum' AND m.threadid = '$thread' AND u.username = m.poster AND u.options & 64 GROUP BY u.username"); while($row = db_getarray($result)) { if ($row[username] != $poster) $users[] = $row; } $topicname = threadtitle($forum,$thread); $subj = "Antwort auf das Thema $topicname im $config[title]"; $from = "forum"; $msg = "Forum Nachricht"; $msg .= "\n\n"; $msg .= "$poster hat auf Ihren Beitrag $topicname geantwortet\n"; $msg .= "\n"; $msg .= "Hier gehts zu Ihrem Beitrag:\n"; $msg .= "http://$HTTP_SERVER_VARS[HTTP_HOST]$PHP_SELF?action=displaythread&forum=$forum&id=$th read&realm=$realm"; $msg .= "\n\n"; $msg .= "Sie haben die Email Beanchrichtigung für Antworten auf Ihre Beiträge aktiviert\n"; $msg .= "\n"; if (is_array($users)) foreach ($users as $user) if ($user[email]) mail($user[email], $subj, $msg, "From: $from\n"); } Soweit alles klar... jetzt soll der Link (in ROT) aber eben in besagtem Frameset forum.html geöffnet werden da ja sonst der Rest der Webseite fehlt :( Nun ich bin nicht ganz von gestern aber was programmieren betrifft bin ich leider nicht so fix also wenn mir da wer ein bisserl Nachhilfe geben könnte *g* Thanx MfG Nighty |
Äh...heute bin ich - ehrlich gesagt - schon zu müde...ich antworte gerne morgen, ausserdem kriegst Du eine PM von mir - könnte interessant für Dich sein ;)
|
Mal sehen... Ich bin jedenfalls dankbar für
jede Hilfe :) Bin wiegesagt nicht so ganz fit was solche tiefgreifenden "programmierarbeiten" angeht... naja. Ich mein ich versteh schon a bisserl was aber irgendwann endet das zumindest in meinem Kopf wie folgt: 10 print: Wie geht das gleich? 20 x=2 30 y=1 40 for x > y goto 10 else goto 50 50 prein: So gehts! :lol: |
Ha!
Ich habs!:D Hat mir keine Ruhe gelassen... Du rufst statt der eigentlichen Seiten (bzw. gibst sie im Mail an) einfach das Frameset (oder ein speziell dafür gestaltetes Frameset) als php datei auf und übergibst ihm alle Parameter wie Du sie brauchst. Innerhalb des Framesets verwendest Du die übergebenen Variablen, um die URL http://$HTTP_SERVER_VARS[HTTP_HOST]$PHP_SELF?action=displaythread&forum=$forum&id=$th read&realm=$realm im gewünschten Fenster des Framesets aufzurufen... Dazu wirst Du allerdings statt $PHP_SELF den Scriptnamen angeben müssen. Geht das?:p P.S.: Jetzt ist aber meine Freundin schon ziemlich urböse :) Bis morgen! |
Ok jetzt hätt es mir fast ein oder zwei Gehirnwindungen
verknotet aber ich glaub ich habs jetzt verstanden :) Tut leid ich bin a bisserl blöd wenns um sowas geht. Ok also das muß so aussehn (schematisch) link muß eine Variable sein (zumindest der variable teil des links also $mailvariable = ?action=...) -> frameset.php -> script: wenn variable (die im link) existiert dann öffne index.php (im frameset) mit ?$mailvariable also index.php$mailvariable ansonsten öffne index.php normal?! Pff hab ich das so richtig verstanden??? (sag bitte ja :)) So, schöne grüße an deine Freundin, tut mir leid daß ich dich aufgehalten hab, Sie soll wenn dann auf mich böse sein ok?! Cu und Danke derweil! |
Puh, jetzt ist die Frage, ob ICH das verstanden habe...:)
In dem Mail gibst Du folgenden Link an: Code:
http://$HTTP_SERVER_VARS[HTTP_HOST]/frameset.php?action=displaythread&forum=$forum&id=$thread&realm=$realm"; Code:
script.php?action=displaythread&forum=$forum&id=$thread&realm=$realm"; |
Zitat:
Momentan sitz ich im Büro werd mir das heute mal zu gemüte führen... ich seh das problem nur darin daß das script ja irgendwie eine Variable übergeben MUSS d.h. muß der teil ?action=displaythread... eine Variable sein weil sich der ja immer ändert!? Also der Link im mail müsste zuerst irgendwo von dem script gelesen werden bevor das script dann die index.php mit der action aufrufen kann oder???? :confused: |
Das Übergeben ist kein Problem; z.b.
wenn Du ein Script hast, dass Du in der Form index.php?action=read aufrufst, stellst Du dem Script index.php eine Variable $action zur Verfügung, die den Wert "read" hat. Das erledigt php automatisch für Dich. |
Nein... Nein Nein...
Ich bin einfach viel zu blöd... ich kapiers einfach nicht :heul: Wo muß ich jetzt was reinschreiben???? Es ist nämlich so daß der Link selber von der Datei funcs.forum.php generiert wird und die Variablen (also threadid usw. holt er sich wieder weiß ich wo) mir ist das alles viel zu heavy. Ich weiß ja warum ich kein Programmierer geworden bin! Naja... |
Also:
Du hast eine Datei "index.php" (dein Frameset), die mit dem Link: index.php?beitrags_id=1234567890 (kann auch viel länger sein) aus dem Mail heraus aufgerufen wird. Da steht dann folgendes drin: [html-zeugs] <frameset cols="10%,90%"> [...] <frame src="forum.php?beitrags_id="<? echo $beitrags_id; ?> name="ForumFenster"> [...] </frameset> [/html-zeugs] $beitrags_id steht dir im Skript "index.php" als GET-Variable "direkt" zur Verfügung. Oder über $HTTP_GET_VARS["beitrags_id"], hängt vom Provider ab. Hoffe, jetzt wirds klarer. hth, Roland |
Ok...
Wenn ich nur erklären könnte was ich NICHT versteh... hmmmm... ich tu mir so schwer daß in Worte bzw. Schrift umzusetzen... ich bin eh nimmer weit weg davon. also daß script daß den maillink ausgibt schaut so aus http://$HTTP_SERVER_VARS[HTTP_HOST]$PHP_SELF?action=displaythread&forum=$forum&id=$th read&realm=$realm is klar, ich muß jetzt also ein frameset.php erstellen daß mir wenn es SO: ?action=displaythread&forum=$forum&id=$thread&real m=$realm aufgerufen wird, die eigentliche index.php mit eben diesen Parametern im entsprechenden zielframe "indexframe" öffnet. auch ok... so ich steck dann da wos drum geht WIE und WO ich daß reinschreiben muß... brauch ich da eine if routine oder wie sag ich ihm WANN er die index.php und vorallem mit welchen Parametern öffnen soll und wann (also wenn ich daß Forum NORMAL aufrufe) er sie ohne was öffnen soll. Ähm, sagt es mir wenn's euch zu blöd wird... Ich steh entweder TOTAL auf der Leitung oder ich hab echt nicht daß Zeug zum Programmieren :heul: |
irgendwie seh ich dein problem nicht....
mein verdacht: du willst mit isset($iregendeine_variable_die_du_im_maillink_übe rgen_hast) überprüfen, ob das forum aus einer mail oder eben "direkt" aufgerufen wurde. if (isset($thread)) { echo "<frame_src=forum.php>"; } else { echo "<frame_src=forum.php?id=$thread>"; } ist es das, was du meinst? R. |
Jetzt haben wirs :)
Ich glaub daß bringt jetzt Klarheit... Genau da war mein HAUPTPROBLEM. Weil ich einfach nicht wusste ob man daß einfach so angeben kann ohne vorher variablen zu definieren oder zu übergeben. ok also mit dieser if/else routine werd ich das jetzt mal versuchen. ich berichte dann, bis dahin MfG und VIEEEELEEEEN DAAAAANK! Nighty |
kein problem....
aber ein blick ins php-manual täte dir sicher gut. is auf den ersten blick ein bißchen verwirrend, aber nach 1-2 stunden beschäftigung findet man ALLES, und nochdazu gut mit beispielen erklärt. es gibt nämlich für fast jedes problem den passenden befehl. [werbung] das manual ist fast das beste an php. [/werbung] cu Roland |
J. Krause
Grundlagen und Profiwissen - PHP 4 | mySQL Liegt neben mir :) |
Gut erklärt, kingchaos01 :)
Und Nightstalker: Du musst unbedingt ein Erfolgserlebins schildern;) |
Wie ich aus ganz geheimer Quelle Erfahren habe ;) , hat er es gestern Nacht noch geschafft :)!
Ich nehme an er wird sich hier heute Abend wieder melden. |
Tja Leute wie die Müllhalde bereits verkündet hat
ICH HAB'S GESCHAFT!!! Wenn ich jetzt so drüber nachdenk weiß ich nicht warum ich mir so den Kopf zerbrochen hab :) Das Problem war daß ich eine ganz Entscheidende Sache nicht gewusst hab aber zufällig drauf gestosen bin wie ich das Buch so durchgeblättert hab. Die Variable: die Globale Variable von PHP namens $QUERY_STRING diese gibt den wert der nach dem ? steht (bei allen Links) aus. Da war alles klar. Das Problem: um die Datei im Frameset zu öffnen muß eine kombination aus einem String und der Variablen $QUERY_STRING ausgegeben werden, ich hab echt herumprobiert bis ich dann die rettende Eingebung hatte, der PUNKT verbindet Zeichenketten! Es bedarfweiters einer Variabeln die die Datei entweder MIT der action oder OHNE läd. Also so: $showframe = "index.php?".$QUERY_STRING; oder eben $showframe = "index.php" Die Lösung: Mittels der Funktion EMPTY wird ermittelt ob ein link MIT oder OHNE parameter aufgerufen wird (ob die Variable QUERY_STRING einen Wert enthält oder nicht) je nachdem ob empty TRUE oder FALSE ausgibt wird der variablen $showframe der entsprechende Wert zugewiesen. Und das ist es, das Ergebnis zweier nervenraubender Nächte! <html> <head> <title>Forum</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <? if ( empty($QUERY_STRING) ) {$showframe = "index.php";} else { $showframe = "index.php?".$QUERY_STRING; } ?> <frameset cols="80,793,80" rows="*" border="0" framespacing="0" frameborder="NO"> <frame src="leftframe.html" frameborder="NO" marginwidth="0" marginheight="0" scrolling="NO" noresize> <frameset rows="91,580" cols="*" border="0" framespacing="0" frameborder="NO"> <frame src="topframe.html" frameborder="NO" marginwidth="0" marginheight="0" scrolling="NO"> <frame src=<? echo $showframe ?> marginwidth="0" marginheight="0" frameborder="NO" name="indexframe"> </frameset> <frame src="rightframe.html" frameborder="NO" marginwidth="0" scrolling="NO" noresize> </frameset> <noframes><body bgcolor="#FFFFFF" text="#000000"> </body></noframes> </html> Tja Leute ich bedanke mich GAAANZ HERZLICH für eure Hilfe! Dank euch hab ich den Mut nicht verloren!!! Bis zum nächsten Problem :D MfG Nighty |
Alle Zeitangaben in WEZ +2. Es ist jetzt 03:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag