Problem mit header()

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by Trashar; 13-01-2003, 11:56.

    Comment


    • #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

      Comment


      • #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
        Last edited by Trashar; 13-01-2003, 12:22.

        Comment


        • #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

          Comment


          • #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??

            Comment


            • #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

              Comment


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

                Comment


                • #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

                  Comment


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

                    Comment


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

                      Comment


                      • #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

                        Comment


                        • #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\";");

                          Comment


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

                            Comment


                            • #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

                              Comment

                              Working...
                              X