Probleme mit meinem Suchmodul

Gesperrt
clemens
Beiträge: 72
Registriert: Do 13. Nov 2003, 11:32
Kontaktdaten:

Probleme mit meinem Suchmodul

Beitrag von clemens »

hallo. ich hab ein problem mit meinem such-modul.
wenn ich einen begriff suche, so wird dieser auf der seite mit dem suchausgabe modul auch angezeigt, wenn ich dann allerdings auf den link klicke, kommt eine fehlermeldung vom internet explorer.

ich schätze, ich habe im modul eine falsche url eingebaut.

könnte mir bitte jemand sagen, was ich da tun könnte?

danke im voraus!
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

:shock: Wenn du dein Modul veroeffentlichst, kann man dir vielleicht auch sagen, was du falsch gemacht haben koenntest. :roll:

Weitere Infos zum Thema "Wie stelle ich gute Fragen" findest du hier:

http://www.contenido.org/forum/viewtopic.php?p=4821
clemens
Beiträge: 72
Registriert: Do 13. Nov 2003, 11:32
Kontaktdaten:

Beitrag von clemens »

sorry.

das ist mein suchausgabe-modul:

Code: Alles auswählen

<?php 
echo "<table border=0 cellpadding=4 cellspacing=0><tr>"; 
if($suche){ 
$suche = trim($suche); 
$suchregexp = "(".str_replace(" ",")|(",$suche).")"; 
$s=ereg_replace("ü", "%FC",strtolower($suche)); 
$s=ereg_replace("ä", "%E4",$s); 
$s=ereg_replace("ö", "%F6",$s); 
$suchregexp .= "|$s"; 
$suchliste = explode(" ",strtolower($suche)); 

$sql = "SELECT 
a.title AS title, a.idart AS idart, a.summary AS comment, a.idartlang AS idartlang, 
b.idcat AS idcat, 
 
d.value AS content 
FROM 
".$cfg["tab"]["art_lang"]." AS a, 
".$cfg["tab"]["cat_art"]." AS b, 
".$cfg["tab"]["cat"]." AS c, 
".$cfg["tab"]["content"]." AS d 
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' AND 
(d.value REGEXP '$suchregexp' OR a.title REGEXP '$suchregexp' OR a.summary REGEXP '$suchregexp')"; 

$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("idartlang"); 
$results[$num][link] = "index.php?client=$client&lang=$lang&parent=".$db->f("parentid")."&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(rawurldecode($db->f("content"))),0,100)."..."; 
}; 
for($x=0;$x<count($suchliste);$x++){ 
$hits[$num] += substr_count(strtolower($db->f("title")), $suchliste[$x]) + 
substr_count(strtolower($db->f("comment")), $suchliste[$x]) + 
substr_count(strtolower($db->f("content")), $suchliste[$x]); 
}; 
}; 
if(count($hits) > 0){ 
$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 align=left bgcolor=\"#6BB100\"><font size=\"-1\"><a href=\"".$results[$i][link]."\" class='text'"; 
if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";};

echo ">".$results[$i][title]."</a></font><br> <b><span class='subnavi'>(".$hits[$i]." Treffer)<BR><img src=images/line_orange.gif><br>"; 
echo $results[$i][text]."</span></b></td></tr>"; 
}; 
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden.<br>Versuchen Sie es doch einfach mit einem anderen Suchbegriff.</td></tr>"; }; 
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden.<br>Versuchen Sie es doch einfach mit einem anderen Suchbegriff.</td></tr>"; }; 
}; 
echo "</table>"; 
?>
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Versuche mal

Code: Alles auswählen

$results[$num][link] = $sess->url("front_content.php?client=$client&lang=$lang&parent=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idart=".$db->f("idart")."";
$results[$num][title] = $db->f("title");
statt

Code: Alles auswählen

$results[$num][link] = "index.php?client=$client&lang=$lang&parent=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idart=".$db->f("idart")."";
$results[$num][title] = $db->f("title"); 
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
clemens
Beiträge: 72
Registriert: Do 13. Nov 2003, 11:32
Kontaktdaten:

Beitrag von clemens »

leider funkt das auch nicht!
clemens
Beiträge: 72
Registriert: Do 13. Nov 2003, 11:32
Kontaktdaten:

Beitrag von clemens »

auch jetzt gibt es die 404er seite nach dem klick auf den link.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ähm, kannst Du mal den Link zu Deiner Seite posten (oder via PM). Muss ja irgendwo Murx rauskommen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
clemens
Beiträge: 72
Registriert: Do 13. Nov 2003, 11:32
Kontaktdaten:

Beitrag von clemens »

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Also zum einen erscheint bei mir immer noch index.php im Link, zum anderen (ich hatte mir den Link gar nicht näher angesehen...) ist da eine Angabe zu viel.

Versuche mal:

Code: Alles auswählen

$sess->url("front_content.php?client=$client&lang=$lang&idcat=".$db->f("idcat")."&idart=".$db->f("idart")."";
Wenn es dann nicht geht, muss ich mir den Code nochmal ansehen...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
clemens
Beiträge: 72
Registriert: Do 13. Nov 2003, 11:32
Kontaktdaten:

Beitrag von clemens »

jetzt sieht mein code so aus und es geht überhaupt nix mehr. nur noch weiße seite.

[code]
<?php
echo "<table border=0 cellpadding=4 cellspacing=0><tr>";
if($suche){
$suche = trim($suche);
$suchregexp = "(".str_replace(" ",")|(",$suche).")";
$s=ereg_replace("ü", "%FC",strtolower($suche));
$s=ereg_replace("ä", "%E4",$s);
$s=ereg_replace("ö", "%F6",$s);
$suchregexp .= "|$s";
$suchliste = explode(" ",strtolower($suche));

$sql = "SELECT
a.title AS title, a.idart AS idart, a.summary AS comment, a.idartlang AS idartlang,
b.idcat AS idcat,

d.value AS content
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c,
".$cfg["tab"]["content"]." AS d
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' AND
(d.value REGEXP '$suchregexp' OR a.title REGEXP '$suchregexp' OR a.summary REGEXP '$suchregexp')";

$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("idartlang");
$sess->url("front_content.php?client=$client&lang=$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(rawurldecode($db->f("content"))),0,100)."...";
};
for($x=0;$x<count($suchliste);$x++){
$hits[$num] += substr_count(strtolower($db->f("title")), $suchliste[$x]) +
substr_count(strtolower($db->f("comment")), $suchliste[$x]) +
substr_count(strtolower($db->f("content")), $suchliste[$x]);
};
};
if(count($hits) > 0){
$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 align=left bgcolor=\"#6BB100\"><font size=\"-1\"><a href=\"".$results[$i][link]."\" class='text'";
if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";};

echo ">".$results[$i][title]."</a></font><br> <b><span class='subnavi'>(".$hits[$i]." Treffer)<BR><img src=images/line_orange.gif><br>";
echo $results[$i][text]."</span></b></td></tr>";
};
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden.<br>Versuchen Sie es doch einfach mit einem anderen Suchbegriff.</td></tr>"; };
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden.<br>Versuchen Sie es doch einfach mit einem anderen Suchbegriff.</td></tr>"; };
};
echo "</table>";
?>
[/code]
clemens
Beiträge: 72
Registriert: Do 13. Nov 2003, 11:32
Kontaktdaten:

Beitrag von clemens »

vielen dank für die bemühungen.
es funktioniert jetzt.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Fehlte wohl noch das $results[$num][link] =?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt