Eurokicker
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 24.06.2005, 21:03   #1
TP-Member
 
Benutzerbild von Ironwhistle
 
Registriert seit: May 2005
Ort: Eburon
Ironwhistle ist auf einem guten Weg

Schlüsselworte?


Hi³

Jetzt dachte ich endlich das ich es verstanden hätte, und schon stehe ich vor einer neuen Schwierigkeit...

Ihr kennt sicherlich Eliza - eine Art reaktiver Logik die auf bestimmte Schlüsselworte reagiert. Array's, Strings - ich habe ein Inputfeld in welchem ein Besucher eine Frage formulieren kann - aber mein Script klappt nicht!
Es wird immer direkt das erste eingegebene Wort ausgewertet, ohne das die übrigen Worte überhaupt zur Kenntnis genommen werden.

Muss ich da eine while Schleife einsetzen, oder wie gehe ich da am besten vor?
__________________
Explantierte Gedanken
StGB SS328 Absatz 2.3: Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht
Ironwhistle ist offline   Mit Zitat antworten


Alt 24.06.2005, 21:09   #2
TP-Specialist
 
Benutzerbild von rewboss
 
Registriert seit: Mar 2005
Ort: Unterfranken
rewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKE
Und wie sieht dein Code aus? Sorry -- meine telepathischen Fähigkeiten lassen nach...
rewboss ist offline   Mit Zitat antworten
Alt 24.06.2005, 21:16   #3
TP-Member
 
Benutzerbild von Ironwhistle
 
Registriert seit: May 2005
Ort: Eburon
Ironwhistle ist auf einem guten Weg
Immer diese Telepathen - schlimm...
Code:
<?

# Stichworte
$_001 = ("Test");
$_001 = ("Test2");
$_001 = ("Test3");

# Antworten

$a000 = "Testantwort 1";
$a001 = "testantwort 2";
$a002 = "Testantwort 3";
$a003 = "Testantwort 4";


echo "<form method=POST>";
echo "<textarea rows=10 name=antwort cols=50 class=t1>";

if($frage >= Test)  { echo "$a003 "; }
 elseif ($frage >= Test2)  { echo "$a001"; }
 elseif ($frage >= Test3)  { echo "$a002"; }
 else { echo "$a000"; }
 
echo "</textarea><br>";
echo "<input type=text name=frage size=50>";
echo "<input type=submit value=ask name=fragen>";
echo "</form>";


 
?>
</body>
</html>
Ich will das ganze über if else, bzw. elseif Abfragen realisieren - scheint mir - logisch, am einfachsten nachvollziehbar zu sein.
Nur mir fehlt der entsprechende Operator...

Die Fragen, bzw. Antworten werde ich später auslagern...
__________________
Explantierte Gedanken
StGB SS328 Absatz 2.3: Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht
Ironwhistle ist offline   Mit Zitat antworten
Alt 24.06.2005, 22:20   #4
TP-Veteran
 
Benutzerbild von Master_T2
 
Registriert seit: Oct 2002
Ort: Übach-Palenberg
Master_T2 macht sich hier sehr viel Mühe
Zitat:
# Stichworte
$_001 = ("Test");
$_001 = ("Test2");
$_001 = ("Test3");
Du überschreibst jedes mal die Variable wieder, hat das irgendeinen Sinn?
__________________
Grüße aus Übach-Palenberg
Tim

WEB.ASSISTANTS IT-SOLUTIONS
www.web-assistants.de

Hängt das doch mal an eine beliebige PHP-Datei: ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
Master_T2 ist offline   Mit Zitat antworten
Alt 24.06.2005, 22:30   #5
TP-Member
 
Benutzerbild von Ironwhistle
 
Registriert seit: May 2005
Ort: Eburon
Ironwhistle ist auf einem guten Weg
Nicht wirklich, aber ich hatte zuvor die Variablen nocheinmal überarbeitet, bemerkt das ich wieder am Anfang stand und einfach mal C&P walten lassen.
Daher die gleichen Variablen...

Habe gerade im Netz preg_match_all gefunden - gibt es da noch Alternativen zu?
__________________
Explantierte Gedanken
StGB SS328 Absatz 2.3: Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht
Ironwhistle ist offline   Mit Zitat antworten
Alt 24.06.2005, 22:36   #6
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
he iron,

der Code ist voller Fehler.

füg am Anfang mal error_reporting(E_ALL); ein, dann bekommst Du sie alle angezeigt.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 24.06.2005, 23:26   #7
TP-Member
 
Benutzerbild von Ironwhistle
 
Registriert seit: May 2005
Ort: Eburon
Ironwhistle ist auf einem guten Weg
Oky...

Code:
<?

# Stichworte

$boese = "Trottel";
$nett = "Hallo";

# Antworten

$treffer0 = "Keine Ahnung";
$treffer1 = "Selber";
$treffer2 = "Hallo du";

echo "<form>";
echo "<textarea rows=10 name=antwort cols=50 class=t1>";

if($senden) {
if($frage == strrchr($frage,"$boese")) { echo"$treffer1"; }
elseif ($frage == strrchr($frage,"$nett")) { echo"$treffer2";}
else { echo"$treffer0";}
}

echo "</textarea><br>";
echo "<input type=text name=frage size=50>";
echo "<input type=submit value=ask name=senden>";
echo "</form>";
 
?>
Und es klappt immer noch nicht...

Schreibe ich "hey, Hallo" wird Hallo nicht gefunden und es kommt wieder zu "Keine Ahnung" - scheint bei mir ein Natürlicehr Zustand zu werden... *seufz*
__________________
Explantierte Gedanken
StGB SS328 Absatz 2.3: Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht
Ironwhistle ist offline   Mit Zitat antworten
Alt 25.06.2005, 00:22   #8
TP-Specialist
 
Benutzerbild von rewboss
 
Registriert seit: Mar 2005
Ort: Unterfranken
rewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKE
Hmm. Ich bin mir nicht sicher, wie du dir das ganze vorgestellt hast.

1. strrchr($a, $b) durchsucht den String $a nach dem letzten Vorkommen des ersten Zeichens im String $b und liefert alles von dem Zeichen bis zum Ende des Strings. Das heißt also, strrchr('Hallo Harry', 'Hallo') liefert den String 'Harry'.

2. Ein String, der aus einem Texteingabefeld stammt, enthält auch das Zeichen für einen Zeilenumbruch. Wenn der User in einem Eingabefeld "Hallo" eingibt, so ist die Bedingung $eingabefeld=="Hallo" falsch. Dafür gibt's die Funktion trim().

3. Was ist mit Groß- und Kleinschreibung? Die Bedingung "hallo"=="Hallo" ist auch falsch.

...und so weiter und so fort.
rewboss ist offline   Mit Zitat antworten
Alt 25.06.2005, 00:25   #9
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Code:
if($senden) {
	if(strpos($frage,$boese)) { echo $treffer1; }
	elseif (strpos($frage,$nett)) { echo $treffer2;}
	else { echo $treffer0;}
}
Allerdings ist hier Gross- und Kleinschreibung relevant. Willst Du das ausschalten, musst Du alles mit strtolower() konvertieren.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 25.06.2005, 00:32   #10
TP-Member
 
Benutzerbild von Ironwhistle
 
Registriert seit: May 2005
Ort: Eburon
Ironwhistle ist auf einem guten Weg
Zitat:
Zitat von St@eff.en
Allerdings ist hier Gross- und Kleinschreibung relevant. Willst Du das ausschalten, musst Du alles mit strtolower() konvertieren.
Code:
if($senden) {
       $klein = "$frage";
       $klein = strtolower($klein);
	if(strpos($klein,$boese)) { echo $treffer1; }
	elseif (strpos($klein,$nett)) { echo $treffer2;}
	else { echo $treffer0;}
}
ES KLAPPT!!! *hüpf*

Steffen - ich könnte dich küssen!

Danke
__________________
Explantierte Gedanken
StGB SS328 Absatz 2.3: Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht
Ironwhistle ist offline   Mit Zitat antworten
Alt 25.06.2005, 13:50   #11
TP-Member
 
Benutzerbild von Ironwhistle
 
Registriert seit: May 2005
Ort: Eburon
Ironwhistle ist auf einem guten Weg
Es klappt!

Und schon wieder taucht ein neues Problem auf - langsam verliere ich den Mut...

Ist es machbar das auch zwei oder mehr Schlüsselworte innerhalb des Strings erkannt werden - unabhängig von ihrer Position im String?
Ich liebäugle wieder mit Operatoren, bin mir aber - nach etlichen Fehlversuchen - nicht mehr sicher ob ich damit auf dem richtigen Wege bin...
__________________
Explantierte Gedanken
StGB SS328 Absatz 2.3: Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht
Ironwhistle ist offline   Mit Zitat antworten
Alt 25.06.2005, 14:19   #12
TP-Specialist
 
Benutzerbild von rewboss
 
Registriert seit: Mar 2005
Ort: Unterfranken
rewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKE
Am Besten arbeitest du mit Perl-Compatible Regular Expressions (PCREs). Informationen dazu findest du im PHP-Manual.
rewboss ist offline   Mit Zitat antworten
Alt 25.06.2005, 15:18   #13
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
PHP-Code:
if($senden) {
       
$klein "$frage";
       
$klein strtolower($klein);
    if(
strpos($klein,$boese)) { echo $treffer1; } // Bei strpos() == 0 wird er nichts finden, daher müsste die Abfrage so lauten: strpos(...) !== false.
    
elseif (strpos($klein,$nett)) { echo $treffer2;}
    else { echo 
$treffer0;}

Diese Konstruktion kannst du auch ohne Regex ausbauen, damit es mehrmals durchlaufen wird. Mit einer Schleife umgeben und die aktuelle Position merken, an der die neue Suche beginnen soll. Fertigen Code schreibe ich aber aus Prinzip nicht, bitte versuch's selbst.
Strogij ist offline   Mit Zitat antworten
Alt 25.06.2005, 15:21   #14
TP-Member
 
Benutzerbild von Ironwhistle
 
Registriert seit: May 2005
Ort: Eburon
Ironwhistle ist auf einem guten Weg
Ich wills ja lernen, darum frage ich auch nicht nach fertigem Code...

Danke für den Hinweis!
__________________
Explantierte Gedanken
StGB SS328 Absatz 2.3: Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht
Ironwhistle ist offline   Mit Zitat antworten
Alt 26.06.2005, 10:25   #15
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Zum lernen würde ich erstmal ohne die regulären Ausdrücke arbeiten, da muss man sich gesondert einarbeiten, und viele verschreckt der Syntax.
Vieles lässt sich auch mit den normalen PHP Boardmitteln lösen, wie z.B. die Suche in Strings.

So kannst Du z.B. alle Suchwörter in ein Array ablegen:
$searchfor=Array("wort1","wort2");

Dann durchläufst Du das Array und suchst nach den Begriffen:
PHP-Code:
for($i=0;$i<count($searchfor);$i++) {
  
$pos=strpos(strtolower($frage),strtolower($searchfor[$i]));
  if(
$pos) {
     echo 
$treffer;
     break;
  }

Natürlich kann man das auch mit preg_match einfacher lösen, aber dazu muss man eben den Syntax der RegEchsen kennen.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Schlüsselworte? Schlüsselworte?
« seite nicht gefunden mit zurück-button | Problem mit Array »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:54 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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