php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 29-04-2010, 20:02
Hampelmann
 Registrierter Benutzer
Links : Onlinestatus : Hampelmann ist offline
Registriert seit: Mar 2010
Beiträge: 7
Hampelmann befindet sich auf einem aufstrebenden Ast
Standard Zwei aufeinanderfolgende Eingaben prüfen

Hallo,

Habe folgendes Problem:

Und zwar habe ich ein ganz normales Formular und möchte jetzt überprüfen, ob unmittelbar nach einer bestimmten Eingabe eine andere bestimmte Eingabe folgt.

Klingt sicherlich etwas unschlüssig, deshalb mal ein Beispiel.

Beispielsweise wird in das Formular eingegeben "Erzähl mir etwas!"
Worauf hin dann ausgegeben wird "Möchtest du etwas über Schwarze Löcher erfahren?"

Umzusetzen wäre dies ja mit folgendem oder preg_match:

PHP-Code:
if(eregi("Erzähl mir etwas!""$_POST[nachricht]"))
echo 
"Möchtest du etwas über Schwarze Löcher erfahren?"

Nun soll aber ebenfalls überprüft werden ob die nächste Eingabe "ja" oder "nein" ist.
Bei "ja" soll dann halt ein Text über schwarze Löcher als Ausgabe folgen und bei "nein" beispielsweise "Dann erzähl ich dir eben etwas über..."

Aber das "ja" bzw. "nein" will ich nicht mit eregi (preg_match) definieren, da dann z.B. bei der Eingabe "ja" IMMER der Text über schwarze Löcher folgt, was aber nur im Zusammenhang mit "Möchtest du etwas über Schwarze Löcher erfahren?" geschehen soll.

Ist das verständlich?

Kann ich das irgendwie mit einer If-Funktion lösen oder so?
Hab was von endlichen Automaten gehört, aber wie ich das umsetzen soll bleibt mir völlig schleierhaft.

Danke schonmal

Gruß
Mit Zitat antworten
  #2 (permalink)  
Alt 29-04-2010, 20:08
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

erstmal würde ich dir raten, alle ereg*-Funktionen auf preg*-Funktionen umzustellen, da erstere nicht mehr lange unterstützt werden.

Du kannst entweder die Frage jedes Mal mit durchschleifen (z. B. als hidden-Feld) oder du beschäftigst dich mal mit Sessions (empfohlen), die sich in PHP auch denkbar einfach realisieren lassen. Dann schreibst du den Gesprächsverlauf in die Session und kannst ihn immer wieder abrufen.

Ob das aber für dein Vorhaben schon ausreicht, kann ich mir nicht ganz vorstellen, es sei denn, es ist ein bewusst sehr einfaches Dialogsystem.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 29-04-2010, 20:15
Hampelmann
 Registrierter Benutzer
Links : Onlinestatus : Hampelmann ist offline
Registriert seit: Mar 2010
Beiträge: 7
Hampelmann befindet sich auf einem aufstrebenden Ast
Standard

Ok mit Sessions hab ich schon was gemacht, das kann ich.

Es soll ein sehr einfach gehaltener Chatbot werden für die Schule, so einfach, dass sich mein Lehrer sogar mit den preg Funktionen zufrieden geben würde und ich auf Datenbank verzichten kann.

Wenn ich jetzt den Gesprächsverlauf speichern lasse, wie kann ich denn dann prüfen, ob "Möchtest du etwas über schwarze Löcher erfahren" und "ja/nein" unmittelbar hintereinander eingetippt wurden?

Danke!
Mit Zitat antworten
  #4 (permalink)  
Alt 29-04-2010, 20:19
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Hampelmann Beitrag anzeigen
dass sich mein Lehrer sogar mit den preg Funktionen zufrieden geben würde
Das sind ja auch die richtigen: preg* gut, ereg* böse

Zitat:
Zitat von Hampelmann Beitrag anzeigen
wie kann ich denn dann prüfen, ob "Möchtest du etwas über schwarze Löcher erfahren" und "ja/nein" unmittelbar hintereinander eingetippt wurden?
Wenn du es als indiziertes Array speicherst, sind die geraden Indizes (0, 2, 4, ...) die Fragen und die ungeraden (1, 3, 5, ...) die Antworten dazu. Die Antwort auf die Frage k erhältst du also, wenn du aus dem Array den Wert für den Index k+1 abrufst. So einfach ist das
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 29-04-2010, 20:42
Hampelmann
 Registrierter Benutzer
Links : Onlinestatus : Hampelmann ist offline
Registriert seit: Mar 2010
Beiträge: 7
Hampelmann befindet sich auf einem aufstrebenden Ast
Standard

Sorry, versteh zwar was du meinst, aber grad nicht wie ich das auf mein Problem anweden muss.

Nochmal das was ich wollte:

Der Benutzer gibt ein "Erzähl mir etwas!".
Der Bot antwortet automatisch (da er "Erzähl mir etwas!" kennt) "Möchtest du etwas über schwarze Löcher erfahren?".

Danach soll überprüft werden ob der Benutzer "ja" oder "nein" eingibt.
Daraufhin soll der Bot dann etwas entsprechendes Antworten.

Und sowas soll dann auf die verschiedensten Fragen angewendet werden.

Wenn ich das in ein indiziertes Array mach, würde das ja so aussehen:

PHP-Code:
$array = array ( 'Erzähl mir etwas!''Ja' ); 
Und dann müsste ich ja überprüfen, ob zuerst $array[0] und danach $array[0+1] eingegeben wurde!?

Ich weiß nicht ob mir das warme Wetter heute zugesetzt hat, aber so ganz hab ich das noch nicht verstanden
Mit Zitat antworten
  #6 (permalink)  
Alt 29-04-2010, 20:53
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Hampelmann Beitrag anzeigen
Wenn ich das in ein indiziertes Array mach, würde das ja so aussehen:

PHP-Code:
$array = array ( 'Erzähl mir etwas!''Ja' ); 
Nein, dort stehen Fragen und Antworten aus dem aktuellen Gespräch drin (sagte ich bereits), ich meine nicht die verfügbaren Sätze, die du vorgegeben hast, also sieht das z. B. so aus:

PHP-Code:
0 Hallo
1 Erzähl mir etwas
!
2 Möchtest du etwas über schwarze Löcher erfahren?
3 Ja
(Maschine)
(Mensch)
(Maschine)
(Mensch)
... 
Wenn du jetzt wissen willst, was Mensch auf 6 geantwortet hat, findest du das in 7.

Damit hast du also den kompletten Gesprächsverlauf und kannst dich sogar an bereits gegebene Anworten "erinnern".

Für die Entscheidungsfindung selbst brauchst du wahrscheinlich einen Entscheidungsbaum (decision tree), meinst du sowas? Das wird mir dann aber zu komplex für das Forum, da musst du dich dann selbst mal durch die einschlägige Literatur wühlen.

Stichworte: Dialogsystem (dialog system), Turing-test, Entscheidungsbaum (decision tree)
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #7 (permalink)  
Alt 29-04-2010, 20:55
Hampelmann
 Registrierter Benutzer
Links : Onlinestatus : Hampelmann ist offline
Registriert seit: Mar 2010
Beiträge: 7
Hampelmann befindet sich auf einem aufstrebenden Ast
Standard

Ok danke, werd ich mich mal mit beschäftigen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eingaben prüfen mit JavaScript Marco1974 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 4 18-01-2008 14:40
Zwei gleiche queries, zwei unterschiedliche Verarbeitungen –_wie lösen? dha PHP Developer Forum 1 19-08-2007 17:35
(langer) Text in zwei Teile aufteilen (für zwei spalten) fabio BRAINSTORMING PHP/SQL/HTML/JS/CSS 6 17-03-2007 19:58
Join über zwei Tabellen in zwei Datenbanken: Ist das möglich? langerxxx SQL / Datenbanken 5 24-06-2005 01:15
mit slelect zwei sachen prüfen all4one PHP Developer Forum 3 21-03-2001 23:00

Themen-Optionen
Thema bewerten
Thema bewerten:

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.

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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:15 Uhr.