Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

B) mit Sessions arbeiten. Dann kannst du die Daten von mehreren Seiten aus abrufen.

wie funktioniert das mit den sessions? ich programmiere noch nicht sehr lange mit php! aber trotzdem danke!

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

also irgendwie funktioniert das alles nicht! ich schein da echt zu blöd für zu sein...

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

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>";

}

}

}

?>

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?

ä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!

kann mir denn jemand erklären wie das mit sessions funktioniert? die andere lösung scheint ja nun nicht zu gehen! :confused:

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

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

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

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

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

In die if Verzweigung kommst du doch gar nicht, da du direkt das zweite Skript aufrufst.

Gruß Jaraz

aber muss ich nicht zuerst den button betätigen, damit die variable $login_id erzeugt wird?

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.

ja hab es gerade auch gemerkt! ich kann die variable ja dirket am anfang der zweiten seite zuweisen! danke!

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

gibt es eigentlich eine möglichkeit die session automatisch zerstören zu lassen, wenn der browser geschlossen wird?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.