Bei internen Links SID anhängen?
Bei internen Links SID anhängen?
Wie kann ich es anstellen, das bei internen Links, die in den Posts verwendet werden, die SID mit angehängt wird?
Hab schon in der bbcode.php gesucht, aber keine rechte Lösung gefunden. Kann mir nicht vorstellen, das sich darüber noch keiner Gedanken gemacht hat.
Hab schon in der bbcode.php gesucht, aber keine rechte Lösung gefunden. Kann mir nicht vorstellen, das sich darüber noch keiner Gedanken gemacht hat.
Danke, es hat geklappt!
Hab es nun so gelösstin der bbcode.php:
Nun stellt sich mir nurnoch die Frage, wie ich folgende URLs, da ich SEO Urls hab umschreiben kann:
topic,134,-test.html muß zu topic,134,$SID,-test.html
und
topic,134,15,-test.html muß zu topic,134,15,$SID,-test.html
Wie stelle ich das an, da sich die Forennummer bzw. die Seitenzahl ja ändern kann?
Ich weiß, das es mit preg_replace gehen muß hab es aber leider nicht so mit den regulären Ausdrücken.
Hab es nun so gelösstin der bbcode.php:
Code: Alles auswählen
global $board_config, $userdata, $HTTP_GET_VARS;
$session_id = $HTTP_GET_VARS['sid'];
if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
{
$session_id = '';
}
$local_url = '<a rel="nofollow" href="'. $server_protocol . $server_name . $server_port .'rlink/rlink.php?url=' . $server_protocol . $server_name . $server_port;
// OPTIONAL
// Use this line if you want to include the script path as well.
// To use this line simply remove the two / from the beginning.
//$local_url = '<a href="' . $server_protocol . $server_name . $server_port . $script_path;
// Now look to see if that string is found in the text. Note that
// the first step done (in other functions) before processing the
// post text is to add one extra space, so we don't need to worry
// about the case where a URL might be in the very first position.
// It won't. :-)
$start_url = strpos(strtolower($text), $local_url);
while ($start_url)
{
// First identify the end of the URL by finding the >
$last_found_pos = $start_url + 1;
$end_url = strpos ($text, '>', $last_found_pos);
$url_len = $end_url - $start_url + 1;
// Next get a copy of the URL from <a href="... to closing >
$my_url = substr($text, $start_url, $url_len);
// replace target wtih null string
$my_local_url = str_replace('target="_blank"', '', $my_url);
// replace target wtih null string
if ($session_id !='')
$my_local_url = str_replace('rules.php', 'rules.php?sid='.$userdata['session_id'], $my_local_url);
topic,134,-test.html muß zu topic,134,$SID,-test.html
und
topic,134,15,-test.html muß zu topic,134,15,$SID,-test.html
Wie stelle ich das an, da sich die Forennummer bzw. die Seitenzahl ja ändern kann?
Ich weiß, das es mit preg_replace gehen muß hab es aber leider nicht so mit den regulären Ausdrücken.

Wenn die SID mit $SID los geht und mit einem Komma abgetrennt wird, dann lautet der Geguläre Ausdruck wie folgt:
Code: Alles auswählen
/$SID(.*?),/
SEO URLs sollen für Suchmaschinen eindeutig und für User ansehnlich und wieder auffindbar sein. Wenn man die sid einbaut (der Zweck ist mir klar, darum geht es nicht), dann ist auch eine url mit html am Ende nicht mehr ansehnlich. Das meinte ich.
Wird mit so einer URL verlinkt (manuell durch einen user), dann zeigt jeder Link mit einer anderen sid auf eine andere url, außer es findet eine Weiterleitung auf die urls ohne sid statt. Wenn auch die Ansehnlichkeit nicht gegeben ist, dann kann man die SEO URLs auch gleich weglassen und eingehende originale Links mit sid auf eine url ohne sid weiterleiten. Wo ist der Nutzen der SEO URL geblieben? Oder soll statt dem "test" ein mögliches Suchwort in die url? Das wäre der einzige Vorteil der übrig bleibt.
Oder was sagst Du, Yoda? 
Wird mit so einer URL verlinkt (manuell durch einen user), dann zeigt jeder Link mit einer anderen sid auf eine andere url, außer es findet eine Weiterleitung auf die urls ohne sid statt. Wenn auch die Ansehnlichkeit nicht gegeben ist, dann kann man die SEO URLs auch gleich weglassen und eingehende originale Links mit sid auf eine url ohne sid weiterleiten. Wo ist der Nutzen der SEO URL geblieben? Oder soll statt dem "test" ein mögliches Suchwort in die url? Das wäre der einzige Vorteil der übrig bleibt.
Jetzt fehlt nur noch die Semantik.bgx hat geschrieben:fanrpg hat die Systematik verstanden!


@xwitz: Ich gebe dir da soweit ja auch recht! Aber ich möchte eigentlich nicht mein komplettes Forum umschreiben, nur das es anders hinhaut.
Was ich damit erreichen möchte ist folgendes:
Wenn jemand keine Cookies im Forum an hat fliegt er ja raus, sobald er auf nen Link ohne Sid drückt. Wenn ich jetzt in einem Posting schreibe, das das Thema schonmal behandelt worden ist, möchte ich das der User nicht gleich rausfliegt, wenn er danach schauen möchte.
Meine Seourls sind schon etwas älter und deshalb steht die sid in der Url.
Wärst du so nett und könntest mir helfen, damit ich die preg_replace Anweisung nach meinen Wünschen hinbekomme?
Ich könnte es mir natürlich leicht machen indem ich es folgendermaßen Löse:
Nur es könnte ja aus welchen Gründen auch immer sein, das ich in nem Link das ",-" irgendwie drin hab und dann würde das auch umgeschrieben werden und das möchte ich vermeiden indem ich es so löse:
Aber wie gesagt, mit den regulären Ausdrücken hab ich es nicht so. 
Was ich damit erreichen möchte ist folgendes:
Wenn jemand keine Cookies im Forum an hat fliegt er ja raus, sobald er auf nen Link ohne Sid drückt. Wenn ich jetzt in einem Posting schreibe, das das Thema schonmal behandelt worden ist, möchte ich das der User nicht gleich rausfliegt, wenn er danach schauen möchte.
Meine Seourls sind schon etwas älter und deshalb steht die sid in der Url.
Wärst du so nett und könntest mir helfen, damit ich die preg_replace Anweisung nach meinen Wünschen hinbekomme?
Ich könnte es mir natürlich leicht machen indem ich es folgendermaßen Löse:
Code: Alles auswählen
$my_local_url = str_replace(',-', ','.$userdata['session_id'].',-', $my_local_url);
Code: Alles auswählen
$my_local_url = str_replace('topic,{1-9}', 'topic,{1-9}'.$userdata['session_id'], $my_local_url);
