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

einfache suchabfrage über link

smsterminal

Mitglied
hi leute, habe nen gutes suchsystem mit datenbank in php. das klappt alles gut jedoch wenn ich direkt ne abfrage über den browser stelle wirft er nix aus. wie lautet der richtige code. habe es so gemacht und das geht nicht!

**** .php?query=bench
 
Zuletzt bearbeitet:
Werbung:
hier der code

<?php
function findwort($wort=""){
/*
* Wenn wort leer ist, Funktion beenden.
*/
if(strlen($wort)==0){
$gef_zeilen[]="Geben sie einen Suchbegriff ein";
return $gef_zeilen;
}
/*
* Datei zeilenweise in ein Array einlesen.
* 80 ist die Zeilenlänge, erhöhen falls nötig.
*/
$i=0;
$f=fopen("zitate.txt","r");
while($line=fgets($f,1000)){
$text_lines[$i]=$line;
$i++;
}
fclose($f);
/*
* Zeilenweise das Array mit der Funktion strpos durchsuchen.
* strpos arbeitet case-sensitiv, deshalb werden mit strtolower
* alle Groß- in Kleinbuchstaben umgewandelt.
*/
$i=0;
while($i<count($text_lines)){
$pos = strpos(strtolower($text_lines[$i]),strtolower($wort));
if($pos === false){
/*
* Wenn $pos false ist, tue nichts!!
*/
}else{
$gef_zeilen[$i]="".($text_lines[$i]);
}
$i++;
}
/*
* count zählt die Elemente im Array.
*/
if(count($gef_zeilen)>0){
return $gef_zeilen;
}else{
$gef_zeilen[0]="Der Suchbegriff \"$wort\" wurde nicht gefunden";
return $gef_zeilen;
}
}
/*
* Ist das Formular gesendet, gibt die Funktion ein Array zurück, deshalb mit foreach ausgeben.
*/
if(isset($_POST['suche'])){
$erg=findwort($_POST['suche']);
foreach($erg as $zeile){
echo "<p>$zeile</p>";

}
}
?>
 
Werbung:
Das eingegebene Suchwort wird mit HTTP-POST entgegen genommen, nicht mit GET (wie du es manuell versuchst).

Wenn das ganze auch per GET funktionieren soll, dann setze den Wert des method-Attributs deines form-Tags (wo dein Suchfeld drin liegt) auf "get" und nehme die Daten anstatt mit $_POST mit $_GET in PHP entgegen.
 
Zurück
Oben