Suchmaschine

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:

eine blöde frage: unterstützt dein server PHP? mir siehts nicht danach aus…

Nils aka XraYSoLo

Ja er Ünterstütz php usw.
Datenbank auch !
Sonst hätte cih ja kein Forum machen können: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[/PHP] und nicht so [PHP]<?php[/PHP] und es endet so [PHP]?>[/PHP]
und nicht so
[PHP]?>[/PHP]

da ham wirs ja…sowas hatte ich schon gedacht, weswegen wird das sonst nicht interpretiert…

Nils aka XraYSoLo

Und why gehts nicht?
Welchen Queltext?
VOm Suche oder von den einstellungen?

der quelltext ist mit HTML übersetzt worden, das kann ja nicht klappen…

Nils aka XraYSoLo

Wie mache ich es zu .php?

Im neuen Design ist das glaub .php
oder?

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: kontakt@planetc.de # 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(„=ä=“, „ä“, $del_uml); // Umlaute und ß
$del_uml = preg_replace(„=ö=“, „ö“, $del_uml);
$del_uml = preg_replace(„=ü=“, „ü“, $del_uml);
$del_uml = preg_replace(„=Ä=“, „Ä“, $del_uml);
$del_uml = preg_replace(„=Ö=“, „Ö“, $del_uml);
$del_uml = preg_replace(„=Ü=“, „Ü“, $del_uml);
$del_uml = preg_replace(„=ß=“, „ß“, $del_uml);
return ($del_uml);
} // end func

#################################################
?>
[/php]

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)

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

Nils aka XraYSoLo

Eine kurze Zwischenfrage:

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

Gruß
Steffen

Betsimmt über Queltext!

So ich ahbe es egmacht mit Tetxdatei dann über ftp://yusufg.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)

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

Sry, und kannst du das machen?

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

Ich glaub er meint die .php Datei erstellen :wink:

Ja, aber why geht das nicht?
Kennt ihr einen Suchmaschinen funktion zum Downloaden.
Was auch keinen Datenbank benötigt!

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