Smarty, session.use_trans_sid und keine Session-ID im Link

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Smarty, session.use_trans_sid und keine Session-ID im Link

    Einen wunderschönen Guten Morgen allerseits,

    ich habe da ein Problem:

    session.use_cookies: On
    session.use_only_cookies: Off
    session.use_trans_sid: On
    url_rewriter.tags: a=href,area=href,frame=src,input=src,form=,fieldset=

    So schaut's bei mir aus, ich war der Meinung, dass PHP jetzt die session-id automatisch an alle Links anhängt, sollte der Benutzer Cookies nicht akzeptieren, aber...

    Ich habe da ein Smarty Template:
    PHP-Code:
    <ul id="mainnav">
      <li <?php if ($this->_tpl_vars['home_active']): ?>class="aktiv"<?php endif; ?>>
        <a  href="/">Startseite</a>
      </li>        
    <?php if ($this->_tpl_vars['logged_in']): ?>
      <li><a href="/?logout=1">Abmelden</a></li>
      <li <?php if ($this->_tpl_vars['profil_active']): ?>class="aktiv"<?php endif; ?>>
        <a href="/profil">Profil</a>
      </li>    
    <?php else: ?>
      <li <?php if ($this->_tpl_vars['login_active']): ?>class="aktiv"<?php endif; ?>>
        <a href="/login">
          <?php echo ((is_array($_tmp=@$this->_tpl_vars['login_text'])) ? 
            
    $this->_run_mod_handler('default'true$_tmp'Anmelden') : 
            
    smarty_modifier_default($_tmp'Anmelden')); 
          
    ?>
        </a>
      </li>
    <?php endif; ?>
      <li <?php if ($this->_tpl_vars['contact_active']): ?>class="aktiv"<?php endif; ?>>
        <a href="/contact">Kontakt</a>
      </li>
      <li <?php if ($this->_tpl_vars['disclaimer_active']): ?>class="aktiv"<?php endif; ?>>
        <a href="/disclaimer">Disclaimer</a>
      </li>
    <?php if ($this->_tpl_vars['admin_visible']): ?>
      <li <?php if ($this->_tpl_vars['admin_active']): ?>class="aktiv"<?php endif; ?>>
        <a href="/admin">Admin-Men&uuml;</a>
      </li>
    <?php endif; ?>
    </ul>
    Hinter keinem dieser Links finde ich die Session-ID, auch dann nicht, wenn ich die Cookie-Annahme verweigere.

    Die Adressen der Links werden durch mod_rewrite serverseitig wieder in datei.php?action=login oder was auch immer umgewandelt, aber das sollte ja nicht der Grund dafür sein, oder?
    Zuletzt geändert von mrhappiness; 09.08.2004, 09:48.
    Ich denke, also bin ich. - Einige sind trotzdem...

  • #2
    Re: Smarty, session.use_trans_sid und keine Session-ID im Link

    Original geschrieben von mrhappiness
    Die Adressen der Links werden durch mod_rewrite serverseitig wieder in datei.php?action=login oder was auch immer umgewandelt, aber das sollte ja nicht der Grund dafür sein, oder?
    das könnte durchaus dafür sorgen, dass du die SID serverintern wieder verlierst - sofern du den rest des query-strings nicht beim rewriten anhängen lässt.

    aber deine "schönen" URLs im quelltext der seite werden von mod_rewrite ja nicht berührt, also sollte PHP da auch die SID anhängen ...

    Ich habe da ein Smarty Template
    bin mir allerdings nicht sicher, ob PHP das auf die gleiche weise "parst" wie "normales" HTML, wenn es um das anhängen von SIDs geht.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: Smarty, session.use_trans_sid und keine Session-ID im Link

      Original geschrieben von wahsaga
      bin mir allerdings nicht sicher, ob PHP das auf die gleiche weise "parst" wie "normales" HTML, wenn es um das anhängen von SIDs geht.
      aber so rein prinzipiell sollte es php doch egal sein, ob das php-html-mischmasch direkt von mir oder von mir über den smarty-umweg kommt oder?

      andererseits: wenn ich den code von oben nehme, packe ihn in eine neue datei, schreibe ein session_start(); davor und führe es aus, dann hab ich die session-id

      wenn ich meine .htaccess in .dummy umbenenne, also kein mod_rewrite mehr mache funktioniert es ebensowenig, scheint also wohl irgendwie an smarty zu liegen

      bin mal gespannt, ob das schon jemand vor mir bemerkt / gelöst hat; im template immer SID anzuhängen find ich nämlich unschön
      Zuletzt geändert von mrhappiness; 09.08.2004, 10:03.
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        /me fehler gefunden haben tut

        PHP-Code:
        function gzip_possible() {
            if (
        headers_sent()) return false;
            if (
        strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false)
                return 
        'x-gzip';
            if (
        strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false)
                return 
        'gzip';
            return 
        false;
        }

        function 
        gzip_output($output) {
            if (
        $gzip gzip_possible()) {
                
        header('Content-Encoding: '.$gzip);
                return 
        gzencode($output);
            }
            else
                return 
        $output;

        gebe ich alles gzip'd aus, dann fehlt mir die session-id, gebe ich es einfach so aus, dann funktioniert es

        mal schauen, ob mir da noch was einfällt (oder einem von euch)
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          ich vermute mal, da wird sich dann nichts mehr dran machen lassen.
          PHP hängt die SID wohl erst ganz am ende der verarbeitung an - wenn du dann aber vorher schon gzip'd hast, kann es in diesen binärdaten natürlich nicht mehr nach links suchen ...
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar

          Lädt...
          X