"&" und in url benutzen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

"&" und in url benutzen

Beitrag 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?
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag 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
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag 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.
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag 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
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag 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...
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag 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
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag 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!
Antworten

Zurück zu „Coding & Technik“