Problem mit ini_set() bei meinem ISP

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

  • Problem mit ini_set() bei meinem ISP

    Hi Leute.

    Es geht sich um folgendes...

    Bin gerade dabei mich mit dem Thema sessions in PHP zu befassen und bin nun auf die Variante session.auto_start gestoßen. Auf meinem Localhost war das kein Problem session.auto_start auf 1 zu setzten, da ich ja nur die php.ini editieren musste.
    Nun will ich aber auch auf meinem Server bei meinem ISP (domainfactory.de) session.auto_start auf 1 setzen.

    mein erster Versuch sah wie folgt aus:
    PHP-Code:
    <?php
    ini_set
    ('session.auto_start','1');
    phpinfo();
    ?>
    Dadurch konnte ich LOCAL_VALUE auch in On bzw 1 umwandeln. MASTER_VALUE aber nicht. Dazu kommt noch, dass LOCAL_VALUE nie "anhaltend" geändert war, denn sobald ich einfach ganz normal phpinfo(); aufgerufen habe oder auch in einer anderen Datei
    PHP-Code:
    <?php
    echo ini_get('session.auto_start');
    ?>
    ausgeführt habe, war session.auto_start wieder 0.

    Könnt ihr mir helfen?

    Danke euch und noch einen angenehmen Tag,

    Nico

  • #2
    Re: Problem mit ini_set() bei meinem ISP

    Original geschrieben von rangernico
    Dadurch konnte ich LOCAL_VALUE auch in On bzw 1 umwandeln. MASTER_VALUE aber nicht.
    Ja, und?
    Was für dein Script relevant ist, ist der LOCAL_VALUE.
    Dazu kommt noch, dass LOCAL_VALUE nie "anhaltend" geändert war, denn sobald ich einfach ganz normal phpinfo(); aufgerufen habe oder auch in einer anderen Datei [...] ausgeführt habe, war session.auto_start wieder 0.
    Natürlich.

    Was hast du an der Beschreibung von ini_set im Manual nicht verstanden?
    Da steht doch ganz klar
    The configuration option will keep this new value during the script's execution, and will be restored at the script's ending.
    Wenn dir das nicht reicht, dann verändere den Wert an anderer Stelle, sofern möglich - bspw. in einer .htaccess-Datei.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ini_set ist nur inerhalb von einem script gültig
      also es ist leichter sofort session_start() zu screiben.
      oder du machst die Änderung direkt in PHP.INI
      Slava
      bituniverse.com

      Kommentar


      • #4
        der master value ist der value aus der php.ini, der local value ist der der gültig ist für das script
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          session.auto_start fällt in die gleiche Kategorie wie
          register_globals und magic_quotes.
          Wenn ini_set an die Reihe kommt, ist doch schon alles gelaufen... Es kommt zu spät!
          Diese Einstellungen müssen den Interpreter erreichen
          BEVOR das erste Zeichen des Quellcodes geparst wird.
          Wir werden alle sterben

          Kommentar


          • #6
            Original geschrieben von combie
            session.auto_start fällt in die gleiche Kategorie wie register_globals und magic_quotes.
            Wenn sich das darauf bezieht, es auf "on" zu stellen, gebe ich dir Recht.
            Wenn ini_set an die Reihe kommt, ist doch schon alles gelaufen... Es kommt zu spät!
            Diese Einstellungen müssen den Interpreter erreichen BEVOR das erste Zeichen des Quellcodes geparst wird.
            Nee, für session.auto_start ist das Quatsch.
            Du kannst doch die Session auch zur Scriptlaufzeit noch "manuell" mittels session_start() starten - was also sollte zu diesem Zeitpunkt für session.auto_start schon "zu spät" sein, was es für session_start() nicht wäre?

            Es ist nicht umsonst im Manual mit "Changeable: PHP_INI_ALL" vermerkt.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              session.auto_start fällt in die gleiche Kategorie wie
              register_globals und magic_quotes.
              Wenn ini_set an die Reihe kommt, ist doch schon alles gelaufen... Es kommt zu spät!
              Also zumindest der autostart funzt sehr wohl mit ini_set() Klar muss natürlich vor dem session_start() aufgerufen werden, aber dann geht das mittels ini_set()
              Und auch der MagicQuote sollte mittels ini_set() zu ändern sein. Logischerweise nur für die Laufzeit des Scriptes.

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Nein!

                session.auto_start
                Sagt doch, daß eben NICHT Session_start() in jedem
                Script aufgerufen werden muß, sondern PHP das
                immer automatisch erledigt!

                Ebenso mit magic_quotes_gpc, vor dem ini_set sind
                doch die POST und GET Daten schon längst importiert
                worden.

                Ausnahme:
                PHP-Code:
                  ini_set('magic_quotes_runtime'0);
                  
                ini_set('magic_quotes_sybase'0); 
                Diese kommen zur Wirkung!
                Zuletzt geändert von combie; 20.09.2006, 18:08.
                Wir werden alle sterben

                Kommentar


                • #9
                  @combie
                  Also bei unserem Hoster ist session_autostart auf on in der php.ini. Wenn ich jetzt keine Session will für ein File dann knall ich einfach ini_set() rein und setze den Wert auf 0. Dann wird ohne session_start() garantiert keine Session gestartet (so ist das zumindest bei unserem Hoster)
                  Ein var_dump($_SESSION) ergibt dann was von undefined...

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Doch du könntest (teilweise) Recht haben!
                    Zumindest einen session_start() macht es überflüssig!!


                    Aus einer php.ini
                    ; Initialize session on request startup. session.auto_start = 0
                    Aus: http://www.usegroup.de/software/phpt.../sessions.html
                    Ist session.auto_start nämlich 1, können Sie Sessions einfach verwenden, indem Sie das assoziative Array $_SESSION verwenden.
                    Ein var_dump($_SESSION) ergibt dann was von undefined...
                    Evtl ist var_dump dann nicht ganz das richtige Werkzeug

                    Aber ein einfacher zugriff auf $_SESSION funktioniert,
                    zumindest bei mir, wenn session.auto_start auf on steht.
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      Aber ein einfacher zugriff auf $_SESSION funktioniert,
                      zumindest bei mir, wenn session.auto_start auf on steht.
                      Das ist mir schon klar. Wäre auch blöd wenn es so ned funzen täte...
                      Aber ein var_dump() von $_SESSION wenn autostart auf off ergibt einfach nichts (zumindest ohne ein vorheriges explizites session_start())

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        Ich bin doch schon im Rückwärtsgang
                        Was willst du noch?

                        Oder soll ich das mit magic_quotes_gpc auch zurücknehmen?
                        Da bist du an der Reihe, auch mal den Rückwärtsgang einzulegen...
                        Wir werden alle sterben

                        Kommentar


                        • #13
                          Ich danke euch erstmal. Kann das so wie ihr es sagt nachvollziehen. Fragt sich nur, wozu es dann den LOCAL_VALUE für session.auto_start gibt, wenn ich entsprechend sowieso session_start() nehmen kann. Bringt ja nichts es für eine Prozedur auf automatischen Start zu setzen, denn dann kann ich es auch gleich manuell starten. Anderrum (session.auto_start immer on und nur über LOCAL_VALUE wenn gefordert ausschaltbar..) schon eher...

                          Wenn ich das jetzt richtig verstanden hab, muss ich also jedesmal session_start() schreiben, da ich auf die php.ini bei meinem ISP ja nicht zugreifen kann...?!

                          #nico

                          Kommentar


                          • #14
                            Okay dann mach ich auch mal auf R
                            Deine Argumente klingen logisch, dass POST und GET ja schon existieren, wenn die erste Zeile des Codes aufgerufen wird. Daher wird ein ini_set() so wie ich es gemeint habe wohl ins Leere laufen. Probiert habe ich das allerdings noch nie. Könnte ja vllt sein, dass ein ini_set() mit magic_quotes auf off ein stripslashes() auf GET und POST nach sich zieht

                            Ich probiers heute Abend nach der Arbeit mal aus...

                            Gruss

                            tobi
                            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                            Kommentar


                            • #15
                              Original geschrieben von rangernico
                              Fragt sich nur, wozu es dann den LOCAL_VALUE für session.auto_start gibt
                              Begreife bitte, das LOCAL_VALUE nichts damit zu tun hat, ob du eine Einstellung über ini_set() oder anders vornimmst.

                              LOCAL_VALUE bezeichnet das, was für dein aktuelles Script gültig ist.
                              Wenn ich das jetzt richtig verstanden hab, muss ich also jedesmal session_start() schreiben, da ich auf die php.ini bei meinem ISP ja nicht zugreifen kann...?!
                              Nein, wenn du noch mal aufmerksam die Antworten liest, stellst du vermutlich fest, dass dir bereits mögliche Alternativen genannt wurden.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X