CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
23.06.2006, 11:00:31
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 10
|
|
Problem mit Fehlerausgabe in Suchfunktion
Hallo zusammen,
ich möchte eine Textdatei per Formular durchsuchen und folgendes erreichen:
- Prüfung, ob Suchbegriff min. 3 Zeichen lang
- Fehlermeldung, falls nichts gefunden wird.
- falls alles ok ist, sollen die gefundenen Datensätze ausgegeben werden.
Problem:
Die Fehlermeldung, dass nichts gefunden wurde, wird leider auch angezeigt, wenn es Ergebnisse gibt.
Ich komme hier leider nicht weiter. Wo könnte hier der Denkfehler sein? Vielen Dank für Eure Hilfe!! Hier der Code:
<?
if(isset($_REQUEST['suche'])){
// Formular gesendet
if(strlen($_REQUEST['suche']) > 3){
// mindestens 3 Zeichen eingegeben
$datei = "test.txt";
$lines = file($datei);
{
if (strpos($line, $_POST["suche"]) == FALSE)
{$error1 = "Fehler: nix gefunden.<br>";
}
foreach ($lines as $line)
{
if (strpos($line, $_POST["suche"]) !== FALSE && strpos($line,"Deutsch"))
//Daten ausgeben
{
$zeile = explode('#', trim($line));
print("<a href=");print($zeile[1]);print(">");
print($zeile[1]);
print("</a>");
print("<br>");
print("<p class=normal>Kategorie: ");print($zeile[2]);
print(" | ");
print("Übung für ");print($zeile[3]);
print(" | ");
print("Rubrik: ");print($zeile[4]);
print("<br><br></p>");
}}}}else
{
$error2 = "Fehler: Bitte geben Sie mindestens 3 Zeichen ein.<br>";
}
}
?>
|
23.06.2006, 13:49:29
|
Member
|
|
Registriert seit: Aug 2005
Beiträge: 644
|
|
AW: Problem mit Fehlerausgabe in Suchfunktion
Hallo
Ich weiß nich ob es was ändert aber das { unter $lines = file($datei); gibt für mich irgendwie keinen Sinn. Ebenso das allerletzte.
Vllt verschiebt des das ganze irgendwie.
En Versuch ists wert...
Dann och eine Kleinigkeit:
Wenn er nichts findet dann brauch er auch nicht suchen. also kannste das was nach dem "nix gefunden" Error kommt noch in ein else packen!
Gruß,
Matze
|
27.06.2006, 01:06:14
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 10
|
|
AW: Problem mit Fehlerausgabe in Suchfunktion
ich habe das ganze nun umgestellt. gleiches Ergebnis. Es kommt die Fehlermeldung, wenn nichts gefunden wird und aber auch, wenn Ergebnisse zurückgegeben werden. Wo könnte der Fehler sein? Ich bin Euch für jeden Tip dankbar :-) Hier der neue Code:
<?
$datei = "test6_1.txt";
$lines = file($datei);
sort($lines);
if(isset($_REQUEST['suche'])){
// wurde das Formular abgesendet
if(strlen($_REQUEST['suche']) > 3){
// hat der Benutzer mindestens 3 Zeichen eingegeben
foreach ($lines as $line)
{
if (strpos($line, $_POST["suche"]) !== FALSE && strpos($line,"Deutsch"))
//Daten ausgeben
{
$zeile = explode('#', trim($line));
print("<a href=");print($zeile[4]);print(">");
print($zeile[4]);
print("</a>");
print("<p class=normal>Übung für ");print($zeile[2]);
print(" | ");
print("Kategorie: ");print($zeile[3]);
print(" | ");
print("Titel: ");print($zeile[0]);
print("<br><br></p>");
}else{ $error1 = "Fehler: nix gefunden.<br>";
}
}}else
{
$error2 = "Fehler: Bitte geben Sie mindestens 3 Zeichen ein.<br>";
}
}
?>
|
27.06.2006, 14:32:00
|
Member
|
|
Registriert seit: Aug 2005
Beiträge: 644
|
|
AW: Problem mit Fehlerausgabe in Suchfunktion
Hallo
Probiers mal so:
PHP-Code:
<?
$datei = "test6_1.txt";
$lines = file($datei);
sort($lines);
if(isset($_REQUEST['suche']))
{
// wurde das Formular abgesendet
if(strlen($_REQUEST['suche']) > 3)
{
// hat der Benutzer mindestens 3 Zeichen eingegeben
foreach ($lines as $line)
{
if (strpos($line, $_POST["suche"]) !== FALSE && strpos($line,"Deutsch"))
//Daten ausgeben
{
$zeile = explode('#', trim($line));
print("<a href=");print($zeile[4]);print(">");
print($zeile[4]);
print("</a>");
print("<p class=normal>Übung für ");print($zeile[2]);
print(" | ");
print("Kategorie: ");print($zeile[3]);
print(" | ");
print("Titel: ");print($zeile[0]);
print("<br><br></p>");
}
else
{
$error1 = "Fehler: nix gefunden.<br>";
}
}
}
}
else
{
$error2 = "Fehler: Bitte geben Sie mindestens 3 Zeichen ein.<br>";
}
?>
Ich hab unten eine } gelöscht und sie dafür hinter den Error1 gemacht.
Mach doch wenn du was programmierst direkt Einrückungen, dann passiert sowas nicht so schnell!
Gruß,
Matze
|
29.06.2006, 00:35:51
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 10
|
|
AW: Problem mit Fehlerausgabe in Suchfunktion
Hallo Matze,
vielen Dank. Hab´s ausprobiert - leider ohne Erfolg. Die Fehlermeldun kommt trotzdem noch, auch wenn Daten gefunden werden. ich versuche, das nun mal ganz anders.
|
29.06.2006, 12:59:34
|
Member
|
|
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
|
|
AW: Problem mit Fehlerausgabe in Suchfunktion
Dir ist aber schon klar, dass deine Textdatei zeilenweise abgesucht wird? Was ja deine Schleife macht. Also kann es passieren, dass er in einer Zeile eben nichts findet und dir dadurch auch eine Fehlermeldung ausgibt. Obwohl er in den anderen Zeilen etwas gefunden hat.
Deine Abfrage ob die Suche erfolgreich war kann erst erfolgen, wenn die ganze Datei durchsucht wurde.
__________________
Grüße Andes
|
29.06.2006, 18:48:06
|
Member
|
|
Registriert seit: Aug 2005
Beiträge: 644
|
|
AW: Problem mit Fehlerausgabe in Suchfunktion
Ach, da ha ich beim suchen nach Syntax fehlern gernicht drauf geachtet *an den Kopf schlag*
Kannst du schnell lösen indem du einfach das ganze else in dem jetzt dem error1 seine Fehlermeldung kriegt wegmachst,
dann vor alledem error1 die Fehlermeldung gibst und im Falle eines Sucherfolgs wieder $error1="" setzt.
Gruß,
Matze
Geändert von MatMel (29.06.2006 um 18:48:28 Uhr)
Grund: Rechschreibung
|
29.06.2006, 21:04:04
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 10
|
|
AW: Problem mit Fehlerausgabe in Suchfunktion
Au Backe. dass mit dem zeilenweise einlesen habe ich übersehen. @MatMel: so ganz habe ich Deinen Vorschlag nicht verstanden. Wo soll der ERROR: nix gefunden hin?
|
29.06.2006, 21:29:54
|
|
Member
|
|
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
|
|
AW: Problem mit Fehlerausgabe in Suchfunktion
Mein Vorschlag, das schnell zu lösen:
Vor der Schleife: $error = true;
In der Schleife wenn was gefunden wurde $error auf false setzen.
Und am Ende if($error) echo 'Fehlermeldung';
Edit: Zu langsam... Aber ich würds trotzdem mit booleschen Werten machen...
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Für 100% sauberen Code.
Geändert von Serp (29.06.2006 um 21:30:53 Uhr)
|
29.06.2006, 21:45:22
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 10
|
|
AW: Problem mit Fehlerausgabe in Suchfunktion
YES! Das war´s! Herzlichen Dank an Euch alle :-)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:54:47 Uhr.
|