Da_Ill Geschrieben 17. Januar 2003 Geschrieben 17. Januar 2003 Hallo, ich habe eine Startseite ohne Frames, habe aber nach der Anmeldung auf eine Seite mit zwei Frames verlinkt. Jetzt habe ich ja auch Werte die ich übergeben möchte! Wie kann ich der Seite mitteilen, welchem Frame ich welche Werte geben möchte? Gruß Da_Ill Zitieren
Honkytonk Geschrieben 17. Januar 2003 Geschrieben 17. Januar 2003 Originally posted by Da_Ill Hallo, ich habe eine Startseite ohne Frames, habe aber nach der Anmeldung auf eine Seite mit zwei Frames verlinkt. Jetzt habe ich ja auch Werte die ich übergeben möchte! Wie kann ich der Seite mitteilen, welchem Frame ich welche Werte geben möchte? Gruß Da_Ill Also es gibt zwei Möglichkeiten, die für dich wohl in Frage kommen. a) dort wo du das Frameset mit den PHP-Seiten öffnest, kannst du an die URL die Variablen mitgeben und mit GET auslesen falls es aber sensible Daten sind würde ich persönlich mit Sessions arbeiten. Dann kannst du die Daten von mehreren Seiten aus abrufen. Zitieren
Da_Ill Geschrieben 17. Januar 2003 Autor Geschrieben 17. Januar 2003 wie funktioniert das mit den sessions? ich programmiere noch nicht sehr lange mit php! aber trotzdem danke! Zitieren
korea1 Geschrieben 17. Januar 2003 Geschrieben 17. Januar 2003 hi, du kannst die daten auch in hidden fields setzten. anstatt in die url, dann sieht sie nicht jeder sofort. die hidden fields kannst du dann auch mit get wieder auslesen. z.b. $HTTP_GET_VARS["name von deinem hiddenfield"] zu der url-lösung sieht das ganze so aus: www.musteradresse.de/seite.php?parameter=1 => $HTTP_GET_VARS["parameter"] gibt dir die 1 zurück. ansonsten eben mit sessions. mfg korea1 Zitieren
Da_Ill Geschrieben 17. Januar 2003 Autor Geschrieben 17. Januar 2003 also irgendwie funktioniert das alles nicht! ich schein da echt zu blöd für zu sein... Zitieren
korea1 Geschrieben 17. Januar 2003 Geschrieben 17. Januar 2003 poste doch einfach mal ein stück von deinem code, dann kann man dir besser helfen. oder schilder mal genau, wie deine links aussehen und die seiten heissen. mfg korea1 Zitieren
Da_Ill Geschrieben 17. Januar 2003 Autor Geschrieben 17. Januar 2003 ich habe die seiten jetzt wieder zur ausgangsposition zurück gesetzt! das ist die seite ohne frame: (also der php-teil) <?php echo "<form action=login_ok.php mehthod=post>"; echo "<b>Name:</b><font color=#000000>......</font><input size=15 name=login_id>"; echo "<br><b>Passwort:</b> <input type=password size=15 name=password>"; echo "<p><input type=submit name=login_submit value=Login>"; echo "</form>"; ?> hier die seite mit den frames: <html> <head> </head> <frameset cols="198,*" frameborder="0" border="0" framespacing="0" rows="*"> <frame name="leftFrame" scrolling="NO" noresize src="leftframe.php"> <frame name="mainFrame" src="mainframe.php"> </frameset> <noframes><body bgcolor="#000000" text="#FFFFFF"> </body></noframes> </html> und hier der hauptframe wo die daten geprüft werden sollen: <?php if(!$login_submit) { echo "<center><b>Bitte einloggen!</b></center>"; } elseif($login_submit) { echo "<font color=#FFFFFF>"; $db = mysql_connect(); mysql_select_db("BISONintranet"); $sql = "select user_login_id, user_password, user_id from user"; $sql .= " where user_login_id = '$login_id'"; $sql .= " or user_password = '$password'"; $res = mysql_query($sql); $num = mysql_num_rows($res); if($num == 0) { echo "<b>"; echo "Fehlgeschlagen!</b>"; } for($i=0;$i < $num;$i++) { $login_id_checked = mysql_result($res, $i, "user_login_id"); $password_checked = mysql_result($res, $i, "user_password"); $hidden_value= mysql_result($res, $i, "user_id"); if ($login_submit && ($login_id_checked==$login_id) && ($password_checked==$password)) { $sql = "select user_vorname from user where user_id = $hidden_value"; $res = mysql_query($sql); $user_vorname = mysql_result($res, "user_vorname"); $sql = "select user_nachname from user where user_id = $hidden_value"; $res = mysql_query($sql); $user_nachname = mysql_result($res, "user_nachname"); echo "<center>Willkommen zurück $user_vorname $user_nachname!"; } else { echo "<b>"; echo "<center>Fehlgeschlagen!</b></center>"; } } } ?> Zitieren
korea1 Geschrieben 17. Januar 2003 Geschrieben 17. Januar 2003 also du hast 2 verschiedene frame seiten. du kommst vermutlich von einer haupt-seite (html) richtig? so wenn du jetzt z.b. auf deine 1. frame seite verlinken möchtest und dabei einen parameter übergeben möchtest, dann sieht das so aus: im html-code deiner hauptseite, die auf die nächste frame seite verweist. <a href="seite1.php?parameter=1">seite1</a> arbeitest du denn mit templates? Zitieren
Da_Ill Geschrieben 17. Januar 2003 Autor Geschrieben 17. Januar 2003 ähm... also ich komme von einer seite ganz ohne frames! und von dieser linke ich ja schon auf die wo die frames definiert sind! dabei übergebe ich schon werte! nur jetzt habe ich diese ja auf der seite die nur die frames definiert und nicht auf der jeweiligen frame-seite selber! von dort muss ich die werte dann ja z. B. auf den Hauptframe weiterleiten! ps: nein ich arbeite nicht mit templates! Zitieren
Da_Ill Geschrieben 21. Januar 2003 Autor Geschrieben 21. Januar 2003 kann mir denn jemand erklären wie das mit sessions funktioniert? die andere lösung scheint ja nun nicht zu gehen! :confused: Zitieren
Jaraz Geschrieben 21. Januar 2003 Geschrieben 21. Januar 2003 Hi, von der ersten Seite, ruft du ein Skript auf. Dieses Skript liefert als Ausgabe das Frameset und speichert im Hintergrund die benötigten Werte in eine Session. Das Frameset ruft nun die beiden anderen Skripte für die einzelnen Frames auf. Diese beiden holen sich dann die Variablen die sie benötigen aus der Session. Ob man die Sessionid im Frameset weitergeben kann, kann ich dir im Moment nicht sagen. Notfalls musst du sie in einem Cookie speichern. Sessions http://www.dclp-faq.de/ch/ch-version4_session.html Wie realisiere ich Sessions mit PHP? http://www.dclp-faq.de/q/q-sessions-wie.html Soll die Session-ID in URL-Parametern oder Cookies gespeichert werden? http://www.dclp-faq.de/q/q-sessions-methode.html Gruß Jaraz Zitieren
Da_Ill Geschrieben 21. Januar 2003 Autor Geschrieben 21. Januar 2003 danke! das hilft mir schon viel weiter! ich bekomme aber immer die fehlermeldung "cannot send cache limiter - headers already send bla bla bla"! muss ich die session im header starten oder im body oder wo? denn wenn ich sie im header starte dann bekomme ich die gleiche fehlermeldung! Ãn den links kann ich leider nur etwas finden über "cannot send cookie ..." aber nicht über "cache limiter"! gruß da_ill Zitieren
Jaraz Geschrieben 21. Januar 2003 Geschrieben 21. Januar 2003 Hi, es darf bevor du die session startest, kein einziges Byte gesendet werden. http://www.dclp-faq.de/q/q-fehler-session-cookie.html Gruß Jaraz Zitieren
Da_Ill Geschrieben 21. Januar 2003 Autor Geschrieben 21. Januar 2003 das hatte ich auch schon gesehen! das heißt dann doch quasi, dass ich z.B. die session noch vor dem <html>-tag starten muss oder? gruß da_ill Zitieren
Jaraz Geschrieben 21. Januar 2003 Geschrieben 21. Januar 2003 Ja, mit dem header hast du normalerweise nicht zu tun und er kommt vor dem ganzen HTML Output. Deswegen heisst er auch header. Gruß Jaraz Zitieren
Da_Ill Geschrieben 23. Januar 2003 Autor Geschrieben 23. Januar 2003 hallo! also irgendwie bzw. irgendwo hab ich da immernoch ein problem mit der session! ich poste mal den quellcode von den ersten zwei seiten. die zweite seite habe ich vereinfacht, um jetzt nur die session zu berücksichtigen! seite 1: <?php session_start(); ?> <html> <head> </head> <body bgcolor=#000000 text=#FFFFFF link=#FFFFFF vlink=#FFFFFF alink=#FF0000> <?php echo "<font face=Verdana size=2>"; echo "<p><p>"; echo "<center><img src=images/intranet_login.jpg width=306 height=92>"; echo "<p>"; echo "<form action=login_ok_testsession.php mehthod=post>"; echo "<b>Name:</b><font color=#000000>......</font><input size=15 name=login_id>"; echo "<br><b>Passwort:</b> <input type=password size=15 name=password>"; echo "<p><input type=submit name=login_submit value=Login>"; echo "</form>"; if($login_submit) { $_SESSION['userName'] = $login_id; $_SESSION['userPass'] = $password; $_SESSION['login_submit'] = $login_submit; } ?> </body> </html> quellcode seite 2 (login_ok_testsession.php): <?php session_start(); ?> <html> <head> </head> <body> <?php echo "" . $_SESSION['userName']; ?> </body> </html> gibt es da einen grundsätzlichen fehler den ich da gemacht habe? der username wird auf jeden fall nicht ausgegeben! wie gesagt ich habe vorher noch nie mit sessions gearbeitet und soviel mit php habe ich auch noch nicht gemacht! also ich habe es auch schon mit $HTTP_SESSION_VARS versucht, aber daran liegts nicht! gruss da_ill Zitieren
Jaraz Geschrieben 23. Januar 2003 Geschrieben 23. Januar 2003 In die if Verzweigung kommst du doch gar nicht, da du direkt das zweite Skript aufrufst. Gruß Jaraz Zitieren
Da_Ill Geschrieben 23. Januar 2003 Autor Geschrieben 23. Januar 2003 aber muss ich nicht zuerst den button betätigen, damit die variable $login_id erzeugt wird? Zitieren
kathi008 Geschrieben 23. Januar 2003 Geschrieben 23. Januar 2003 hallo, die Variable existiert aber in dem ersten Script garnicht, die wird erst mit <form> an das zweite übergeben. Also entweder du machst if-Anweisung in dem zweiten Script oder du rufst in der Form das erste Script auf. Zitieren
Da_Ill Geschrieben 23. Januar 2003 Autor Geschrieben 23. Januar 2003 ja hab es gerade auch gemerkt! ich kann die variable ja dirket am anfang der zweiten seite zuweisen! danke! Zitieren
Jaraz Geschrieben 23. Januar 2003 Geschrieben 23. Januar 2003 Hier mal nen komplettes Beispiel: Datei start.php ------------------------------------------------- <?php session_start(); ?> <html><head><title>Text des universellen Titels</title></head> <?php if(isset($_POST['login'])){ $_SESSION['links'] = $_POST['links']; $_SESSION['rechts'] = $_POST['rechts']; ?> <frameset cols="50,50"> <frame src="links.php" name="Pille"> <frame src="rechts.php" name="Palle"> <noframes> Ihr Browser kann diese Seite leider nicht anzeigen! </noframes> </frameset> <?php }else{ ?> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> text links<input type="text" name="links"> text rechts<input type="text" name="rechts"> <input type="submit" name="login"> </form> <?php } ?> </html> ------------------------------------------------- Datei links.php ------------------------------------------------- <?php session_start(); ?> <html><head><title>Text des Titels</title></head> <body> <?php echo $_SESSION['links']; ?> </body> </html> ------------------------------------------------- Datei rechts.php ------------------------------------------------- <?php session_start(); ?> <html><head><title>Text des Titels</title></head> <body> <?php echo $_SESSION['rechts']; ?> </body> </html> ------------------------------------------------- Gruß Jaraz Zitieren
Da_Ill Geschrieben 25. Januar 2003 Autor Geschrieben 25. Januar 2003 gibt es eigentlich eine möglichkeit die session automatisch zerstören zu lassen, wenn der browser geschlossen wird? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.