Suche Orakel bzw. Entscheidungshilfe Script

*argh* Da ist mir doch glatt ein Fehler mit einem Funktions-Namen unterlaufen, sorry!

Ändere folgende Zeile:
PHP:
if(str_pos(strtolower($_POST['$frage']),strtolower($val)) !== FALSE)
in
PHP:
if(strpos(strtolower($_POST['$frage']),strtolower($val)) !== FALSE)

So müssts aber nu laufen...
 
Hi aKraus und alle anderen,

jetzt tritt nur noch ein Porblem auf. Gebe ich eine Frage z.B. mit Selbstmord ein, kommt nun diese Antwort. Zufall, dass er Nein wählte. Wie schalte ich, wenn jemand was von der Blacklist schreibt, die vorgegebene Antwort aus?

NeinDas ist wahrscheinlich keine gute Frage - meinst du das ernst?

Vom Script her ist das total logisch, dass das so passiert. Aber es soll ja nicht.
Wenn das klappt, dann ist das Script, glaub ich, fertig.

Viele Grüße
fruchtgummi
 
So ungefähr...

PHP:
<?php
	
$answers[0] = "$antwort1";
$answers[1] = "$antwort2";
$answers[2] = "$antwort3";

$blacklist = Array('killen',
                'töten',
                'selbstmord');
                
foreach($blacklist AS $var => $val)
{
    if(strpos(strtolower($_POST['$frage']),strtolower($val)) !== FALSE) 
    {
        $blacklisted = 1;
    }
}

if($blacklisted = 1)
{
    echo "Das ist keine gute Frage - das kann ich nicht durchgehen lassen";
    //hier wäre ein Zurückbutton gut, aber er hat zuerst in der Zeile einen Fehler gebracht
    //<input type=button value=zurück onClick=history.back()>";
}
else
{
    echo $answers[rand(0,2)]; 
}
?>
 
Hallo,

es klappt leider nicht.:-(
Er bringt jetzt bei jeder normalen Frage die Meldung, dass es keine gute Frage ist.

Wie krieg ich das hin, dass er gleich die $antwort1, $antwort2, $antwort3 mit überprüft? So?

(
Code:
$_POST['$frage','$antwort1','$antwort2','$antwort3'])

Wie funktioniert das mit dem Zurückbutton, so jedenfalls nicht:

Code:
 echo "Das ist keine gute Frage - das kann ich nicht durchgehen lassen";
   "<input type=button value=zurück onClick=history.back>";

Sorry dass ich solche Fragen stelle, aber ich wenn ich in dieses selfphp schaue, dann versteh ich nur Bahnhof. Da fand ich jedefalls nichts, wie ich html in php einbaue.

Viele Grüße
fruchtgummi
 
PHP:
<?php
$answers[0] = $antwort1;
$answers[1] = $antwort2;
$answers[2] = $antwort3;

$blacklist = Array('killen',
                'töten',
                'selbstmord');
                
foreach($blacklist AS $var => $val)
    if(strpos(strtolower($_POST['frage']),strtolower($val)) !== FALSE)
        $blacklisted = 1;

if($blacklisted == 1)
    echo "Das ist keine gute Frage - das kann ich nicht durchgehen lassen!<br />
    <input type=\"button\" value=\"zurück\" onClick=\"history.back();\" />";
else
    echo $answers[rand(0,2)];
?>

Versuchs mal so...
 
Hallo und danke!

Es haut hin. Nur möchte ich noch gleich die drei Antworten mit einbauen

So wie ich dachte klappts nicht:

Code:
if(strpos(strtolower($_POST['frage','antwort1','antwort2','antwort3']),strtolower($val)) !== FALSE)

Parse error: parse error, unexpected ',', expecting ']' in /homepages/13/d74304193/htdocs/orakel/random.php on line 11

Wie muss man denn das Gestrichel anordnen? Is doch unlogisch:
'antwort3']'),
Und wo ist ein ',', ?
Man kann doch diese Fehlermeldungen nicht für voll nehmen...

Wenn das klappt bist du erlöst.
Eine Frage: wie viele Wörter darf ich in Array schreiben? Gibt es eine Beschränkung?

Danke schon mal so weit.
Viele grüße
fruchtgummi
 
Du solltest dich dann mal mit den grundlegenden Dingen von PHP beschäftigen, denn soetwas wie $_POST['frage','antwort1','antwort2','antwort3'] gibts nicht.

Damit ich das richtig verstehe...du möchtest die Antworten auch dynamisch haben und auf die Wörter da untersuchen, oder wie?
 
Hallo,

ja, ich möchte, dass er die Antworten auch nach der Blacklist untersucht.

Weil sonst einer die Frage eingibt: Was soll ich als nächstes tun? a) Selbstmord b) den Nachbarn killen c) eine Stubenfliege töten

Und dann soll er in einem solchen Fall - auch wenn einer nur bei a) Selbstmord schreibt und bei den anderen harmlose Sachen - ebenso die Bemerkung "Das ist keine gute Idee..." bringen.

Um eine doppelte, umständliche Programmierung zui vermeiden, schreibe ich einfach bei der Frage statt "keine gute Frage" das Wort "keine gute Idee".

Ich weiß nicht, wie ich am besten PHP lernen kann. Staubtrocken aus dem Lehrbuch, das is nicht meins. Es müsste immer anhand kleiner sinnvoller Programmierbeispiele gehen, so wie hier jetzt. Gibt es Lernmaterial, das so aufgebaut ist?

Viele Grüße
fruchtgummi
 
Klar, es gibt einige Bücher, die nur mit schönen Beispielen arbeiten - ich kann dir nur Bücher empfehlen...ich zumindest lerne mit Büchern besser als wenn ich mir was vorm Rechner durchles.

So, nu erstma zu deinem Problem. So gings grad am schnellsten...mit Sicherheit nicht die schönste Lösung, aber es sollte laufen ;-)

PHP:
<?php

$blacklist = Array('killen',
                'töten',
                'selbstmord');
                
foreach($blacklist AS $var => $val)
    if(strpos(strtolower($_POST['frage']),strtolower($val)) !== FALSE || 
       strpos(strtolower($_POST['antwort1']),strtolower($val)) !== FALSE ||
       strpos(strtolower($_POST['antwort2']),strtolower($val)) !== FALSE ||
       strpos(strtolower($_POST['antwort3']),strtolower($val)) !== FALSE ||
)
        $blacklisted = 1;

if($blacklisted == 1)
    echo "Das ist keine gute Idee - das kann ich nicht durchgehen lassen!<br />
    <input type=\"button\" value=\"zurück\" onClick=\"history.back();\" />";
else
    echo $answers[rand(0,2)];
?>
 
Zurück