Seite 1 von 1

"&" und in url benutzen

Verfasst: 18.12.2005 21:07
von AmShaegar
hallo... ich habe da ein problem...

mein forum läuft in einem iframe.. wenn man nun aber auf den link in einer e-mail klickt, ist es das natürlcih nicht... nun habe ich auf der seite mit dem iframe folgendes gemacht:

Code: Alles auswählen

<?php
$page = $_GET['page'];
if($page != '')
  {
  $page = 'http://forum.terraemotus.de'.$page;
  }
else
  {
  $page = 'home.php';
  }
?>
<iframe src="<?php echo $page; ?>" height="600" width="800" allowtransparancy="true" frameborder="0" name="main_frame"></iframe>
der link in den mail wegen der privaten nachrichte funktioniert, ABER: jetzt gibts ncoh ein problem, denn wenn man sich z.b. neu registriert, ensteht etwa so ein link in der e-mail: http://www.terraemotus.de/main.php?page ... key=3c62e3
dieser wird zur accountaktivierung verschickt...

nun gibt es aber "&"-zeichen in diesem link, was bedeutet, der pfad in dem iframe sieht in diesem fall nur so aus: http://forum.terraemotus.de/profile.php?mode=activate
und das bringt leider gar ncihts, da keine benutzerangaben mit übergeben werden...

also: hat jeamnd vielleicht einen klugen einfall, wie ich dieses problem lösen kann?
man könnte natürlcih jeden link so umschreiben, dass statt den "&" z.b. :und: in der url steht, und dieses dann in der datei mit dem iframe umformen, dafür müsste ich allerdings wissen, wo genau die ganzen links für alle e-mails die übers board verschickt werden entstehen... es würde mir auch schon helfen, wenn mich jeamnd darüber aufklärt....

danke schoneinmal für die aufmerksamket ;-)


*EDIT*
mir fällt grad auf, da gibt es noch ein problem: damit solche links in den e-mails überhaupt entstehen habe ich die forendomain auf "www.terraemotus.de/main.php?page=" geändert... das ist aber taktisch unklug, da ich nun nicht mehr in den adminbereich komme und nach dem einloggen ein doppelter iframe entsteht... also fällt das acuh weg... ht jemand eine idee, wie ich aus dem allen eine passable lösung finde?

Verfasst: 18.12.2005 22:17
von Underhill
Hi,

kommt denn ein
&
im Script an?

Was zeigt

Code: Alles auswählen

echo $page;
an der Stelle vor der IF-Abfrage?

Hast du schon mal das
&
gegen ein
&
ersetzt?


Gruss
Underhill

Verfasst: 19.12.2005 15:51
von AmShaegar
$page = /profile.php?mode=activate

alles was danach kommt, also

Code: Alles auswählen

&u=21&act_key=3c62e3
wird ja als $_GET['u'] und $_GET['act_key'] definiert...

wenn ich in diesem & durch & erstze hab ich das gleche problem immernoch, da ja wieder ein & drin vorkommt... außerdem müsste ich dann trotzdem wissen, wo all die links definiert werden.

Verfasst: 19.12.2005 17:04
von Underhill
Ah,

ich glaube jetzt habe ich es verstanden.. :oops:

Warum nimmst du nicht den gesamten QueryString und nimmst nur die "falsche" Domain raus?


Gruss
Underhill

Verfasst: 19.12.2005 17:25
von AmShaegar
tut mir leid, aber ich verstehe nicht ganz was du meinst. was meinst du mit "falsche" domain und wie soll ich das anstellen... beachte was ich nachträglich im beitrag geschrieben hab. ich darf den domainnamen in der configtabelle des forums nciht verändern...

Verfasst: 19.12.2005 19:38
von Underhill
Hi,

ich meine sowas:

Code: Alles auswählen

<?php

// Bei Aufruf von z.B.: http://www.terraemotus.de/main.php?page=/profile.php?mode=activate&u=21&act_key=3c62e3

$in_url = $_SERVER['QUERY_STRING']; // page=/profile.php?mode=activate&u=21&act_key=3c62e3 - bleibt ueber
$in_url = trim($in_url);

if (isset($in_url))
{
	$in_url = preg_replace("/page\=/", "", $in_url); // /profile.php?mode=activate&u=21&act_key=3c62e3 - bleibt ueber
	$new_url = 'http://forum.terraemotus.de' . $in_url; // http://forum.terraemotus.de/profile.php?mode=activate&u=21&act_key=3c62e3 kommt raus
}
else
{
	// ungueltiger der aufruf ohne aufruf ohne query_string
}

?>
Gruss
Underhill

Verfasst: 19.12.2005 21:50
von AmShaegar
vielen, vielen, vielen, vielen dank!!!!

mir fehlte die kenntniss über so etwas:

Code: Alles auswählen

$_SERVER['QUERY_STRING'];
dein code ist perfekt!!! besten dank nochmal!