ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Suchfunktion auf gesamte Webseite?

Geschlossen
  1. #1
    User Pic
    Kwitchibo Mitglied
    Registriert seit
    03.08.2005
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    kann man die Suchfunktion für "News" und "Forum" auch auf die komplette webseite erweitern? und wenn ja, weiß jemand wie das geht???
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    MoosQuito Mitglied
    Registriert seit
    08.04.2006
    Beiträge
    47
    Beitragswertungen
    0 Beitragspunkte
    Wie meinst das ?
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Kwitchibo Mitglied
    Registriert seit
    03.08.2005
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    man kann ja bei der Suchfunktion nur das Forum und die News durchsuchen, aber ich will das die leute auf meiner website auch noch andere .php-Dateien durchsuchen können
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Kwitchibo Mitglied
    Registriert seit
    03.08.2005
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    also ich habe eine gute suchfunktion gefunden, nur wenn ich die in dem script einfüge und dann ein suchwort eingebe und absende komm ich auf meine hauptseite? kann mir einer helfen?
    www.mein-ge.de
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Kwitchibo Mitglied
    Registriert seit
    03.08.2005
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    oder kann mir einer sagen wie ich bei diesem suchmaschinen-script es so einstelle, das ich auch auf die seiten komme die angezeigt werden? also das wären da kommt ja sonst immer dann "no acces" oder so!

    script:

    ################################
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    
    <html>
    <head>
    	<title>PHP-Suchmaschine</title>
    	<style>
    	body,td,input { font-family:Verdana;font-size:7.9pt }
    	.t_nummer { font-family:Verdana,Tahoma,Arial; font-size:16pt; font-weight:bold; color:#999999}
    	.markierung {color:#ff0000}
    	</style>
    </head>
    
    <body>
    
    <?
    // error_reporting(0);
    ########### PHP-Suchmaschine ###########
    ########### powered by Viktor Widiker & http://www.widiker.de, Berlin 2002 ###########
    
    ########### Hier folgen die Einstellungen ###########
    
    $max_suchwoerter=3; # Maximale Anzahl der Suchwörter, die wahrgenommen werden
    
    $treffer_pro_seite=10; # Wie viele Treffer werden pro Ergebnisseite angezeigt?
    
    $endungen=array("html","htm","php","phtml"); # Dateien mit welchen Endungen werden durchsucht?
    
    $pfade_gesamt="./"; # Adressen (relativ zum Suchmaschinennskript) der zu durchsuchenden Ordner (durch Kommata trennen!)
    
    $max_stelle=200; # Maximale (ungefähre) Länge (in Zeichen) der ersten gefundenen Textstelle
    
    $mehr_laenge=200; # Maximale (ungefähre) Länge (in Zeichen) des Strings für weitere Vorkommnisse
    
    ########### Ab hier folgt die Suche #######
    // Umstellung auf reg_glo=Off Anfang
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $SERVER_NAME = $_SERVER['SERVER_NAME'];
    // $SERVER_NAME = "http://www.mein-ge.de";
    foreach($_POST as $key => $value) {
      $$key = isset($_POST[$key]) ? $_POST[$key] : "";
    }
    foreach($_GET as $key => $value) {
      $$key = isset($_GET[$key]) ? $_GET[$key] : "";
    }
    // Umstellung auf reg_glo=Off ENDE
    
    if (!isset($grossschreibung)) { $grossschreibung=0; }
    if (!isset($ganzewoerter)) { $ganzewoerter=0; }
    if (!isset($index)) { $index=0; }
    
    $suchtext=trim(stripslashes($suchtext));
    if ($grossschreibung==0) { $suchtext=strtolower($suchtext); }
    $suchtext=ereg_replace(","," ",$suchtext);
    $suchtext2=array(); $suchwoerter=array();
    $suchtext2=explode(" ",$suchtext);
    foreach ($suchtext2 as $einwort)
    {
    if (($einwort!="") && (count($suchwoerter)<=($max_suchwoerter-1)) && (!in_array($einwort,$suchwoerter)))
    { array_push($suchwoerter,$einwort); }
    }
    $suchtext=implode(" ",$suchwoerter);
    ?>
    
    <form action="<? echo "$PHP_SELF"; ?>" method="post">
    <table width="500" cellpadding="5" cellspacing="0" border="0" bgcolor="#ccddee" align="center">
    <tr>
    <td align="right">
    <?
    echo "<input type="text" name="suchtext" size="";
    $browser=$HTTP_USER_AGENT;
    if (1*strpos(strtolower($browser),"msie")>0) { echo "25"; } else { echo "14"; }
    echo "" value="".$suchtext.""><br><br>";
    ?>
    <input type="submit" value=" suchen ">
    </td>
    <td>
    <b>Groß- und Kleinbuchstaben</b><br>
    <input type="radio" name="grossschreibung" value="1" <? if ($grossschreibung==1) echo "checked"; ?>>unterscheiden<br>
    <input type="radio" name="grossschreibung" value="0" <? if ($grossschreibung==0) echo "checked"; ?>>nicht unterscheiden
    </td>
    <td>
    <b>Art der Suche</b><br>
    <input type="radio" name="ganzewoerter" value="1" <? if ($ganzewoerter==1) echo "checked"; ?>>nur ganze Wörter<br>
    <input type="radio" name="ganzewoerter" value="0" <? if ($ganzewoerter==0) echo "checked"; ?>>Wortteile
    </td>
    </tr>
    </table>
    </form>
    
    <?
    if ($suchtext!="") { start(); ausgabe(); }
    
    function start()
    {
    global $suchwoerter,$grossschreibung,$ganzewoerter,$dateinummer,$treffer,$max_stelle,$mehr_laenge;
    global $endungen,$pfade_gesamt;
    $dateinummer=0;
    $treffer=array();
    $pfade=array(); $pfade=explode(",",$pfade_gesamt);
    	foreach ($pfade as $pfad)
    	{
    	$ordner=opendir($pfad);
    		while ($eintrag=readdir($ordner))
    		{
    		$name=$pfad.$eintrag;
    		$dateiname=explode(".",$eintrag);
    		if (in_array($dateiname[1],$endungen))
    			{
    			$anzahl=0;
    			$schluss=0;
    			$gefundene_woerter=array();
    			$datei=fopen($name,"r");
    				while (!feof($datei))
    				{
    				$zeile=fgetss($datei,10000,"");
    				if ($grossschreibung==0) { $zeile=strtolower($zeile); }
    				
    				$woerter=explode(" ",$zeile);
    				foreach ($woerter as $wort)
    				{
    				foreach ($suchwoerter as $suchwort)
    					{
    					### ganze Wörter ###
    					if ($ganzewoerter==0)
    						{
    						if (strstr($wort,$suchwort))
    							{
    							if (!in_array($suchwort,$gefundene_woerter)) { array_push($gefundene_woerter,$suchwort); }
    							$anzahl++;
    							$treffer["vorkommnisse"][$dateinummer]++;
    							if ($anzahl==1)
    								{
    								$treffer["datei_url"][$dateinummer]=$name;
    								
    								$position=strpos($zeile,$wort);
    								$wortlaenge=strlen($wort);
    								$zeilenlaenge=strlen($zeile);
    								if ($zeilenlaenge>$max_stelle)
    									{
    									$lside=$position-(($max_stelle-$wortlaenge)/2);
    									$rside=$lside+$max_stelle;
    									if ($lside<0) { $rside=$rside-$lside; $lside=0; }
    									if ($rside>$zeilenlaenge) { $rside=$zeilenlaenge; }
    									}
    								else { $lside=0; $rside=$zeilenlaenge; }
    								$stelle=substr($zeile,$lside,$rside-$lside);		
    								$stelle=ereg_replace($wort,"<span class="markierung">".$wort."</span>",$stelle);
    								$stelle="...".$stelle."...";
    								$treffer["textstelle"][$dateinummer]=$stelle;
    								}
    								else if ($anzahl==2) { $teil=ereg_replace(",","",$teil); $mehr=$teil; }
    								else if ($anzahl>2)
    									{
    									if (strlen($mehr)<$mehr_laenge) { if ($mehr=="") { $komma=""; } else { $komma=", "; } $wort=ereg_replace(", ","",$wort); $mehr.=$komma.$wort; }
    									else { if ($schluss!=1) {$mehr=$mehr." ..."; $schluss=1;} }
    									}
    							}
    						}
    						### ganze Wörter ENDE ###
    						### Wortteile ###
    						else
    						{
    						if ($wort==$suchwort)
    							{
    							if (!in_array($suchwort,$gefundene_woerter)) { array_push($gefundene_woerter,$suchwort); }
    							$anzahl++;
    							$treffer["vorkommnisse"][$dateinummer]++;
    							if ($anzahl==1)
    								{
    								$treffer["datei_url"][$dateinummer]=$name;
    								
    								$position=strpos($zeile,$wort);
    								$wortlaenge=strlen($wort);
    								$zeilenlaenge=strlen($zeile);
    								if ($zeilenlaenge>$max_stelle)
    									{
    									$lside=$position-(($max_stelle-$wortlaenge)/2);
    									$rside=$lside+$max_stelle;
    									if ($lside<0) { $rside=$rside-$lside; $lside=0; }
    									if ($rside>$zeilenlaenge) { $rside=$zeilenlaenge; }
    									}
    								else { $lside=0; $rside=$zeilenlaenge; }
    								$stelle=substr($zeile,$lside,$rside-$lside);		
    								$stelle=" ".$stelle." ";
    								$stelle=ereg_replace(" ".$wort." "," <span class="markierung">".$wort."</span> ",$stelle);
    								$stelle="...".$stelle."...";
    								$treffer["textstelle"][$dateinummer]=$stelle;
    								}
    								else if ($anzahl==2) { $teil=ereg_replace(",","",$teil); $mehr=$teil; }
    								else if ($anzahl>2)
    									{
    									if (strlen($mehr)<$mehr_laenge) { if ($mehr=="") { $komma=""; } else { $komma=", "; } $wort=ereg_replace(", ","",$wort); $mehr.=$komma.$wort; }
    									else { if ($schluss!=1) {$mehr=$mehr." ..."; $schluss=1;} }
    									}
    							}
    						}
    						### Wortteile ENDE ###
    					}
    					}
    				}
    				fclose($datei);
    				$treffer["woerter"][$dateinummer]=count($gefundene_woerter);
    				$treffer["mehr"][$dateinummer]=$mehr;
    				if (count($gefundene_woerter)>0) { $dateinummer++; }
    			}
    		}
    	closedir($ordner);
    	}
    	
    }
    
    function ausgabe()
    {
    global $treffer,$dateinummer,$PHP_SELF,$index,$SERVER_NAME,$treffer_pro_seite,$suchwoerter,$suchtext,$grossschreibung,$ganzewoerter;
    
    echo "<table width="500" border="0" align="center"><tr><td>n";
    echo "<span style="font-size:13pt"><b>Ergebnisse der Suche:</b></span><br><br>n";
    $treffer_anzahl=count($treffer["datei_url"]);
    if ($treffer_anzahl==0) { echo "<span style="font-size:13pt"><b><center><br><br>Leider nichts gefunden<br><br></center></b></span></td></tr></table>n"; }
    else
    {
    @array_multisort($treffer["woerter"],SORT_DESC,$treffer["vorkommnisse"],SORT_DESC,$treffer["datei_url"],$treffer["textstelle"],$treffer["mehr"]);
    $suchtext=ereg_replace(" ",", ",$suchtext);
    if (count($suchwoerter)>1) { echo "Gesuchte Wörter: "; } else { echo "Gesuchtes Wort: "; }
    echo "$suchtext<br><br>n";
    $anfang=$index*$treffer_pro_seite+1;
    $ende=$anfang+$treffer_pro_seite-1; if ($ende>$treffer_anzahl) { $ende=$treffer_anzahl; }
    echo "<b>Treffer $anfang-$ende von insgesamt $treffer_anzahl Treffern, beste Treffer zuerst:<br><br>n";
    echo "</td></tr></table>n";
    
    for ($k=0;$k<$treffer_pro_seite;$k++)
    {
    $i=$index*$treffer_pro_seite+$k;
    $platz=$i+1;
    if ($platz<=$ende)
    {
    echo "<table width="580" border="1" cellpadding="0" cellspacing="0" align="center">n";
    $t=1;
    $treffer["datei_url"][$i]=ereg_replace("./","",$treffer["datei_url"][$i]);
    $datei=fopen($treffer["datei_url"][$i],"r");
    	while ($t<7)
    	{
    	$zeile=fgetss($datei,1000,""); $zeile=trim($zeile);
    		if ($zeile!="")
    		{
    		echo "<tr><td height="16" colspan="2">";
    		echo "<span class="t_nummer">".$platz.".</span> <a href="".$treffer["datei_url"][$i].""><b>".$zeile."</b></a>";
    		break;
    		}
    	$t++;
    	}
    fclose($datei);
    if ($treffer["woerter"][$i]==1) { $woerter="Wort"; } else { $woerter="Wörter"; }
    if ($treffer["vorkommnisse"][$i]==1) { $vorkommnisse="Vorkommnis"; } else { $vorkommnisse="Vorkommnisse"; }
    echo "<p style="margin-top:0pt; margin-bottom:0pt" align="justify">n";
    echo $treffer["textstelle"][$i]."<br>n";
    echo "<small><b>Weitere Vorkommnisse: </b>".$treffer["mehr"][$i]."</small></p></td></tr>n";
    echo "<tr><td><a href="http://".$SERVER_NAME."/".$treffer["datei_url"][$i]."" target="_blank">n";
    echo "<img src="newwindow.gif" width="14" height="10" border="0">n";
    
    echo "&nbsp;http://".$SERVER_NAME."/".$treffer["datei_url"][$i]."</a></td>n";
    echo "<td align="right"><small><b>".$treffer["woerter"][$i]."&nbsp;".$woerter." | ".$treffer["vorkommnisse"][$i]."&nbsp;".$vorkommnisse."</b></small></td>n";
    echo "</td></tr></table><br><br>n";
    }
    }
    }
    
    if ($treffer_anzahl>0) { echo "<center>Seite:&nbsp;&nbsp;&nbsp;n"; }
    $j=ceil($treffer_anzahl/$treffer_pro_seite)-1;
    for ($i=0;$i<=$j;$i++)
    	{
    	$zahl=$i+1;
    	if (($index+1)!=$zahl) { echo "<a href="$PHP_SELF?suchtext=$suchtext&index=".$i."&grossschreibung=".$grossschreibung."&ganzewoerter=".$ganzewoerter."">"; }
    	echo $zahl;
    	if (($index+1)!=$zahl) { echo "</a>"; }
    	echo "&nbsp;&nbsp;&nbsp;";
    	}
    if ($treffer_anzahl>0) { echo "</center>n"; }
    }
    ########### Ende des Suchmaschinenskripts ###########
    ?>
    
    </body>
    </html>
    
    #######################################



    Zuletzt modifiziert von sCoRpIoN am 09.05.2006 - 17:53:33
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    dildo Mitglied
    Registriert seit
    16.01.2006
    Beiträge
    720
    Beitragswertungen
    0 Beitragspunkte
    Voll verbuggt hier alles
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Kwitchibo Mitglied
    Registriert seit
    03.08.2005
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    wie meinste das?
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    dildo Mitglied
    Registriert seit
    16.01.2006
    Beiträge
    720
    Beitragswertungen
    0 Beitragspunkte
    die seite hier ist total verschoben zumindest bei mir mit IE
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    sCoRpIoN Mitglied
    Registriert seit
    03.03.2005
    Beiträge
    1.883
    Beitragswertungen
    0 Beitragspunkte
    @Kwithibo: wozu gibts hier eigentlich ne code-ansicht?

    mfg
    scopr
    free-design: externer Link

    --## externer Link ##--
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Kwitchibo Mitglied
    Registriert seit
    03.08.2005
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    ja ok, sry, aber kann mir nun einer helfen oder nicht??? brauch ne suchfunktion die alle seiten meiner website durchsucht und nicht nur das forum und das gästebuch, bitteeeeee!!!
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Kwitchibo Mitglied
    Registriert seit
    03.08.2005
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    weiß niemand wie man die suchen.php so verändert das er die gesamte seite anzeigt???
    ist echt dringend!!! ich sitz schon 5 tage nur an dieser suchfunktion und finde nix:-(
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    sCoRpIoN Mitglied
    Registriert seit
    03.03.2005
    Beiträge
    1.883
    Beitragswertungen
    0 Beitragspunkte
    ganz kurz gesagt; erweitere die search.php in include/contents; dort stehen bis jetzt nur 3 bereiche, die abgefragt werden (forum, news,downloads); zwar sind diese drei bereiche in weitere unterbereiche aufgegliedert, aber im grunde sind es bis jetzt nur diese drei.

    deshalb musste zusätzliche sql-abfragen für gallery, awards, wars...... was auch immer in die search.php integrieren;

    also viel spass dabei;

    mfg
    scorp


    Zuletzt modifiziert von sCoRpIoN am 11.05.2006 - 18:05:48
    free-design: externer Link

    --## externer Link ##--
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Kwitchibo Mitglied
    Registriert seit
    03.08.2005
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    puuh das is mir ganz schön zu hoch! Kannste mir nich die search.php so verändern das er nach den selfp und selfb ordner ebenfalls noch sucht???
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    sCoRpIoN Mitglied
    Registriert seit
    03.03.2005
    Beiträge
    1.883
    Beitragswertungen
    0 Beitragspunkte
    ne, da ich den aufwand dazu nicht einschätzen kann und außerdem keinerlei zeit dafür habe, mein neues portal hat definitiv vorrang;

    mfg
    scorp
    free-design: externer Link

    --## externer Link ##--
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Kwitchibo Mitglied
    Registriert seit
    03.08.2005
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    oder kann jemand anderes das mal machen? wer doch mal ein gutes Modul für 1.1, oder nicht????
    Bitte bitte, ich brauch ein vernünftiges Suchscript :-(
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten