Zum Inhalt springen

PHP - Seite mit Frames


Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

}

}

}

?>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...