Problem mit header()

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

  • Problem mit header()

    Ich seh den Wald vor lauter Bäumen mal wieder nicht.
    Ich habe das Problem, das die Weitergabe des Ankers
    per Header an genau einer Stelle nicht funzt.

    PHP-Code:
    $goto_post "Location: post.php?id=" $HTTP_GET_VARS['id'] . "&sub=" $newpostid '#' $newpostid;
    // $goto_post ist "post.php?id=377&sub=1383#1383"
    $goto_forum "Location: forum.php?id=" $result_forum[2];
    myheader($user->get("after_post")?$goto_forum:$goto_post); 
    myheader hängt bei Bedarf die Session an, und ruft dann header auf
    PHP-Code:
    function myheader($location$exit true){
        global 
    $session$HTTP_COOKIE_VARS$error;
        if(
    is_object($error))
            
    $error->write();
        
    $session->save();
        
    // $location ist immernoch "post.php?id=377&sub=1383#1383"
        
    if(!isset($HTTP_COOKIE_VARS['sessid']) || $HTTP_COOKIE_VARS['sessid'] != $session->sessid){
            if(
    strpos($location"?"))
                
    header(str_replace("?""?sessid=" $session->sessid "&"$location));
            else
                
    header ($location "?sessid=" $session->sessid);
        }else
            
    // dies wird derzeit angesprungen
            // $location ist immernoch "post.php?id=377&sub=1383#1383" (per echo getestet)
            
    header($location);
        if (
    $exit)
            exit();

    und trotzdem erfolgt die Weiterleitung nur nach

    "post.php?id=377&sub=1383" ???

    an zig anderen Stellen funktioniert das Ganze, nur bei diesem einen Aufruf nicht (siehe 1.Schnipsel)
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

  • #2
    hm also ich seh auf anhieb nicht den fehler..

    das geht bei mir:

    PHP-Code:
    header("Location: thread.php?fid=$fid&threadid=$threadid&page=$page&$session#post$new[id]"); 
    vielleicht solltest mal so versuchen;:

    PHP-Code:
    $goto_forum "forum.php?id=" $result_forum[2]; // Also ohne "Location: " 
    und dafür unten dann:

    PHP-Code:
    header("Location: ".str_replace("?""?sessid=" $session->sessid "&"$location)); 

    mfg

    edit: arg war ein fehler drin ich noob
    Zuletzt geändert von Trashar; 13.01.2003, 12:56.

    Kommentar


    • #3
      Original geschrieben von Trashar
      hm also ich seh auf anhieb nicht den fehler..

      das geht bei mir:
      genau das ist es ja

      beim antworten auf einen Thread, fehlt das # (obiger Aufruf)
      bei allen anderen funktioniert es ???
      zB beim bearbeiten eines Postings:

      PHP-Code:
      myheader("Location: post.php?id=" $thread[0][0] . "&sub=" $HTTP_GET_VARS['id'] . "#" $HTTP_GET_VARS['id']); 
      klappt wunderbar, inclusive dem #...

      auch ein verlagern des "Location: " in die Funktion bringt keine Besserung.
      Das seltsame ist eben, daß es nur bei diesem einen Aufruf nicht geht?
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        myheader("Location: post.php?id=" . $thread[0][0] . "&sub=" . $HTTP_GET_VARS['id'] . "#" . $HTTP_GET_VARS['id']);

        dabnn mach es doch so.. wenns so geht.

        und lass den kram nich über variabeln laufen!

        PHP-Code:

        if($user->get("after_post")) myheader("Location: forum.php?id=" $result_forum[2]);
        else 
        myheader("Location: post.php?id=" $HTTP_GET_VARS['id'] . "&sub=" $newpostid '#' $newpostid); 
        mfg
        Zuletzt geändert von Trashar; 13.01.2003, 13:22.

        Kommentar


        • #5
          das Beispiel, wo es geht, ist an einer anderen Stelle im Code.

          PHP-Code:
          myheader("Location: post.php?id=".$HTTP_GET_VARS['id']."&sub=".$newpostid."#".$newpostid); 
          geht auch nicht ???

          ich muß die Variable $newpostid nehmen, da diese gerade erst
          von der DB erzeugt wurde

          Ich beiß hier gleich in die Tischkante
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #6
            lass mich raten
            du willst folgendes machen:

            ein user schreibt einen beitrag, und wird dann zu dem post weiter geleitet richtig??


            und wenn du
            PHP-Code:
            die("Location: post.php?id=".$HTTP_GET_VARS['id']."&sub=".$newpostid."#".$newpostid); 
            machst, wird alles richtig ausgegeben??

            Kommentar


            • #7
              genau !

              selbst ein
              die($location);
              direkt vor dem richtigen header Befehl zeigt mir noch genau das an,
              was ich haben will. Und trotzdem vergißt er dann den #
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Kommentar


              • #8
                haste ma versucht, nich die fun ktion myheader() aufzurufen sondern gleich mit header() weiterzuleiten.. also nur so zum test?!

                Kommentar


                • #9
                  auch dann fehlt der Anker
                  TBT

                  Die zwei wichtigsten Regeln für eine berufliche Karriere:
                  1. Verrate niemals alles was du weißt!


                  PHP 2 AllPatrizier II Browsergame

                  Kommentar


                  • #10
                    schon mal urlencode/urldecode probiert?
                    eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

                    Kommentar


                    • #11
                      wie schon slarti sagte, mit urlencode("#") sollte es gehen.
                      hab damit auch schon probs gehabt, danach gings.

                      Kommentar


                      • #12
                        nop

                        ein
                        PHP-Code:
                        $goto_post "Location: post.php?id=".$HTTP_GET_VARS['id']."&sub=".$newpostid.urlencode("#").$newpostid;
                        $goto_forum "Location: forum.php?id=" $result_forum[2];
                        myheader($user->get("after_post")?$goto_forum:$goto_post); 
                        leitet weiter auf

                        post.php?id=377&sub=1392%231392

                        mache ich in der Function myheader ein urldecode(), fehlt wieder der Anker *grrrr*
                        TBT

                        Die zwei wichtigsten Regeln für eine berufliche Karriere:
                        1. Verrate niemals alles was du weißt!


                        PHP 2 AllPatrizier II Browsergame

                        Kommentar


                        • #13
                          ...sorry, ich glaub, das urlencode brauchst du gar nicht.
                          aber ich hab mal was gehört, das anker mit nem buchstaben beginnen müssen
                          Keine Leerzeichen und Umlaute, erstes Zeichen ein Buchstabe, sonst auch Ziffern, Unterstrich (_), Bindestrich (-), Doppelpunkt ( oder Punkt (.).
                          eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

                          Kommentar


                          • #14
                            das würde erklären warum meine version geht ^^

                            Kommentar


                            • #15
                              inzwischen glaube ich garnichts mehr

                              PHP-Code:
                              $goto_post "Location: post.php?id=" $HTTP_GET_VARS['id'] . "&sub=" $newpostid "#anker"  $newpostid
                              geht nicht, nichtmal

                              PHP-Code:
                              header("Location: post.php?id=377&sub=1392#anker1392"); 
                              funzt

                              WARUM funzt diese Anweisung 1A ??? ( die steht nur 100 Zeilen über der problematischen)
                              PHP-Code:
                              myheader("Location: post.php?id=" $thread[0][0] . "&sub=" $HTTP_GET_VARS['id'] . "#" $HTTP_GET_VARS['id']); 
                              TBT

                              Die zwei wichtigsten Regeln für eine berufliche Karriere:
                              1. Verrate niemals alles was du weißt!


                              PHP 2 AllPatrizier II Browsergame

                              Kommentar

                              Lädt...
                              X