Bin gerade dabei für unsere Page eine zusätzliche Newsübersicht zu kreieren. Nun das ganze wird eine Vorschau Übersicht aller News, welche aber ähnlich wie beim Newsarchiv die Möglichkeit bieten soll, nach Kategorien selektieren zu können. Dabei ist mir jetzt was eher unschönes aufgefallen, was auch beim Newsarchiv auftritt.
Das Problem ist folgendes, wenn man die Abfrage zu einer bestimmten Kategorie gestartet hat, landet man ja automatisch auf der ersten Seite. Klicke ich jetzt auf einen Newsbeitrag um ihn mir anzusehen und danach via Browser (oder auch History Back Button) auf zurück, erhält man die Browser Meldung Dokument erloschen, da ja an der Stelle die Abfrage nochmals neu ausgeführt werden würde.
Wenn ich aber die Abfrage gestartet habe, dann z.B. auf Seite zwei gehe und da genau das selbe mache -> Kein Problem
Ebenfalls kann man nach der Abfrage kurz auf Seite zwei und via Seiten Menü zurück auf Seite 1, dann in einen Beitrag und via Zurück Button ohne Probleme zurück zur Übersicht gelangen.
Der Schlüssel zur Lösung des Problems könnte da liegen, dass wenn eine Abfrage gestartet wird, befindet man sich laut Adresse imernoch auf:
index.php?newsarchiv
Sobald ich aber zwischen den Seiten hin un her schalte:
index.php?newsarchiv-clannews-p2
Mein Ansatz zur Lösung wär also, dass man nach einer gestarteten Abfrage auf der Seite index.php?newsarchiv-(KATEGORIE-XY)-p1 landet - dann wär das Problem Dokument erlöschen vermutlich ausgehebelt.
Aber wie bekomme ich das hin? Jemand ne Lösung oder gar ne andere Idee dazu?
Anbei mal die newsarchiv.php, bei der das Problem ja auch besteht:
<?php # Script Copyright by: Topolino # Support auf www.honklords.de defined ('main') or die ( 'no direct access' ); # Allgemeine Variablen $titellaenge = 50; # Nach 25 Zeichen des Titels Ende mit ... $unamelaenge = 15; # Nach 15 Zeichen des Autors Ende mit ... $rowclass1 = 'Cnorm'; # Design abhängig $rowclass2 = 'Cmite'; # Design abhängig $limit = 50; # Wie viel News aufgelistet werden $title = 'Newsarchiv :: ' . $allgAr['title']; $hmenu = 'Newsarchiv'; $design = new design ( $title , $hmenu ); $design->header(); if (isset($_POST['chcat'])) { $kat = $_POST['cat']; } else $kat = 'showallcats'; $page = ( $menu->getA(1) == 'p' ? $menu->getE(1) : 1 ); if ($menu->getA(2) == 'p') { $kat = $menu->get(1); $page = ( $menu->getA(2) == 'p' ? $menu->getE(2) : 1 ); } $MPL = db_make_sites ($page , "WHERE ".($kat == 'showallcats'?'':"news_kat = BINARY '$kat' AND ")."news_recht >= ".$_SESSION['authright'] , $limit , '?newsarchiv'.($kat == 'showallcats'?'':'-'.$kat) , 'news' ); $anfang = ($page - 1) * $limit; $abf = "SELECT a.news_title as title, a.news_id as id, DATE_FORMAT(a.news_time,'%d. %m. %Y') as datum, DATE_FORMAT(a.news_time,'%W') as dayofweek, a.news_kat as kate, a.news_text as text, b.name as username, b.id as uid FROM prefix_news as a LEFT JOIN prefix_user as b ON a.user_id = b.id WHERE ".($kat == 'showallcats'?'':"a.news_kat = BINARY '$kat' AND ") .$_SESSION['authright']." <= a.news_recht ORDER BY news_time DESC LIMIT $anfang,$limit"; $tpl = new tpl ( 'newsarchiv.htm' ); $sql = db_query("SELECT DISTINCT news_kat FROM `prefix_news` WHERE news_recht >= ".$_SESSION['authright']); $kats .= '<form action="index.php?newsarchiv" method="post"><select name="cat"><option value="showallcats">Alle Kategorien anzeigen</option>'; while ($cats = db_fetch_object($sql)) $kats .= "<option value=\"$cats->news_kat\"".($kat == $cats->news_kat? ' selected="selected"':'').">$cats->news_kat</option>"; $kats .= '</select> <input type="submit" value="wählen" name="chcat" /></form>'; $ar = array ( 'KATS' => $kats, 'SITELINK' => $MPL ); $tpl->set_ar_out($ar, 0 ); $erg = db_query($abf); $i = 0; while ($row = db_fetch_assoc($erg)) { $i++; $k0m = db_query("SELECT COUNT(ID) FROM `prefix_koms` WHERE uid = ".$row['id']." AND cat = 'NEWS'"); $row['kom'] = db_result($k0m,0); if ($i % 2 != 0) { $rowcolorclass = $rowclass1; }else{ $rowcolorclass = $rowclass2; } if(strlen($row['title']) > $titellaenge ){ $row['title'] = substr($row['title'], 0, $titellaenge ).'...'; } if(strlen($row['username']) > $unamelaenge ){ $row['username'] = substr($row['username'], 0, $unamelaenge ).'...'; } $ar = array ( 'RCC' => $rowcolorclass, 'DATE' => $row['datum'], 'TITLE' => '<a href="?news-'.$row['id'].'">'.$row['title'].'</a>', 'USERNAME' => '<a href="?user-details-'.$row['uid'].'" alt="Benutzerinfo: '.$row['username'].'" title="Benutzerinfo: '.$row['username'].'">'.$row['username'].'</a>', 'COMMENTS' => '<a href="?news-'.$row['id'].'#Kommentare" alt="Kommentare ('.$row['kom'].')" title="Kommentare ('.$row['kom'].')">('.$row['kom'].')', 'PRINT' => '<a href="?news-print-'.$row['id'].'" alt="Druckoptimierte Version" title="Druckoptimierte Version"><img src="include/images/icons/print.gif" alt="Druckoptimierte Version" border="0"></a>' ); $tpl->set_ar_out($ar, 1 ); } $tpl->out(2); unset($tpl); $design->footer(); ?>
betroffene Homepage: externer Link