Noch ein Headerproblem.

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

  • Noch ein Headerproblem.

    Moinsen.

    Ich habe das Problem, das der
    PHP-Code:
    header("Location: 
    zwar local auf meinem Gerät, nicht aber
    bei meinem Provider auf dem Server ausgeführt wird.

    Versionen:
    Local: PHP 4.3.2 / Apache 1.3.27
    Schlund: PHP 4.2.3 / Apache 1.3.27

    Register Globals ist in beiden Fällen ON.



    Hier mal den Code der Datei:
    PHP-Code:

    <?php

    {
     
    $datum date("d.m.Y. G:i ");
      
    $query "UPDATE " MEMBERTABLE ." SET UserName = '$user', Vorname ='$vorname', Name ='$zuname', UserLevel ='$level', UserMail ='$email', ICQ ='$icq', AIM ='$aim', MSN ='$msn' WHERE UserId ='$uid'";
     
    $dummy my_query($query);
    }
    header("Location: account.php?do=start");

    ?>
    Die Datei wird ausgeführt bei account.php?do=save und soll anschließend auf Start weiterspringen.
    Es kommt auch keine Fehlermeldung, der Befehl wird auf dem Webserver einfach nicht ausgeführt während er Local problemlos funzt.

    Die geforderten Änderungen in der DB werden auch ausgeführt.

    Hab ich hier nen Denkfehler, oder kann es sein, das es an der Serverconfig des Providers liegt?

  • #2
    Hab ich hier nen Denkfehler, oder kann es sein, das es an der Serverconfig des Providers liegt?
    Das ist anzunehmen. Probier zunächst mal den absoluten Pfad zu dem Script aus.

    Siehe php-handbuch:
    Anmerkung: HTTP/1.1 verlangt einen absoluten URI inkl. dem Schema, Hostnamen und absoluten Pfad als Argument von Location:, aber manche Clients akzeptieren auch relative URIs. Gewöhnlich können Sie mittels $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] und dirname() aus einem relativen Link einen absoluten URI selbst erstellen:

    NOCHMAL BEARBEITET:

    PHP-Code:

    <?php
    header
    ("Location: http://".$_SERVER['HTTP_HOST']
                          .
    dirname($_SERVER['PHP_SELF'])
                          .
    "/".$relative_url);
    ?>



    Und vielleicht ausserdem noch mal ein exit; an Ende, damit nicht weiter ausgeführt wird, auch wenn die Umleitung nicht klappt.
    Zuletzt geändert von dirk; 25.04.2003, 11:47.
    /* Meine Lieblingsantwort: Read The Fucking Manual */

    Kommentar


    • #3
      @dirk
      dein beispiel ist nicht korrekt. hast wohl vergessen, die url-umwandlung abzuschalten.

      @akuehnap
      in der tat ist dirk's ansatz richtig. checke es mit festen path-angaben ab. schliesslich funktioniert header() in deinen beiden version korrekt. selbst auf meiner alten php 4.0.6 lief es....

      wenn du hiermit
      PHP-Code:
      header("Location: http://www.google.de"); 
      auf google landest, funktioniert es.

      teste es und du wirst sehen, dass es geht.
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        fahlerhaftes posting

        Ja genau, ich dachte halt, den Code mit den VB-tags für php zu umschliessen, reicht auch -> usability?
        Wie macht man das korrekt?
        /* Meine Lieblingsantwort: Read The Fucking Manual */

        Kommentar


        • #5
          unter der textarea findet man ne checkbox mit folgendem text: "URLs automatisch umwandeln: fügt automatisch und um Internetadressen ein. ". das ding deaktivieren, und ales wird gut
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            Versucht

            Ich noch mal, also ich habe jetzt mal rumprobiert.

            Mit Totalem Pfad, mit URL (sogar mit Google )

            Nichts, das Dinge geht nicht weiter.

            Ich gestehe, ich habe sogar Pfusch versucht:
            PHP-Code:
            echo '<meta http-equiv="refresh" content="1; URL='.SERVERPATH.'index.php">'
            Auch nichts. Ich mach jetzt mal eins:
            Ich bin noch bis 22 Uhr im Büro, anschließend daheim.

            dann mach ich den Ordner mal leer und lade den Kram neu hoch.

            Eventuell liegt ja noch irgendeine Mülldatei auf dem Server die aus
            welchen Gründen auch immer, da was hängt.

            Eine Frage in der Zwischenzeit:

            Eines habe ich noch nicht probiert.
            Dirk hatte den exit; erwähnt.
            Wo genau muss der hin?
            Über oder unter den Headerlocation?

            Thx 4 help

            AK

            Kommentar


            • #7
              wenn schon, dann dahinter. vorher macht es keinen sinn.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                THX



                Kommando zurück:
                Es geht nur mit dem Metatag...
                Wenn das leeren nd neu hochladen nichts bringt, hänge ich an den Metatag einfach die SessionID
                Zuletzt geändert von akuehnap; 25.04.2003, 15:01.

                Kommentar


                • #9
                  Hmm

                  Tja, ich habe den Serverinhalt gelöscht, neu aufgespielt, kein Erfolg.
                  Also habe ich gepfuscht:

                  Statt:
                  PHP-Code:
                  header("Location: " SERVERPATH ."account.php"); 
                  Habe ich ihm:
                  PHP-Code:
                  echo '<meta http-equiv="refresh" content="1; URL='.SERVERPATH.'account.php?do=start&show='.session_id().'">'
                  Gegeben.
                  Local: 1 A
                  Server: Kein Ergebnis.

                  Er führt auf dem Server zwar den metarefresh aus, aber er übernimmt die Sessionid nicht.
                  Sprich: er bringt mich in den Gastmodus.

                  Im Normalfall würde ich sagen: Critical User Error, aber da er Local ausführt kann es nur noch an der Serverconfig liegen.

                  session.auto_start steht Local und auch auf dem Server auf Off.

                  Bin ich total dumm, oder habe ich was übersehen?

                  Kommentar


                  • #10
                    Serverconfig

                    Er führt auf dem Server zwar den metarefresh aus, aber er übernimmt die Sessionid nicht.
                    Probier doch mal, die SessionID automatisch an den link anzuhängen, also:

                    PHP-Code:
                    href = "nextscript.php?<?php echo SID?>"
                    Ich würde aber html-Refresh nie vertrauen, manche Browser machen das nicht korrekt.

                    Hat Dein Web-Hoster keinen Support?
                    /* Meine Lieblingsantwort: Read The Fucking Manual */

                    Kommentar

                    Lädt...
                    X