Javascript / sessions

hi,

ich bin nicht ganz sicher, ob die frage besser hier oder im javascript - forum zu stellen ist. nun, ich stelle sie hier :smile:

ich habe leider keine ahnung von js, eigentlich interessiere ich mich auch nicht dafür. nun aber habe ich ein script gefunden, das ein menü zur navigation erstellt, das ich so sehr mag, dass ich es eingebnden habe. nun habe ich probleme.

das js ist extern und wird über einen scriptverweis eingebunden. innerhalb des scriptes stehen die zu verlinkenden seiten.

dieses script geht offensichtlich nicht durch den parser, sondern wird „so wie es ist“ zum browser geschickt und dort erst verarbeitet. ich kann also die links nicht

neueseite.php?einevariable= echo varname; ?>

nennen - denn das kommt dann genau SO beim browser an. da ich mit sessions arbeite, bin ich also mit dem einsatz dieses menüs plötzlich darauf angewiesen, dass der webseitenbesucher cookies unterstützt, denn mit

?SID= $SID; ?>

passiert das selbe wie mit allen anderen Variablen, ud automatisch wird auch nix angehängt. Da ich aber meinen Besuchern nicht zumuten will, cookies benutzen zu _müssen_ suche ich ne lösung, wie ich das js dynamisch, d.h. durch den php-parser bekomme, bevor das script an den browser geschickt wird.

meine erste idee war, die js-datei in php umzubenennen und statt mit einem - tag mit include () einzubinden. das scheint aber nicht zu gehen. jedenfalls kommt am ende kein js-menü dabei raus.

mir ist klar, dass ein js und php „eigentlich“ kaum kommunizieren können - mir fällt spontan nur post, get und eben cookies ein. post und get gehen nicht, und cookies will ich mit dem sid ja grad vermeiden :-/

irgendwo im internet habe ich mal eine anleitung mit dem namen „javascript und php“ gelesen, aber da es mich nicht interessierte, habe ichs nicht gespeichert. und jetzt finde ich nirgends sowas - dabei bin ich sicher nicht der einzige, der son problem hat.

wenn einer eine lösung kennt - oder auch nur einen link -

vielen dank :smile:

christian

Hallo,

ich bin mir nun nicht ganz sicher, ob ich das richtig verstanden habe, aber meine Idee wär gewesen, das JavaScript mit einer funktion aufzurufen, da kannst du dann an die Funktion PHP Variablen übergeben.

Einfacher wär es nun aber, wenn du hier die Seite nennen würdest, damit man sich den Quelltext ansehen kann.

Gruß
Tom

hallo tom,

danke für deine hilfe. leider kann ich das js nicht über eine funktion aufrufen weil - naja, weil ichs nicht kann :smile: ich beherrsche kein js.

die url kann ich dir auch nicht geben, das ganze befindet sich zur zeit noch auf meinem rechner.

innerhalb der php-datei wird das js über

document.write(’<scr’+‚ipt src=„lay1_files/xaramenu.js“>‘+’</scr’+‚ipt>‘);document.write(’<scr’+‚ipt src=„lay1_files/lay1_hnavbar.js“>‘+’</scr’+‚ipt>‘);/*img src=„lay1_files/lay1_hnavbar.gif“ moduleid=„bannerking (Project)\lay1_hnavbar_off.xws“*/

aufgerufen. die datei xaramenu.js befindet sich im verzeichnis lay1_files. sie scheint das grundsätzliche layout zu übernehmen. die konfiguration findet sich in lay1_hnavbar.js. sie sieht so aus: (achtund lang)


//©Xara Ltd
if(typeof(loc)==„undefined“||loc==""){var loc="";if(document.body&&document.body.innerHTML){var tt=document.body.innerHTML;var ml=tt.match(/"'lay1_hnavbar.js["’]/i);if(ml && ml.length > 1) loc=ml[1];}}

var bd=5
document.write("");
document.write("\n<!–\n");
var tr=„filter:alpha(opacity=98);-moz-opacity:0.98;“;if(IE5) tr="";
document.write(".lay1_hnavbar_menu {"+tr+„z-index:999;border-color:#8c9cd5;border-style:solid;border-width:“+bd+"px 0px „+bd+„px 0px;background-color:#aaaaaa;position:absolute;left:0px;top:0px;visibility:hidden;}“);
document.write(“.lay1_hnavbar_plain, a.lay1_hnavbar_plain:link, a.lay1_hnavbar_plain:visited{text-align:left;background-color:#aaaaaa;color:#000000;text-decoration:none;border-color:#8c9cd5;border-style:solid;border-width:0px "+bd+"px 0px "+bd+„px;padding:3px 0px 3px 0px;cursor:hand;display:block;font-size:8pt;font-family:Arial, Helvetica, sans-serif;font-weight:bold;}“);
document.write("a.lay1_hnavbar_plain:hover, a.lay1_hnavbar_plain:active{background-color:#0000aa;color:#ffffff;text-decoration:none;border-color:#8c9cd5;border-style:solid;border-width:0px "+bd+"px 0px "+bd+„px;padding:3px 0px 3px 0px;cursor:hand;display:block;font-size:8pt;font-family:Arial, Helvetica, sans-serif;font-weight:bold;}“);
document.write(„a.lay1_hnavbar_l:link, a.lay1_hnavbar_l:visited{text-align:left;background:#aaaaaa url(“+loc+"lay1_hnavbar_l.gif) no-repeat right;color:#000000;text-decoration:none;border-color:#8c9cd5;border-style:solid;border-width:0px "+bd+"px 0px "+bd+„px;padding:3px 0px 3px 0px;cursor:hand;display:block;font-size:8pt;font-family:Arial, Helvetica, sans-serif;font-weight:bold;}“);
document.write(„a.lay1_hnavbar_l:hover, a.lay1_hnavbar_l:active{background:#0000aa url(“+loc+„lay1_hnavbar_l2.gif) no-repeat right;color: #ffffff;text-decoration:none;border-color:#8c9cd5;border-style:solid;border-width:0px „+bd+„px 0px „+bd+„px;padding:3px 0px 3px 0px;cursor:hand;display:block;font-size:8pt;font-family:Arial, Helvetica, sans-serif;font-weight:bold;}“);
document.write(“\n–>\n“);
document.write(““);

var fc=0xffffff;
var bc=0x0000aa;
if(typeof(frames)==„undefined“){var frames=4;if(frames>0)animate();}


achtung! an folgender stelle hab ich versucht, den php-code einzubinden. die sid befindet sich in der variablen $session.

startMainMenu("",0,0,2,0,0)
mainMenuItem(„lay1_hnavbar_b1“,".gif",43,87,loc+"…/"+„index.php?SID=_? echo $session; ?_“,"",„Home/Login“,2,2,„lay1_hnavbar_plain“);
mainMenuItem


ab hier gehts munter mit den normalen links weiter bzw. ich habe zum teil noch keine links gesetzt

(„lay1_hnavbar_b2“,".gif",43,87,loc+"…/"+„index.php“,"",„Information“,2,2,„lay1_hnavbar_plain“);
mainMenuItem(„lay1_hnavbar_b3“,".gif",43,87,„javascript:;“,"",„Anmelden“,2,2,„lay1_hnavbar_plain“);
mainMenuItem(„lay1_hnavbar_b4“,".gif",43,87,„javascript:;“,"",„Services“,2,2,„lay1_hnavbar_plain“);
mainMenuItem(„lay1_hnavbar_b5“,".gif",43,87,loc+"…/"+„stats.php“,"",„Statistiken“,2,2,„lay1_hnavbar_plain“);
endMainMenu("",0,0);

startSubmenu(„lay1_hnavbar_b5“,„lay1_hnavbar_menu“,191);
submenuItem(„Gesamtstatistik / Mediendaten“,loc+"…/"+„overall.php“,"",„lay1_hnavbar_plain“);
submenuItem(„TOP 5“,loc+"…/"+„top.php“,"",„lay1_hnavbar_plain“);
endSubmenu(„lay1_hnavbar_b5“);

startSubmenu(„lay1_hnavbar_b4“,„lay1_hnavbar_menu“,153);
submenuItem(„Bannergenerator“,„javascript:;“,"",„lay1_hnavbar_plain“);
submenuItem(„Überschriftengenerator“,„javascript:;“,"",„lay1_hnavbar_plain“);
submenuItem(„Links / Partnerseiten“,„javascript:;“,"",„lay1_hnavbar_plain“);
submenuItem(„Sonstiges“,„javascript:;“,"",„lay1_hnavbar_plain“);
endSubmenu(„lay1_hnavbar_b4“);

startSubmenu(„lay1_hnavbar_b3“,„lay1_hnavbar_menu“,87);
submenuItem(„AGB“,loc+"…/"+„cou.php?SID=_? echo $session; ?_“,"",„lay1_hnavbar_plain“);
submenuItem(„Regeln“,loc+"…/"+„rules.php“,"",„lay1_hnavbar_plain“);
submenuItem("—",„javascript:;“,"",„lay1_hnavbar_plain“);
submenuItem(„Anmelden“,loc+"…/"+„signup.php“,"",„lay1_hnavbar_plain“);
endSubmenu(„lay1_hnavbar_b3“);

startSubmenu(„lay1_hnavbar_b2_6“,„lay1_hnavbar_menu“,122);
submenuItem(„Allgemein“,loc+"…/"+„anleitungen.htm#alg“,"",„lay1_hnavbar_plain“);
submenuItem(„Bannererstellung“,loc+"…/"+„anleitungen.htm#bannerst“,"",„lay1_hnavbar_plain“);
submenuItem(„Credits“,loc+"…/"+„anleitungen.htm#credits“,"",„lay1_hnavbar_plain“);
submenuItem(„html-Code“,loc+"…/"+„anleitungen.htm#html“,"",„lay1_hnavbar_plain“);
submenuItem(„Kategorien“,loc+"…/"+„anleitungen.htm#kat“,"",„lay1_hnavbar_plain“);
submenuItem(„persönliche Daten“,loc+"…/"+„anleitungen.htm#daten“,"",„lay1_hnavbar_plain“);
submenuItem(„Freischaltung“,loc+"…/"+„anleitungen.htm#freisch“,"",„lay1_hnavbar_plain“);
endSubmenu(„lay1_hnavbar_b2_6“);

startSubmenu(„lay1_hnavbar_b2_4“,„lay1_hnavbar_menu“,87);
submenuItem(„Impressum“,loc+"…/"+„impressum.htm“,"",„lay1_hnavbar_plain“);
submenuItem(„Kontakt“,loc+"…/"+„kontakt.htm“,"",„lay1_hnavbar_plain“);
submenuItem(„AGB“,loc+"…/"+„agb.htm“,"",„lay1_hnavbar_plain“);
endSubmenu(„lay1_hnavbar_b2_4“);

startSubmenu(„lay1_hnavbar_b2“,„lay1_hnavbar_menu“,117);
submenuItem(„Home“,loc+"…/"+„index1.htm“,"",„lay1_hnavbar_plain“);
submenuItem("—",„javascript:;“,"",„lay1_hnavbar_plain“);
submenuItem(„Worum gehts“,loc+"…/"+„worum.htm“,"",„lay1_hnavbar_plain“);
mainMenuItem(„lay1_hnavbar_b2_4“,„Interna“,0,0,loc+"…/"+„impressum.htm“,"","",1,1,„lay1_hnavbar_l“);
submenuItem(„Kosten“,loc+"…/"+„kosten.htm“,"",„lay1_hnavbar_plain“);
mainMenuItem(„lay1_hnavbar_b2_6“,„Anleitungen“,0,0,loc+"…/"+„anleitungen.htm“,"","",1,1,„lay1_hnavbar_l“);
endSubmenu(„lay1_hnavbar_b2“);

startSubmenu(„lay1_hnavbar_b1“,„lay1_hnavbar_menu“,138);
submenuItem(„Login“,loc+"…/"+„index.php“,"",„lay1_hnavbar_plain“);
submenuItem(„Passwort vergessen“,loc+"…/"+„recoverpw.php?SID=_? echo $session; ?_“,"",„lay1_hnavbar_plain“);
endSubmenu(„lay1_hnavbar_b1“);

loc="";


ich hoffe, ich habe nun niemanden mit dem code erschlagen. er ist ja auch nicht so wichtig - wichtig ist nur, dass innerhalb dieser externen js-datei php nicht funktioniert, weil sie nicht durch den parser läuft.

danke für eure hilfe!

chrtis´tian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

nachtrag
hallo,

das

?SID=_? echo $session; ?_

ist wohl eben beim kopieren schief gelaufen. im script heißt es richtig

index.php?SID= echo $session; ?>

war ein kopier-fehler, daran scheiterts nicht :wink:

Hallo kalli.

Ich weiss ehrlich gesagt nicht, ob ich dein Problem richtig verstanden habe.
Ich denke, dass es dir eigentlich nur darum geht, PHP direkt in der JS Datei zu benutzen.

Dann benenne die *.js Datei doch einfach in *.php um und binde sie ein.

Beispiel:

Hier ein kleines Beispiel:

hallo.php

session\_start();
$\_SESSION['user'] = "Tommy";
?\>



TestHIER KLICKEN

js_datei.php

session\_start();
?\>
function Hallo() {
 alert ("Hallo, echo $\_SESSION['user']; ?\>");
}