PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Problem mit header() (https://www.php-resource.de/forum/php-developer-forum/15022-problem-mit-header.html)

TBT 13-01-2003 12:31

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)

Trashar 13-01-2003 12:49

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

TBT 13-01-2003 13:09

Zitat:

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?

Trashar 13-01-2003 13:19

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

TBT 13-01-2003 13:26

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 :(

Trashar 13-01-2003 13:30

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

TBT 13-01-2003 13:48

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 #

Trashar 13-01-2003 14:02

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

TBT 13-01-2003 14:21

auch dann fehlt der Anker :(

slarti 13-01-2003 14:27

schon mal urlencode/urldecode probiert?

CannabisCow 13-01-2003 14:39

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

TBT 13-01-2003 14:55

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*

slarti 13-01-2003 15:05

...sorry, ich glaub, das urlencode brauchst du gar nicht.
aber ich hab mal was gehört, das anker mit nem buchstaben beginnen müssen ;)
Zitat:

Keine Leerzeichen und Umlaute, erstes Zeichen ein Buchstabe, sonst auch Ziffern, Unterstrich (_), Bindestrich (-), Doppelpunkt (:) oder Punkt (.).

Trashar 13-01-2003 15:08

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

TBT 13-01-2003 15:10

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']); 



Alle Zeitangaben in WEZ +2. Es ist jetzt 22:06 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG