Frage

Ich muss eine kleine Website für meine Alumni-Gruppe verwalten, die von meinem ISV ​​gehostet wird.Die URL ist etwa www.myIsv.com/myWebSite/, was ziemlich hässlich und sehr leicht zu vergessen ist.Der Hauptadministrator des Webservers hat einen Domainnamen www.mysmallwebsite.com registriert und eine index.html mit folgendem Inhalt erstellt:

<html>
<head>
<title>www.mysmallwebsite.com</title>
</head>

<frameset>
   <frame src="http://www.myIsv.com/myWebSite/" name="redir">
      <noframes>
        <p>Original location:
          <a href="www.myIsv.com/myWebSite/">http://www.myIsv.com/myWebSite/</a>
        </p>
      </noframes>
 </frameset>  
</html>

Es funktioniert gut, aber einige Funktionen wie PHP-Sitzungsvariablen funktionieren nicht mehr!Hat jemand einen Vorschlag zur Korrektur?

Bearbeiten:Dies funktioniert nicht sowohl im IE als auch in Firefox (keine Plugins)

Danke

War es hilfreich?

Lösung

Sitzungen sind an den Server gebunden UND die Domäne.Die domänenübergreifende Verwendung von Framesets führt zu Störungen jeglicher Art, da dies einfach nicht vorgesehen ist.

Versuchen Sie, mit Apache Mod Rewrite eine „Passthrough-Umleitung“ zu erstellen, die „Proxy„Flag ([P]) ist in der Regel das magische Flag, das Sie benötigen

Dokumentation unter http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Andere Tipps

Wie meinst du das?Wollen Sie damit sagen, dass die PHP-Sitzung verloren geht, wenn Sie von www.mysmallwebsite.com zu www.myIsv.com/myWebSite/ wechseln?

PHP erkennt die Sitzung anhand einer ID (alphanumerischer Hash, der auf dem Server generiert wird).Die ID wird von Anfrage zu Anfrage mithilfe eines Cookies namens PHPSESSID oder etwas Ähnlichem weitergegeben (Sie können die von einer Website gesetzten Cookies mit Hilfe Ihres Browsers anzeigen ...In Firefox gibt es Firebug + FireCookie und die wunderbare Web Developer Toolbar ...mit dem Sie die Liste der Cookies problemlos einsehen können).

Also ...PHP übergibt die Sitzungs-ID über das PHPSESSID-Cookie.Sie können die Sitzungs-ID jedoch als einfachen GET-Anfrageparameter übergeben.

Wenn Sie also den HTML-Link zu dem hässlichen Domänennamen platzieren und davon ausgehen, dass es sich um denselben PHP-Server handelt (mit denselben initialisierten Sitzungen), können Sie ihn folgendermaßen formulieren ...

www.myIsv.com/myWebSite/?PHPSESSID=<?=session_id()?>

Ich habe eine Weile nicht mit PHP gearbeitet, aber ich denke, das wird funktionieren.

Funktionieren Sitzungsvariablen, wenn Sie klicken? http://www.myIsv.com/myWebSite/ direkt?Es scheint mir, dass die Serverkonfiguration vorschreibt, ob Sitzungen funktionieren oder nicht.Wenn Sie jedoch irgendwie eine Sitzung auf www.mysmallwebsite.com starten (es sieht nicht so aus, als würden Sie PHP verwenden, aber vielleicht tun Sie das), werden Sie keine Sitzungsdaten übertragen können, ohne ein Backend zu schreiben Logik, die die Sitzung von Server zu Server verschiebt.

Fügen Sie am Anfang Ihres Skripts eine session_start() ein und prüfen Sie, ob Sie wieder auf die Variablen zugreifen können.

Es funktioniert nicht, da auf dem Client Sitzungen pro Domäne stattfinden.Alle Cookies werden für mysmallwebsite.com gespeichert, sodass myIsv.com nicht darauf zugreifen kann.

@pix0r www.myIsv.com/myWebSite/ -> Session-Variablen-Arbeit www.mysmallwebsite.com Sitzungsvariable -> funktioniert nicht

@Alexandru Leider befindet sich dies nicht auf demselben Webserver

Welchen Browser/welches Ad-on haben Sie?Möglicherweise blockiert Ihr Browser oder eine andere Software (möglicherweise sogar der Webserver) die Sitzungen http://www.myIsv.com/myWebSite/ Arbeiten innerhalb des Frames, da er sich auf einer anderen Site befindet, und denken, dass es sich um einen XSS-Angriff handelt.

Wenn die Sitzung funktioniert http://www.myIsv.com/myWebSite/ Ohne den Rahmen könnten Sie uns jederzeit eine Weiterleitung senden http://www.mysmallwebsite.com zur hässlichen URL, anstatt den Frame zu verwenden.

BEARBEITEN:Ich habe gerade Ihren Frame-Code auf einer meiner Websites ausprobiert, die Sitzungen verwendet. Firefox funktionierte einwandfrei, ich konnte mich anmelden und angemeldet bleiben, aber IE7 hat mich sofort wieder abgemeldet.

Wenn Sie also den HTML-Link zu dem hässlichen Domänennamen platzieren und davon ausgehen, dass es sich um denselben PHP-Server handelt (mit denselben initialisierten Sitzungen), können Sie ihn folgendermaßen formulieren ...

www.myIsv.com/myWebSite/?PHPSESSID=<?=session_id()?>

Aus Sicherheitsgründen hoffe ich wirklich, dass das nicht funktioniert

Sie könnten auch ein Cookie auf der Benutzerseite setzen und dann direkt nach der Umleitung prüfen, ob dieses Cookie vorhanden ist. Wenn Sie sich Sorgen um benutzerfreundliche URLs machen, bedeutet dies, dass Sie in der Abfragezeichenfolge keine PHPSESSID weitergeben müssen .

Wenn Leute unter www.mysmallwebsite.com ankommen, würde ich einfach zu weiterleiten http://www.myIsv.com/myWebSite/

<?php header('Location: http://www.myIsv.com/myWebSite/'); ?>

Das ist alles, was ich in www.mysmqllwebsite.com/index.php hätte
Auf diese Weise müssen Sie sich keine Gedanken über die Browser-Kompatibilität machen oder darüber, ob die Sitzungen funktionieren. Führen Sie einfach die Umleitung durch, und schon ist alles in Ordnung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top