Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit Variablenübergabe im Frameset ! [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit Variablenübergabe im Frameset !


 
Inuyasha
11-07-2006, 23:02 
 
Guten Tag,
Ich bin grade dabei ein kleines Spiel zu Programmieren mit PHP doch es ist ein großes Problem aufgetaucht !!!

Nach dem Login werde ich auf eine Seite (game.php) geleitet die mich wiederum gleich weiter Leitet zu einer Seite (cooc.php).Name cooc weil das spiel so heist naja egal aber die weiterleitung auf cooc.php ist ein Problem da es ein Frameset ist

Quelle:
cooc.php:
<frameset cols="170,*">
<frame src="menue.php" name="links">
<frame src="uebersicht.php" name="rechts">
</frameset>

Von der Seite game.php wird mir die weiterleitung
cooc.php?nick=Keyto&pass=886bb73b315... und so weiter geben das wollte ich auch so aber eben wollte ich aus 1, 2 Seiten machen also eben ein Frameset.Allerdings soll die Datei uebersicht.php genau so wie die Datei menue.php die Variablen auslesen können die ich über den Link ?... übergebe allerdings keiner der beiden Seiten erkennt die Variablen.Als der Link aber noch uebersicht.php?nick=Keyto&pass... ohne Frameset halt hieß funktionierte das noch...Anscheinend werden die Variablen zu cooc.php übergeben aber nicht zu den beiden Unterseiten.
Wie kann man das umgehen ich habe das schonmal irgentwo gesehen wo das ging.
Kurz:Wie übergebe ich die Variabeln auf die beiden Frameset-Seiten !
mfg Inuyasha

 
skrejci
11-07-2006, 23:10 
 
Hai!

Du musst die Parameter, die du der cooc.php übergibst, den einzelnen Seiten im Frameset weitergeben.

Lies in der Datei cook.php die $_GET-Parameter aus und hänge sie an die Dateiverweise aus!

Beispiel cooc.php


<?php
$nick = $_GET['nick']; // je nach Sicherheit sollten hier die...
$pass = $_GET['pass']; // ... Variablen geprüft werden!
?>

<frameset cols="170,*">
<frame src="menue.php?nick=<?php echo $nick; ?>&pass=<?php echo $pass; ?>" name="links">
<frame src="uebersicht.php?nick=<?php echo $nick; ?>&pass=<?php echo $pass; ?>" name="rechts">
</frameset>



Damit kannst du in den Seiten menue.php und uebersicht.php wiederum die $_GET - Parameter auswerten!

LGs Steafn

 
jahlives
11-07-2006, 23:11 
 
Also in diesem Falle wirst du den Aufbau von cooc.php von PHP machen lassen müssen. Die Werte werden ja an cooc.php geschickt. Diese kennt dann die Werte und baut damit das Frameset auf und gibt den src die entsprechenden Var Werte mit

<a href="cooc.php?var=2&var1=3">...</a>


echo '<frameset cols="170,*">';
if($_GET['var'] && $_GET['var1']){
echo '<frame src="menue.php?var='.$_GET['var'].'&amp;var1='.$_GET['var1'].'" name="links">
<frame src="uebersicht.php?var='.$_GET['var'].'&amp;var1='.$_GET['var1'].'" name="rechts">
</frameset>';
else{
//do something else
}

Gruss

tobi

 
Slava
11-07-2006, 23:13 
 
hast du auch argument "target" bei den links benutzt?
wenn du aber bei 2 frames gleichzeitig Änderungen haben willst, dann kommst du ohne Javascript leider nicht weiter

 
Inuyasha
11-07-2006, 23:17 
 
Oh Vielen Vielen Dank sogar so schnell geantwortet es funktioniert :)
mfg Inuyasha

 
php-sebi
11-07-2006, 23:31 
 
Hi Inuyasha,
sowie ich das verstanden hab willst du Passwort und Name an die beiden php-Dateien weitergeben. Da Name und Passwort einfach sichtbar sind würd ich dir empfehlen eher $_SESSION[] Variabeln zuverwenden als $_GET[]. Werden verschlüsselt als Session-Cookie gespeichert und sind von jeder Seite abrufbar. session variabeln sind genauso ein array wie die get var. Du musst nur am anfang jeder seite session_start(); einbaun.

Z.B.
session_start();
$_SESSION['name']="Name";
$_SESSION['pass']="Passwort";


Gruß Sebi

 
Inuyasha
11-07-2006, 23:35 
 
Ich habe noch eine frage die hier reinpasst aber wie ich finde wesentlich komplizierter ist.Ich versuche sie zu Erklären...
Gleicher Aufbau wie oben !
Links ist das Menü und Rechts ist die übersicht !
Die übersicht zeigt momentan die Rohsoffe an und darüber befindet sich so ein Select Formular !

Quelle:
uebersicht.php:
.....
<?php
echo'<form name=land>
<select name=navi onChange="go()">
<option value="">Länder</option>';

chdir ('/web/????????/land/');
for($count=0;$count<$landzahl;$count++){
$link=$nicklandopen[$count];
$dateiname=$nicklandopen[$count].".map";
$name=file($dateiname);
$nameright=explode("/",$name[1]);
echo'<option value="uebersicht.php?nick='.$nickr.'&pass='.$passr.'&map='.$link.'">'.$nameright[0].'&nbsp;&nbsp;&nbsp;['.$nicklandopen[$count].']</option>';
}
echo'
</select>
</form>';
......
Da erstellt er das Selectformular jenachdem wie viele Länder man hat !
Und wenn ich jetzt z.B. 2 Länder habe einer heißt Venus der das andere Mars habe ,habe ich ein Problem.Jedes Land ist selbstständig das heißt Venus hat z.B. anderere Forschung ,Rohstoffmengen und natürlich auch verschiedent viele Einheiten!!!!
Das eigentliche Problem ist jetzt das menue. das führt jetzt zwar mit Link z.B. zu buildings.php (Gebäude) oder so aber ich kann hinter dem ? die Variable nicht nicht fetshalten welches Land ich grade bei übersicht.php ausgewählt habe!!!Das heißt das die buildings.php garnicht weiß für welches land gebaut werden soll ,da ich das ja auf der rechten Seite auswähle aber der Link auf der Linken seite ist...Aber (ich weiß nich ob jemand kennt) z.B. Ogame hat das auch so und da geht das auch irgnetwie :(

Wenn meine Frage jetzt hier niemand verstanden hat ist es nicht so schlimm und der sie verstanden hat kriegt von mir respeckt :)

PS:Session habe ich noch nie richtig verstanden?¿ Wie müsste ich sie denn einbinden und wie rufe ich sie wieder ab ?(Geltungsbreich?)
mfg Inuyasha

?>

 
php-sebi
11-07-2006, 23:58 
 
Also $_SESSION[] ist eine superglobale Variable wie $_POST[], $_GET[] oder$_COOKIE..., du hast sie jedoch immer zuverfügung bis du den Browser schließt, wie ein session-Cookie.

Du kannst z.B. in einer anderen php Datei auf die session var zugreifen, sofern du vorher die funktion session_start(); aufgerufen hast.
wenn du in einer Datei z.B. menu.php
$_SESSION['name']="Name";
$_SESSION['pass']="Passwort";
in session variabln schreibst kannst du in einer anderen egal welcher und wie du zu ihr gekommen bist sie wieder auslesen oder z.B. anzeigen: echo "Name:".$_SESSION['name']."<br>Passwort:".
$_SESSION['pass'];
oder den Inhalt der session var einfach an eine normale var übergeben:
$name=$_SESSION['name'];
$passwort=$_SESSION['pass'];


Ich hoffe ich hab dir damit weitergeholfen.
Gruß Sebi

 
jahlives
12-07-2006, 00:02 
 
Du kannst z.B. in einer anderen php Datei auf die session var zugreifen, sofern du vorher die funktion session_start(); aufgerufen hast.

Kleine Anmerkung noch: Das funzt aber auch nur wenn die Session ID an die nächste Seite weitergegeben wird. Sei es weil der Client Cookies akzeptiert oder die ID an den Link angehängt wurde.

Gruss

tobi

 
php-sebi
12-07-2006, 00:12 
 
Echt? Bei mir hat das immer funktioniert ohne dass ich eine ID weiter gegeben hab.
Na ja, aber so viel Ahnung hab ich dann aber auch net.
Aber immerhin wäre mir dann klar für was session_id() zuständig is.(hab ich net geblickt für was das sein soll, als ich mich damit beschäftigt hab)

Gruß Sebi

 
mäander_
12-07-2006, 00:18 
 
Im Normalfall, wenn cookies erlaubt sind, zumindest "sessioncookies" muss man sich mit session_id() nicht herumschlagen. session_start() ist das einzige, was es braucht.

Bei <FRAME> ist eine Besonderheit, dass die Skripte nicht parallel, sondern der Reihe nach ausgeführt werden, damit nur je eines auf die Session-Variabeln zugriff hat. es wird ein lock gesetzt. Sobald man session_write_close() aufruft, werden die sessionvariabeln gesichert und freigegeben.

 
php-sebi
12-07-2006, 00:27 
 
Man könnte aber bei der Datei die im 2. Frame die session variabeln wieder auslesen, sofern man session_write_close() benutzt hat.
Muss man session_write_close() immer verwenden wenn man session ID() verwendet?

Gruß Sebi

PS: Danke für die Aufklärung!!!!

 
Inuyasha
12-07-2006, 14:10 
 
Das mit den Session hörte sich mal wieder vielversprechend an aber mal wieder klappt bei diesen session garnichts außer das viele Fehlermeldung wie already send kommen. Gibt es nicht noch eine andere Möglichkeit ? Ich habe zwar schon eine lösung ,das die rechte Seite das Land ienfach in eine Datei schreibt und später wieder ausgelsen werden kann aber so viel aufwand ?
mfg Inuyasha

 
jahlives
12-07-2006, 20:36 
 
Das mit den Session hörte sich mal wieder vielversprechend an aber mal wieder klappt bei diesen session garnichts außer das viele Fehlermeldung wie already send kommen. Gibt es nicht noch eine andere Möglichkeit ?

Ja die gibt es: Richtig machen ;) Lies mal folgenden Sticky hier im Forum zum Thema http://www.php-resource.de/forum/showthread.php?s=&threadid=62965

Gruss

tobi

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:54 Uhr.