Suchmodul: Wie komme ich zurück auf die "Ergebnisseite&

Gesperrt
uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Suchmodul: Wie komme ich zurück auf die "Ergebnisseite&

Beitrag von uups » Mi 22. Sep 2004, 14:08

Ich habe ein Suchmodul eingebaut welches eigentlich auch ohne Probleme funktioniert.

Allerdings habe ich ein kleines Problem: Wenn ein Link der Suchergebnisse angeklickt wird und man anschliessend mit dem "zurück"-Button des Browsers wieder auf die Ergebnisseite will kommt die allg. bekannte Meldung: "Achtung: Seite ist nicht mehr gültig"!

Ich treffe aber immer wieder Sites (auch in Contenido erstellte) bei denen es funktioniert...

Auf das Risiko hin, dass ich mich blamiere: Kann mir jemand sagen, wie ich das bewerkstelligen kann? :oops:


Danke

Uups...

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 22. Sep 2004, 14:12

das kommt einfach darauf an, ob du die daten mit POST oder GET übergibst. mit POST kriegst du diese meldung, mit GET nicht. das ist die methode, die im suchformular angegeben ist.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups » Mi 22. Sep 2004, 14:34

Die Daten werden per "POST" übergeben! Allerdings reicht es scheinbar nicht aus einfach "GET" einzufügen, da er natürlich die Seite mit diesem String dann nicht findet!

...ist übrigens das gleich Modul, welches ihr auf eurer Site auch verwendet...

Evtl. kennt jemand ein Modul das anders aufgebaut ist...?


Uups...

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 22. Sep 2004, 14:41

doch das reicht!
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups » Mi 22. Sep 2004, 14:56

Na dann mach ich wohl etwas falsch!

Meine Suchseite ist hier:
http://www.domainname.ch/cms/front_content.php?idcat=31

Wenn ich nur per "get" das Suchwort "irgendwas" übergebe, generiert das Modulden folgenden Link:
http://www.domainname.ch/cms/front_cont ... epfung=und

--> Diese Seite erzeugt dann bei mir einen error 404 bzw. ich werde zur Startseite umgeleitet...

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Mi 22. Sep 2004, 15:02

da fehlt wohl noch idcat und idart...

uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups » Do 23. Sep 2004, 17:58

Ich habe vergeblich versucht den Output anzupassen...

Vielleicht kann mir jemand einen Tipp geben? Also die Änderung von "post" zu "get" ist mir ja noch klar. Aber wo ich die Änderungen machen muss, dass im String das auch "idcat" und "idart" mitgegeben werden weiss ich nicht... :oops:

Hier ist der Code:

Code: Alles auswählen

<?php 

echo '<form name="suche" method="POST" action="'.$auth->url().'"> 
<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
<tr> 
<td style="width:250px; padding-bottom:10px; vertical-align:top;"><input type="text" size="30" name="suche" value="'.$suche.'" background-color:#FFFFFF; height:20px;"></td> 
<td style="width:220px;text-align:left; vertical-align:top;"><button type="submit" style="border:1px solid #0099CC; background-color:#EEEEEE; height:20px;">suchen</button></td> 
</tr> 
<tr> 
<td colspan=2><input type="radio" name="verknuepfung" value="und" checked>&nbsp; UND-Verknüpfung (<i>alle</i> Begriffe müssen enthalten sein)</td> 
</tr> 
<tr> 
<td colspan=2><input type="radio" name="verknuepfung" value="oder">&nbsp; ODER-Verknüpfung (<i>mindestens ein</i> Begriff muss enthalten sein)</td> 
</tr> 
<tr> 
<td colspan=2><p><br>Durchsucht werden alle Seiten dieses Webs, nicht jedoch die Inhalte von PDF-Dateien.</p> 
<p>Groß-/Kleinschreibung wird ignoriert, Wörter wie "und", "der" etc. werden aus der Suchliste gestrichen.</p></td> 
</tr> 
</table></center> 
</fo'.'rm>'; 
if($suche){ 
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">'; 
$ignore_konj = array("und","oder","als","wenn","auch","wo","wie"); 
$ignore_art = array("der","die","das","ein","eine"); 
$ignore = array("ich","du","er","sie","es","wir","ihr","sie"); 
$suche = trim($suche); 
$suchliste = explode(" ",strtolower($suche)); 
$suchliste = array_diff ($suchliste, $ignore_konj, $ignore_art, $ignore); 
$suche = trim(implode(" ",$suchliste)); 
if($verknuepfung=="oder"){ 
$suchregexp = "(".str_replace(" ",")|(",$suche).")"; 
$s=ereg_replace("ü", "%FC",strtolower($suche)); 
$s=ereg_replace("ä", "%E4",$s); 
$s=ereg_replace("ö", "%F6",$s); 
$suchregexp .= "|$s"; 
$sql = "SELECT A.title AS title,A.idart AS idart,A.summary AS comment,B.idcat AS idcat,D.value AS content,A.idartlang AS sideid "; 
$sql .= "FROM ".$cfg["tab"]["art_lang"]." AS A, ".$cfg["tab"]["cat_art"]." AS B, ".$cfg["tab"]["cat"]." AS C, ".$cfg["tab"]["content"]." AS D "; 
$sql .= "WHERE A.idart=B.idart AND A.idartlang=D.idartlang AND B.idcat=C.idcat AND C.idclient='$client' AND idlang='$lang' AND online='1'"; 
$sql .= " AND (D.value REGEXP '".$suchregexp."' OR A.title REGEXP '".$suchregexp."' OR A.summary REGEXP '".$suchregexp."')"; 
} else { 
$sql = "SELECT A.title AS title,A.idart AS idart,A.summary AS comment,B.idcat AS idcat,D.value AS content,A.idartlang AS sideid "; 
$sql .= "FROM ".$cfg["tab"]["art_lang"]." AS A, ".$cfg["tab"]["cat_art"]." AS B, ".$cfg["tab"]["cat"]." AS C, ".$cfg["tab"]["content"]." AS D "; 
$sql .= "WHERE A.idart=B.idart AND A.idartlang=D.idartlang AND B.idcat=C.idcat AND C.idclient='$client' AND idlang='$lang' AND online='1'"; 
while(list($key, $val) = each($suchliste)) { 
$suchregexp = "(".str_replace(" ",")|(",$val).")"; 
$s=ereg_replace("ü", "%FC",strtolower($val)); 
$s=ereg_replace("ä", "%E4",$s); 
$s=ereg_replace("ö", "%F6",$s); 
$suchregexp .= "|$s"; 
$sql .= " AND (D.value REGEXP '".$suchregexp."' OR A.title REGEXP '".$suchregexp."' OR A.summary REGEXP '".$suchregexp."')"; 
} reset($suchliste); 
} 
$db->query($sql); 
if ($db->num_rows() != 0){ 
for ($i=0; $i<$db->num_rows(); $i++) { 
$db->next_record(); 

if ($auth->auth["uid"] == "nobody"){ 
$sql2 = "SELECT public FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".$db->f("idcat")."'"; 
$db2 = new DB_Contenido; $db2->query($sql2); $db2->next_record(); 
if($db2->f("public") == 0)continue; 
}; 
$num = 0 + $db->f("sideid"); 
$results[$num][link] = "front_content.php?client=".$client."&la"."ng=".$lang."&idcat=".$db->f("idcat")."&idart=".$db->f("idart").""; 
$results[$num][title] = $db->f("title"); 
switch ("CMS_VALUE[2]") { 
case 0: $results[$num][text] = "";break; 
case 1: $results[$num][text] = $db->f("comment");break; 
case 2: $results[$num][text] .= substr(strip_tags(urldecode($db->f("content"))),0,100)."..."; 
}; 
while(list($key, $val) = each($suchliste)) { 
$hits[$num] += substr_count(strip_tags(urldecode(strtolower($db->f("title")))), $val) + 
substr_count(strtolower(strip_tags(urldecode($db->f("comment")))), $val) + 
substr_count(strtolower(strip_tags(urldecode($db->f("content")))), $val); 
// echo $num.': '.$val.'='.$hits[$num].$db->f("content").'<br>'; 
}; reset($suchliste); 
}; 
if(count($hits) > 0){ 
echo '<tr><td class=subheadline>Suchergebnisse<br><br></td></td>'; 
$hits = array_values($hits); 
$results = array_values($results); 
array_multisort ($results, SORT_DESC, SORT_NUMERIC, $hits, SORT_DESC, SORT_NUMERIC); 
for ($i=0; $i<count($hits); $i++){ 
echo "<tr><td style=\"text-align:left; padding-bottom:5px;\"><img src=images/nav_button_2.gif border=0><a href=\"".$results[$i][link]."\""; 
if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";}; 
echo ">".$results[$i][title]."</a> <br />"; 
echo $results[$i][text]; 

echo "</td></tr>"; 
}; 
} else { echo "<tr><td align=center><p><b>Keine passenden Seiten gefunden</b></p></td></tr>"; }; 
} else { echo "<tr><td align=center><p><b>Keine passenden Seiten gefunden</b></p></td></tr>"; }; 
echo '</table>'; 
} 
?>

uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups » Sa 25. Sep 2004, 12:23

Für einen kleinen Tipp wäre ich dankbar!

Uups...

Gesperrt