| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Werner Homepage-Total.de Moderator

|
Re: Fehler ? |
|
|
| Sarina hat Folgendes geschrieben: |
Warning: Invalid argument supplied for foreach() in (.....)suche.php on line 122 |
Soll ich jetzt raten was du geändert hast, ich habe leider keine Glaskugel.
Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten! |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 07 Jan 2012 07:47 |
|
  |
Sabrina Gast
|
RE |
|
|
| PHP-Code: | 1 2 3 4 5 6 7
| /* Die zu durchsuchenden Verzeichnisse eintragen.
Aktuelles Verzeichnis durchsuchen mit "./" */
$verzeichnisse = array(
"bilder/",
"inhalt/",
"style/",
); |
Das ist das einzige, was ich verändert habe. |
|
|
|
| 07 Jan 2012 11:49 |
|
 |
Werner Homepage-Total.de Moderator

|
 |
|
|
Ach, und in diesem kleinem Scriptteil soll ich den Fehler finden
Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten! |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 07 Jan 2012 13:43 |
|
 |
Gast
|
 |
|
|
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
| body {
font-family: Verdana, Arial, Sans-Serif;
font-size: 13px;
}
acronym { /* Suchbegriff hervorheben */
background-color: #D5FFAA;
}
var { /* Datei-Info */
color: #00AF00;
font-size: 11px;
}
</style>
</head>
<body>
<?php
/*
Kleine Suchmaschine - Version vom: 21.06.2011 - Homepage-Total.de
Diese Suchmaschine durchsucht die angegebenen Verzeichnisse
und die darin enthaltenen Dateien nach einem Suchbegriff!
*/
[b:eb82485163]/* Die zu durchsuchenden Verzeichnisse eintragen.
Aktuelles Verzeichnis durchsuchen mit "./" */
$verzeichnisse = array(
"bilder/",
"inhalt/",
"style/",
); [/b:eb82485163]
/* Die Dateiendungen der Dateien die gefunden werden sollen */
$dateiendungen = array(
".gif",
".htm",
".html",
".jpg",
".mp3",
".pdf",
".php",
".png",
".txt",
".zip",
);
/* Die Dateiendungen der Dateien die von der oberen Liste "keine"
Textdateien sind, es wird nur der Dateiname angezeigt */
$_dateiendungen = array(
".gif",
".jpg",
".mp3",
".pdf",
".png",
".zip",
);
/* Vorzeichen bei Dateien die nicht durchsucht werden
sollen zum Beispiel: _intern.htm, _log.php, _data.txt */
$vorzeichen = "_";
/* Einzelne Dateien die nicht durchsucht werden sollen */
$nicht_durchsuchen = array(
"suchmaschine.php",
"login.htm",
);
/* Länge des Suchbegriffs (mindestens 3 Zeichen) */
$suchbegriff_min = 3;
/* Anzahl der durchsuchten Verzeichnisse und Dateien anzeigen (ja/nein) */
$anzahl_dateien = "ja";
/* Maximale Anzeige (Begrenzung) der Suchergebnisse */
$suchergebnisse_max = 25;
/* Sucheingaben speichern (ja/nein) */
$speichern = "nein";
/* Name der Datei in der die Sucheingaben gespeichert werden */
$suchdatei = "suchbegriffe.txt"; // Benötigt Schreibrechte!
/* Automatische Weiterleitung wenn nur eine Datei gefunden wird (ja/nein) */
$autolink = "ja";
/* Unerwünschte Sucheingaben von der Suche ausschließen */
$ausschluss = array(
"Demotext",
"Demotext2",
);
/* Länge des angezeigten Textausschnitts */
$textausschnitt = 50;
/* URL (Optional) Bsp.: www.demosei.de/ */
$url = "";
echo '<form method="post" action="' . $_SERVER["SCRIPT_NAME"] . '">
<input type="text" name="suchbegriff" value="' .
(isset($_POST["suchbegriff"]) ? $_POST["suchbegriff"] : '') .
'" size="35" maxlength="40" required="required">
<input type="submit" name="suche" value="suchen">
</form>
';
$gefunden = $dateinr = 0; $ausgabe = $link = "";
$startzeit = microtime(true);
if (isset($_POST["suche"]) || isset($_POST["suchbegriff"])) {
$_POST["suchbegriff"] = (function_exists('str_ireplace') ? str_ireplace($ausschluss, "", $_POST["suchbegriff"]) : str_replace($ausschluss, "", $_POST["suchbegriff"]));
if (strlen(trim($_POST["suchbegriff"])) >= $suchbegriff_min) {
foreach ($verzeichnisse as $verzeichnis) {
foreach ($dateiendungen as $dateiendung) {
foreach (glob($verzeichnis . "*" . $dateiendung) as $datei) {
$dateiname = basename($datei);
if ($dateiname[0] != $vorzeichen && !in_array($dateiname, $nicht_durchsuchen)) {
$text = (!in_array($dateiendung, $_dateiendungen)) ? file_get_contents($datei) : substr(strtoupper($dateiendung), 1) . '-Datei';
preg_match("/<title>(.*?)</i", $text, $t);
$titel = isset($t[1]) ? $t[1] : $dateiname;
unset($t[1]); $dateinr++;
$text = strtr(strip_tags($text), array("ä"=>"ä", "ö"=>"ö", "ü"=>"ü", "Ä"=>"Ä", "Ö"=>"Ö", "Ü"=>"Ü", "ß"=>"ß", "\r" =>" ", "\n" =>" ", "\t" =>" ", " " =>" "));
$_POST["suchbegriff"] = trim($_POST["suchbegriff"]);
if ((strstr($text, $_POST["suchbegriff"]) or stristr($text, $_POST["suchbegriff"]) or stristr($dateiname, $_POST["suchbegriff"])) && $gefunden <= $suchergebnisse_max) {
$gefunden++; $link = $datei;
$textteil = substr($text, (strpos($text, $_POST["suchbegriff"]) - $textausschnitt), (strlen($_POST["suchbegriff"]) + ($textausschnitt * 2)));
$ausgabe .= '<p>' . $gefunden . '. <a href="' . $datei . '">' . $titel . '</a> <small>(' . substr_count(strtolower($text), strtolower($_POST["suchbegriff"])) . 'x)</small><br>… ' .
preg_replace('/(' . $_POST["suchbegriff"] . ')/i', '<acronym>$1</acronym>', (strlen($textteil) < $textausschnitt ? substr($text, strpos($text, $_POST["suchbegriff"]), $textausschnitt) : $textteil)) .
' …<br><var>Stand: ' . date("d.m.y h:i", filemtime($datei)) . ' - ' . number_format((filesize($datei) / 1024), 2, ",", ".") . ' kb - ' . $url . $datei . '</var></p>';
}
}
}
}
}
if ($gefunden == 0) {
echo '<p>Es wurden keine Übereinstimmungen mit dem eingegebenen Suchbegriff gefunden.</p>';
}
else {
if ($autolink == "ja" && $gefunden == 1) {
echo '<script type="text/javascript">location.href="' . $link . '";</script>';
}
echo '<p>Es ' . ($gefunden == 1 ? 'wurde '. $gefunden . ' Datei' : 'wurden ' . $gefunden . ' Dateien') . ' gefunden:</p>' . $ausgabe;
}
if ($anzahl_dateien == "ja") {
printf('<p>Durchsuchte Verzeichnisse: ' . count($verzeichnisse) . ' - Dateien: ' . $dateinr . ' (in %.2f Sekunden)</p>', microtime(true) - $startzeit);
}
if ($speichern == "ja") {
$fp = fopen($suchdatei, "a+");
fputs($fp, date("d.m.y h:i") . '|' . $_POST["suchbegriff"] . '|' . $gefunden . "\n");
fclose($fp);
}
}
else {
echo '<p>Es sind mindestens ' . $suchbegriff_min . ' Zeichen nötig!</p>';
}
}
?>
</body>
</html> |
|
|
|
|
| 07 Jan 2012 20:51 |
|
 |
|