php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.06.2005, 18:50  
Gast
 
Beiträge: n/a
Standard Session auf andere Domain übergeben?

Hallo, meine Session erstele ich so

PHP-Code:
<?php
session_name
("session");
session_start();
$sess session_id();
?>
Nun habe ich auf der Seite einen Link, welche zu einer anderen Domain auf dem selben Server geht.

Derzeit mache ich den Wechsel zur anderen Domain so:

Header('Location: http://demo.meinedomain.de/index.php');

Wie kann ich es machen, das die Session übergeben wird und auf der Subdomain weiter verwendet wird.

Auf der Subdomain wird der Sessioncode auch in der globalen Daten gespeichert.

Hat jemand dazu Hilfe?

Mike
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.06.2005, 19:38  
Gast
 
Beiträge: n/a
Standard

Gibt es da keine Lösung oder hat nur niemand ne Idee? Wäre über Hilfe dankbar.

Mike
 
Alt 16.06.2005, 19:47  
Erfahrener Benutzer
 
Registriert seit: 11.07.2004
Beiträge: 269
function
function eine Nachricht über ICQ schicken
Standard

ich hab zwar jetz nicht wirklich ne idee aber ich denke gerne mit
du übergibts die daten denke ich mal via cookies oder? haste es denn schonmal ausprobiert einfach ganz stumpf drauf zuzugreifen? oder erstellt der server dann automatsihc ne neue session?
__________________
Es ist ein großer Trost, andere dort scheitern zu sehen, wo man selbst gescheitert ist. (William Somerset Maugham)
function ist offline  
Alt 16.06.2005, 19:56  
Gast
 
Beiträge: n/a
Standard

gespeichert werden die nicht in einen cookie. Der Server erstellt automatische die neue Session.
 
Alt 16.06.2005, 20:08  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Wenn die SID im Cookie gespeichert wird (und das scheint ja so), dann kommt diese im Skript auf der anderen Domain natürlich nicht an, da der Client einen Keks ja nicht an eine andere Domain verschickt. Übergib einfach mal explizit die SID in dem Location-Header, dann sollte das eigentlich funktionieren.

Basti
Basti ist offline  
Alt 16.06.2005, 20:10  
Gast
 
Beiträge: n/a
Standard

Es wird kein Coockie geschrieben. HAbe schon versucht die Session im Header zuübergeben, aber es kommt der selbe Fehler

Mike
 
Alt 16.06.2005, 22:24  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Probier mal das hier. Vielleicht kommst du so auf den Fehler:

PHP-Code:
<?php
class SessionDebug
{
    private 
$parameters = array(
        
'session.save_path',
        
'session.name',
        
'session.save_handler',
        
'session.auto_start',
        
'session.gc_probability',
        
'session.gc_divisor',
        
'session.gc_maxlifetime',
        
'session.serialize_handler',
        
'session.cookie_lifetime',
        
'session.cookie_path',
        
'session.cookie_domain',
        
'session.cookie_secure',
        
'session.use_cookies',
        
'session.use_only_cookies',
        
'session.referer_check',
        
'session.entropy_file',
        
'session.entropy_length',
        
'session.cache_limiter',
        
'session.cache_expire',
        
'session.use_trans_sid',
        
'session.bug_compat_42',
        
'session.bug_compat_warn',
        
'session.hash_function',
        
'session.hash_bits_per_character',
        
'url_rewriter.tags');

    private 
$debug_data = array();

    public function 
read_parameter($sect$parameter false)
    {
        
$parameters = ($parameter) ? array($parameter) : $this->parameters;

        foreach (
$parameters as $parameter) {

            
$this->debug_data[$sect][$parameter] = ini_get($parameter);
        }
    }

    public function 
read_session_id($sect)
    {
        
$this->debug_data[$sect]['session_id'] = session_id();
    }

    public function 
read_session_file_data($sect)
    {
        
$this->debug_data[$sect]['save session in files'] = (string)ini_get('session.save_handler') === 'files';

        
$session_file ini_get('session.save_path') . '/sess_' session_id();

        
$this->debug_data[$sect]['expected_session_file'] = $session_file;
        
$this->debug_data[$sect]['file_exists'] = (string)is_file($session_file);
        
$this->debug_data[$sect]['file_is_readable'] = (string)is_readable($session_file);
    }

    public function 
print_debug()
    {
        echo 
"<pre>\n";

        
$sect_old '';

        foreach (
$this->debug_data as $sect => $data) {

            if (
$sect !== $sect_old) {

                echo 
"\n\n$sect\n\n";
                
$sect_old $sect;
            }
            
$max_chars max(array_map ('strlen'array_keys($data)));

            foreach (
$data as $key => $value) {

                echo 
str_pad($key$max_chars) . " : $value\n";
            }
        }
        echo 
"</pre>\n\n";
    }
}

$SessionDebug = new SessionDebug();
ini_set('session.use_trans_sid'0);
session_start();
if (!
$_SESSION['test']) $_SESSION['test'] = 0;
$SessionDebug->read_parameter('Nach session_start()');
$SessionDebug->read_session_id('Nach session_start()');
$SessionDebug->read_session_file_data('Nach session_start()');
$SessionDebug->print_debug();

if (isset(
$_SESSION['test'])) echo $_SESSION['test']++ . "
"
;

echo 
'<a href="http://example.com/session_test.php?'
     
session_name() . '=' session_id()
     . 
"\">Domain 1</a>
"
;
echo 
'<a href="http://example.net/session_test.php?'
     
session_name() . '=' session_id()
     . 
"\">Domain 2</a>";
?>
Basti
Basti ist offline  
Alt 17.06.2005, 08:03  
Erfahrener Benutzer
 
Registriert seit: 01.09.2004
Beiträge: 532
PHP-Kenntnisse:
Fortgeschritten
schifti
Standard

du könntest die Session Daten via POST weiter geben, damit kommen sie beim anderen Server und können dort wieder in ne Session geschrieben werden
__________________
MFG Schifti
auch ein Forum (PHP)
schifti ist offline  
Alt 17.06.2005, 08:29  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Die Daten liegen doch auf dem selben Server. Und, wenn die beiden Server- bzw. PHP-Prozesse der beiden Domains unter dem gleichen Benutzer laufen, dann sollten beide auch mit der SID auf die Session-Dateien zugreifen können (vorausgesetzt, er verwendet keinen eigenen Speichermechanismus, über den das nicht funktioniert). Und, da er eine Umleitung via Location-Header anstrebt, fällt die POST-Variante erstmal weitgehend flach (obwohl es natürlich der letzte Weg wäre, die Daten einfach an das andere Skript auf der anderen Domain zu übergeben).

Basti
Basti ist offline  
Alt 17.06.2005, 08:35  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
Zitat von Basti
Die Daten liegen doch auf dem selben Server. Und, wenn die beiden Server- bzw. PHP-Prozesse der beiden Domains unter dem gleichen Benutzer laufen, dann sollten beide auch mit der SID auf die Session-Dateien zugreifen können (vorausgesetzt, er verwendet keinen eigenen Speichermechanismus, über den das nicht funktioniert). Und, da er eine Umleitung via Location-Header anstrebt, fällt die POST-Variante erstmal weitgehend flach (obwohl es natürlich der letzte Weg wäre, die Daten einfach an das andere Skript auf der anderen Domain zu übergeben).

Basti
da könnte schon ein problem sein, auf dem server eben "accounts" für die jeweiligen Domains augesetzt sind und jeder seinen eigenen benutzer für php und dann wahrscheinlich auch ein eigenes tmp-verzeichnis für die sessions hat, ist das so nicht zu realisieren, eine möglichkeit wäre eine Art zwischenschritt und schauen ob man die Daten einfach in der Datenbank speichert (worauf beide Domains zugreifen können) und dann einfach die SID übergibt und mittels session_set_save_handler() sich eine eigene session-verwaltung schreib. ist zwar bissel arbeit unter umständen sollte aber realisierbar sein.

mfg
robo47
robo47 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
Cookie zusätzlich für eine andere Domain setzen DonTermi PHP Tipps 2007 5 21.05.2007 13:52
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
Session Logout Login Navigation TailerD PHP Tipps 2006 10 24.06.2006 17:12
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Bei Session - verfall socke PHP Tipps 2005-2 12 01.09.2005 02:30
Session einer neuen Domain übergeben. PHP Tipps 2005-2 5 23.08.2005 23:41
Klassenobjekt in ner Session speichern?! Finkman PHP Tipps 2005-2 5 09.08.2005 00:38
Session wird nicht angelegt PHP Tipps 2005-2 7 24.07.2005 13:35
Kreieren einer Session PHP Tipps 2005 11 28.05.2005 15:16
.de.vu DOmain!!! Meine Session funzt nicht!! Wieso? 18inch PHP Tipps 2005 3 27.04.2005 21:40
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28
$_GET und Session PHP Tipps 2004 9 20.06.2004 19:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
session über mehrere domains, php session domain, php session an andere domain übergeben, php session an anderen server übergeben, session auf andere domain übergeben, session an andere domain übergeben, session mehrere domains, php session auf anderen server übergeben, session 2 domains, zend session an andere domain übergeben, php session andere domain, session two domains, neue session von anderer domain starten, session für mehrere domains, session über 2 domains, session von einer domain zur anderen, session an anderen server übergeben, session verschiedene domains, php session zwei domains gleicher server, session über 2 domains auf dem selben server

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.