• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Suchmaschine

Status
Für weitere Antworten geschlossen.
Hallo,
ich habe nen Problem.
Ich habe ne Suchmaschine.
Wenn ich auf suchen geh kommt aber nicht das was gesucht werden soll!
Schaut euch das selber an!
New Document
Ich hoffe wir kriegen hin!
:wink:
 
hmm...wieso führt er dann das script nicht aus?
post' mal den quellcode, mal sehen, ob da was drin ist.

Nils aka XraYSoLo
 
ich will ja nix sagen aber php fängt nun mal so an:
PHP:
<?php
und nicht so
PHP:
&lt;?php
und es endet so
PHP:
?>
und nicht so
PHP:
?&gt;
 
da ham wirs ja...sowas hatte ich schon gedacht, weswegen wird das sonst nicht interpretiert...

Nils aka XraYSoLo
 
einfach so abspeichern:

PHP:
<?php
###########################################################
#
#   (c) PlaNet Concept e.K., Lars Odermath, 2003
#
###########################################################
#
# :: planetSearch :: Version vom 05.10.2003
#
# COPYRIGHT NOTICE                                                           
# Copyright 2003 PlaNet Concept e.K.     
# All Rights Reserved.                     
# EMail: [email protected]
# URL  : http://www.planetc.de
#                                                                            
# :: planetSearch :: darf für private Homepages kostenlos benutzt und geändert
# werden, solange SÄMTLICHE Copyright-Verweise und die restlichen Kommentare erhalten
# bleiben.
#
# Mit dem Einsatz dieses Skripts akzeptieren Sie, daß PlaNet Concept e.K.,
# Lars Odermath, von jeglicher Haftung und Gewährleistung hinsichtlich des
# Einsatzes befreit ist.
# 
# Der Verkauf dieses Skripts, auch in modifizierter Form, ist ohne vorherige
# Absprache ausdrücklich untersagt! (Mit anderen Worten: Bitte fragen Sie uns,
# bevor Sie versuchen, mit unserem Script Geld zu verdienen.)
#
# Sollten Sie den Copyright-Verweis in der Ausgabe des Scriptes nicht anzeigen
# oder das Script auf kommerziellen Seiten einsetzen wollen, können Sie dies gegen die
# Entrichtung einer Lizenz-Gebühr in Höhe von € 36,00 zzgl. der gesetzl. MWSt. tun.
# Senden Sie uns dazu bitte eine eMail und geben u.a. die URL für das Script an.
# Sie erhalten dann umgehend eine Rechnung von uns.
# 
# BITTE LESEN UND BEACHTEN SIE UNSERE NUTZUNGSBEDINGUNGEN FÜR DIE SCRIPTE!!!
# Die Nutzungsbedingungen finden Sie in der der beigefügten "nutzungsbedingungen.txt"
# und unter http://www.planetc.de/download/nutzungsbedingungen.html
#
###########################################################
###########################################################

#############################
include ("./inc/config.inc.php");
#############################
$root_dir = $_SERVER["DOCUMENT_ROOT"].$from_dir."/";

@setlocale("LC_ALL", "de_DE");

# Suchbegriff(e) übernehmen und umwandeln
$search_exp = strip_tags($_POST["search_exp"]);

#############################
#Prüfen, ob ein Suchbegriff eingegeben wurde

if (!empty($search_exp)) {

# Sonderzeichen entfernen
$frrepl = array("=\+=", "=\s+=");
$torepl = array("", " ");
$search_exp = preg_replace( $frrepl, $torepl, $search_exp);
$search_exp = preg_quote($search_exp);
$search_exp = trim($search_exp);

# Zeichenanzahl des Suchbgeriffes prüfen
if (strlen($search_exp) < $sexp_length) {
	// Template laden
	$tmpl = join('', file("./tmpl/search_error.htm"));
	$tmpl = preg_replace("=\[search_error_count\]=", $error_count, $tmpl);
	$tmpl = preg_replace("=\[search_error_empty\]=", "", $tmpl);
	eval('?>' .  $tmpl);
} else {

# Suchbegriffe in Array umwandeln und zählen
$search_arr = explode(" ",$search_exp);
$search_count = count($search_arr);

# "Dummy"-Array für Such-Array erzeugen
$arr = array();
$arr_all = array();

# Template laden
$tmpl = join('', file("./tmpl/search_result.php"));

# Bereich der Trefferanzeige aus dem Template ziehen
preg_match_all("=\[SEARCH_START\](.*)\[SEARCH_STOP\]=siU", $tmpl, $between);

$search_pages = 0;

$cont_part = walk_dir($root_dir);		// Verzeichnisdurchlauf starten

$search_pages = count($cont_part); // Anzahl der Trefferseiten

rsort($cont_part); // Array sortieren

for ($j=0; $j<$search_pages; $j++) { // Arrays auslesen
	list($anz_searchexp, $title, $descr, $new_path) = $cont_part[$j];
	$content = preg_replace("=\[SEARCH_TITLE\]=", "$title", $between[1][0]);
	$content = preg_replace("=\[SEARCH_LINK\]=", "$from_dir"."$new_path", $content);
	$content = preg_replace("=\[SEARCH_DESC\]=", "$descr", $content);
	$content = preg_replace("=\[SEARCH_COUNT\]=", "$anz_searchexp", $content);
	$cont_x .= $content;
}

// Suchergebnis zusammenstellen und anzeigen
$tmpl = preg_replace("=\[SEARCH_START\](.*)\[SEARCH_STOP\]=siU", $cont_x, $tmpl);
$search_exp = str_replace('\\', '', $search_exp);
$tmpl = preg_replace("=\[SEARCH_WORDS\]=", $search_exp, $tmpl);
$tmpl = preg_replace("=\[SEARCH_PAGES\]=", $search_pages, $tmpl);

if (empty($cont_part)) {
    $tmpl = preg_replace("=\[NO_MATCH\]=", $no_match, $tmpl);
} else {
    $tmpl = preg_replace("=\[NO_MATCH\]=", "", $tmpl);
}

eval('?>' .  $tmpl);

#################################################
# Logdatei schreiben

foreach ($search_arr as $search_exp) {

$zeilen = file("./_log/search_log.txt");
$anz_zeilen = sizeof($zeilen);

$x=0;

# Datenfile auslesen
for ($i=0; $i<$anz_zeilen; $i++) {

	list ($search_word, $search_num) = split("\\|", chop($zeilen[$i]));	

	// wenn Suchbegriff gefunden wird
	if ($search_exp==$search_word) {
		$search_num++;
		$i-2;
		$x++;
	}
	    $new_log .= "$search_word|$search_num\n";
}

// wenn der Suchbegriff nicht schon geloggt wurde
if ($x==0) {
	$search_num = "1";
    $new_log .= "$search_exp|$search_num\n";
}

$data = fopen("./_log/search_log.txt","w+");
flock($data,1);
fwrite($data, $new_log);
flock($data,3);
fclose($data);
unset($new_log);
}
#################################################

}
}
#############################
# Wenn kein Suchbegriff eingegeben wurde
else {
	# Template laden
	$tmpl = join('', file("./tmpl/search_error.php"));
	$tmpl = preg_replace("=\[search_error_count\]=", "", $tmpl);
	$tmpl = preg_replace("=\[search_error_empty\]=", $error_empty, $tmpl);
	eval('?>' .  $tmpl);
}
#############################

#################################################
# Function für den Verzeichnisdurchlauf und die Trefferermittlung
function walk_dir($dir, $pos=2)
{

global $search_exp, $search_arr, $search_count, $arr, $ignore_dir, $dat_type, $root_dir, $search_area, $cont_part, $no_title, $search_pages, $arr_all;

     $handle = @opendir($dir);
     while ($file = @readdir ($handle)) 
     {
        if (preg_match("=^\.{1,2}$=",$file))
        {
          continue;
        }

		$cut_dir = preg_replace("=$root_dir=siU", "", $dir); // Verzeichnisse zum Vergleich anpassen
		if (in_array($cut_dir, $ignore_dir)) continue; // zu ignorierende Verzeichnisse auslassen
		if (preg_match('=(_vti_cnf|_notes)=i', $cut_dir)) continue;

		if(is_dir($dir.$file))
        {
          walk_dir($dir.$file."/", $pos + 3);               
        }
        else
        {
        #########################################
		# Suche und Trefferanzeige
		#########################################
		$abs_dir = preg_replace("=$root_dir=","",$dir);		// absoluten Pfad ermitteln
		

		if (preg_match("=(\.$dat_type)$=",$file)) {		// wenn eine Datei eine zulässige Endung hat...

		$str = join('', file("$dir$file"));		// ...Datei einlesen

		if (!preg_match("=\<\!\-\-.no_search.\-\-\>=siU", $str)) { // auf auszuschließende Seiten prüfen

		$str = ch_uml($str); // Umlaute verarbeiten

		// Titel ermitteln
		preg_match("=<title>(.*)</title>=siU", $str, $title);

		// Meta-Beschreibung ermitteln
		preg_match('=<meta.*name\="description".*content\="(.*)".*>=siU',$str,$descr);

		// Keywords
		preg_match('=<meta.*name\="keywords".*content\="(.*)".*>=siU',$str,$keyw);

		// zu durchsuchender Bereich
		if ($search_area==1) {	// Titel, Description, Keywords
			$a = "$title[1]"."$descr[1]"."$keyw[1]"; 
		}
		else {	// alles
			$str = preg_replace("=\<\!\-\-.no_search_start.\-\-\>.*?\<\!\-\-.no_search_stop.\-\-\>=s", "", $str);
			$a = preg_replace("=<script.*>.*<\/script>=siU", "", $str); // JavaScript-Code entfernen
			$a = preg_replace("=<\?.*?\?>=s", "", $a); // PHP-Tags löschen um nur Text zu durchsuchen
		    $a = preg_replace("=(<[^>]+>)=siU", "", $str); // Tags löschen um nur Text zu durchsuchen
			$a .= "$title[1]"."$descr[1]"."$keyw[1]";
		}

		$i=0;

		foreach ($search_arr as $search_word) {		// jeden Suchbegriff prüfen
		if (preg_match("=($search_word)=i", $a)) {		// wenn Suchbegriff vorkommt...

			$anz_searchexp += preg_match_all("=$search_word=siU", $a, $nullinger);

		$i++;		// i für jeden gefundenen Suchbegriff erhöhen

		if ($i==$search_count) {		// wenn ALLE Suchbegriffe gefunden wurden...

			if (!empty($title[1]))		// Title der Seite auslesen
			{
				$new_title = "$title[1]";
				$new_path = "/$abs_dir$file";
			}
			else {
				$new_title = "$no_title";
				$new_path = "/$abs_dir$file";
			}

			if (!empty($descr[1]))	// description auslesen
			{
				$new_descr = "$descr[1]";
			}
			else {
				$new_descr = "";
			}

		if (!preg_match("=^\(\.\*\)$=", $new_title)) {
			$s_show = array();
			$s_show[] = $anz_searchexp;
			$s_show[] = $new_title;
			$s_show[] = $new_descr;
			$s_show[] = $new_path;
			array_push($arr_all, $s_show);
		}

		unset($str, $anz_searchexp);
		}
		}
		}
	}
}
		#########################################
		#########################################
        }
     }
	 $cont_part = $arr_all;
	 return ($cont_part);
     @closedir($handle); 
}
# Funktion ende
#################################################

// Umlaute bearbeiten
function ch_uml($del_uml) {
$del_uml = preg_replace("=&auml;=", "ä", $del_uml); // Umlaute und ß
$del_uml = preg_replace("=&ouml;=", "ö", $del_uml);
$del_uml = preg_replace("=&uuml;=", "ü", $del_uml);
$del_uml = preg_replace("=&Auml;=", "Ä", $del_uml);
$del_uml = preg_replace("=&Ouml;=", "Ö", $del_uml);
$del_uml = preg_replace("=&Uuml;=", "Ü", $del_uml);
$del_uml = preg_replace("=&szlig;=", "ß", $del_uml);
return ($del_uml);
} // end func

#################################################
?>

Nils aka XraYSoLo
 
Ich habs gemacht, womit soll ich das den machen ich öffne die textseite per Frontpage und füg das neue ein ist das richtig?

So ist veröffentlich guckt ihr mal?

Also bei mir kommt Error

Mod-Edit: Dreifachpost zusammengeführt - Also langsam wirds kriminell, benutz' endlich mal die Editierfunktion (XraYSoLo)
 
Zuletzt bearbeitet von einem Moderator:
Eine kurze Zwischenfrage:

@XraYSoLo
wie bist du an den gnazen Quelltext gekommen? Yusuf hat doch garkeinen gepostet!

Gruß
Steffen

Betsimmt über Queltext!

frontpage, ojeee, dann klappts erst nicht, machs mit einem normalen texteditor.

Nils aka XraYSoLo

So ich ahbe es egmacht mit Tetxdatei dann über ftp://(old user).com gemacht und jetzt kommt da was blaues mit warning usw!

Kannst du es nicht machen mit .php und dann schist du es mir und ich mache es direkt über FileZila hoch?

Mod-Edit: Dreifachpost zusammengeführt (XraYSoLo)
 
Zuletzt bearbeitet von einem Moderator:
der war falsch interpretiert, dann konnte man ihn sehen

Yusuf, wenn du nochmal 'nen doppelpost herstellst, schließ ich hier, das ist schon das dritte mal, dass ich das korrigieren muss...

Nils aka XraYSoLo
 
wie du siehst, ja.

ich musste das ja schon mehrmals editieren und zusammenfügen.

also, in zukunft hälste dich bitte dran, einfach die editierfunktion benutzen, wenn dir noch eine information in den kopf kommt, wenn der erste post schon geschrieben ist. viele der user lesen sich ohnehin das komplette gespräch durch, also muss man keine bedenken haben, dass editiertes nicht zum zuge kommt.

Nils aka XraYSoLo
 
dein ding braucht auch keine datenbank.

füg' den quellcode einfach in einen TEXTeditor ein und speicher' ihn unter der endung PHP ab und NICHT mit frontpage, denn frontpage spuckt nur müll aus.

Nils aka XraYSoLo
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben