Avatar billede geekpower Nybegynder
21. januar 2002 - 20:59 Der er 15 kommentarer og
1 løsning

Robot

Hejsa,
her er lidt gode point og tjene...
Jeg kunne godt tænke mig en PHP version af en robot ligende denne på:
http://www.ankiro.dk/demo/ankira.asp

Den er maga smart, jeg skal selvfølgelig nok \"lære\" den det den skal kunne, men jeg har brug for en hjælpsom ekspert til at lave skabalonen, så den kan svare...Jeg ved ikke hvordan den er lavet, men det må jo være så den genkender nogen ord og så man så laver sådan at det ord resulterer i en sætning. Jeg vil gerne have så den kan vælge mellem 2 sætninger, og så en standard sætning hvis den ingen ideer har...

På forhånd tak!
Avatar billede ahv Nybegynder
21. januar 2002 - 21:01 #1
2 sek. finder lige en frem !

Den kører også på MySQL !
Så i MySQL databasen kan du rette på hvad den skal kunne !
Avatar billede engberg2 Nybegynder
21. januar 2002 - 21:02 #2
Det bedste jeg kan komme op med er http://robot.pox.dk
Avatar billede freekyzone Nybegynder
21. januar 2002 - 21:04 #3
ja spørgsmålene der stilles skal på en måde samlignes med dataerne i databasen!!!
Avatar billede geekpower Nybegynder
21. januar 2002 - 21:05 #4
http://robot.pox.dk virker faktisk fed nok.
Det minder mig nemlig også om, at de svar den ikke kan svare på må MEGET gerne sendes til en mail(uden bruger ved det).
Avatar billede ahv Nybegynder
21. januar 2002 - 21:06 #5
Prøv dette !

Lav først tabellen med dette:
CREATE TABLE Robot (
Sprg varchar(255),
Svar varchar(255)
);

INSERT INTO Robot (Sprg,Svar) VALUES (\"Hvem er du?\",\"Jeg er Robert Robot!\");
INSERT INTO Robot (Sprg,Svar) VALUES (\"Hvad er klokken?\",\"Kig på dit ur...\");
INSERT INTO Robot (Sprg,Svar) VALUES (\"Er jorden flad?\",\"Nej da - den er da rund!\");

<-----robert.php3----->
<?php

$Navn = \"Klaus Kludder\";

echo \"Hejsa - jeg er $Navn, prøv at spørge mig om noget!<BR><BR>\";

if ($submit) {
    $connection = mysql_connect(\"localhost\",\"DATABASENAVN\",\"PASSWORD\");
    mysql_select_db(\"DATABASE\", $connection);
    $res = mysql_query(\"SELECT * FROM Robot WHERE Sprg=\'$sprg\'\");
    $row = mysql_fetch_array($res);
    $svar = $row[\"Svar\"];
    if (!$svar) {
        echo \"Det spørgsmål kender $Navn ikke...\";
        echo \"<BR><BR>\";
        echo \"Hvad syntes du $Navn skal svare til spørgsmålet $sprg ?\";
        echo \"<FORM METHOD=\'post\' ACTION=\'$PHP_SELF\'>\";
        echo \"<INPUT TYPE=\'hidden\' NAME=\'sprg\' VALUE=\'$sprg\'>\";
        echo \"<INPUT TYPE=\'text\' NAME=\'svar\'>\";
        echo \"<BR><BR>\";
        echo \"<INPUT TYPE=\'Submit\' NAME=\'nyt\' VALUE=\'Hjælp\'>\";
        echo \"</FORM>\";
        mysql_close();
    } else {
        echo \"<BR> Dig:  \";
        echo $row[\"Sprg\"];
        echo \"<BR> $Navn:  \";
        echo $row[\"Svar\"];
        echo \"<BR><BR>\";
        mysql_close();
    }
}

if ($nyt) {
    $db = mysql_connect(\"localhost\",\"DATABASENAVN\",\"PASSWORD\");
    mysql_select_db(\"DATABASE\",$db);
    $result = mysql_query(\"INSERT INTO Robot (Sprg,Svar) VALUES (\'$sprg\', \'$svar\')\" )  or die(\"Der er desværre ingen kontakt til databasen - fordi: \".mysql_error());
    mysql_close();
}

echo \"<BR><BR>\";
echo \"<FORM METHOD=\'post\' ACTION=\'$PHP_SELF\'>\";
echo \"<INPUT TYPE=\'text\' NAME=\'sprg\'>\";
echo \"<BR><BR>\";
echo \"<INPUT TYPE=\'Submit\' NAME=\'submit\' VALUE=\'Spørg\'>\";
echo \"</FORM>\";

?>
Avatar billede Slettet bruger
21. januar 2002 - 21:09 #6
600 points er alt, alt for meget. Læs dog reglerne, før du smadrer alle point-rammer!
Avatar billede engberg2 Nybegynder
21. januar 2002 - 21:10 #7
Fedt nok ahv - det er jo så noget af MIN kode du har der....
Avatar billede ahv Nybegynder
21. januar 2002 - 21:15 #8
engberg :o)

Jeg så det også lige :o)
Fandt det her :

http://www.eksperten.dk/spm/35034
Avatar billede geekpower Nybegynder
21. januar 2002 - 21:42 #9
Det er jo helt kanon...
Jeg er dog lidt usikker hvem af jer der bør have pointne..det er jo nok egentlig engberg2???

Nå, men lidt problemer...
Hvis man trykker enter sender den ikke dataerne men henter siden på ny...ikke godt!

Og det med at den tilføjer automatisk...det ville jeg gerne lave så den enten stiller dem i ro så jeg kan godkende forslagegene på en side/redigere dem, eller få dem tilsendt med mail...Noget der kan klares??
Avatar billede geekpower Nybegynder
21. januar 2002 - 21:46 #10
--> OG den skulle gerne ignorere om der er spørgsmålstegn eller ej...
Avatar billede geekpower Nybegynder
21. januar 2002 - 22:08 #11
-->og gerne have en table med ord som den kan genkende i stedet for hele sætninger, så hvis der fx er en sætning med \"sex\" at den så svarer at man skal snakke ordentlig.
Altså først checker den for om sætningen findes, hvis ikke så bestemte ord, og så for om der er \"ulovlige ord\" (men denne er nok bare i listen over ord)
Avatar billede engberg2 Nybegynder
21. januar 2002 - 22:30 #12
Den her ignorerer spørgsmålstegn...

<?
$Navn = \"GeekPower\"
$connect3 = mysql_connect(\"localhost\",\"engberg\",\"password\") ;
mysql_select_db(\"engberg\", $connect3);
$res3 = mysql_query(\"SELECT * FROM Robot ORDER BY Id DESC\");
$res3.movelast;
$row3 = mysql_fetch_array($res3);

echo \"<H2>Hejsa - jeg er $Navn, prøv at spørge mig om noget!</H2>\";
echo \"- jeg kender \";
echo $row3[\"Id\"];
echo \" gode svar til spørgsmål nu. Sidste redigering af mig skete d. 30/10 2001...<BR>\";
mysql_close();
echo \"Når du spørger mig skal du ikke lave mellemrum mellem spørgsmålet og spørgsmålstegnet....<BR><BR>\";

if ($submit) {
    $connection = mysql_connect(\"localhost\",\"engberg\",\"password\") ;
    mysql_select_db(\"engberg\", $connection);
        $sprg2 = substr($sprg, 0, strlen($sprg)-1);
    $res = mysql_query(\"SELECT * FROM Robot WHERE Sprg=\'$sprg\' OR Sprg=\'$sprg2\'\");
    $row = mysql_fetch_array($res);
    $svar = $row[\"Svar\"];
    if (!$svar) {
        echo \"Det spørgsmål kender $Navn ikke...\";
        echo \"<BR><BR>\";
        echo \"Hvad syntes du $Navn skal svare til spørgsmålet $sprg\";
        echo \"<FORM METHOD=\'post\' ACTION=\'$PHP_SELF\'>\";
        echo \"<INPUT TYPE=\'hidden\' NAME=\'sprg\' VALUE=\'$sprg\'>\";
        echo \"<INPUT TYPE=\'text\' NAME=\'svar\'>\";
        echo \"<BR><BR>\";
        echo \"<INPUT TYPE=\'Submit\' NAME=\'nyt\' VALUE=\'Hjælp Robert\'>\";
        echo \"</FORM>\";
        mysql_close();
    } else {
        echo \"<BR> <B>Dit spørgsmål:</B>  \";
        echo $row[\"Sprg\"];
        echo \"<BR> <B>$Navn:</B>  \";
        echo $row[\"Svar\"];
        echo \"<BR><BR>\";
        mysql_close();
    }
}

if ($nyt) {
    $db = mysql_connect(\"localhost\",\"engberg\",\"password\");
    mysql_select_db(\"engberg\",$db);
    $result = mysql_query(\"INSERT INTO Robot (Sprg,Svar) VALUES (\'$sprg\', \'$svar\')\" )  or die(\"Der er desværre ingen kontakt til databasen - fordi: \".mysql_error());
    mysql_close();

$fil = \"data.txt\";
$mam = time() - 7200;
$tid = date(\"G:i:s\",$mam);
$str  = \"INSERT INTO Robot (Sprg,Svar) VALUES (\'$sprg\', \'$svar\');\\n\";

$fp = fopen($fil, r);
if($fp) {
    $filArray = file($fil);
    $result = implode(\"\", $filArray);
    $result = \"$str$result\";
    fclose($fp);
    }
$fp = fopen($fil, w);
if($fp) {
    fputs($fp, $result);
    fclose($fp);
    }
}

echo \"<BR><BR>\";
echo \"<FORM METHOD=\'post\' ACTION=\'$PHP_SELF\'>\";
echo \"<INPUT TYPE=\'text\' NAME=\'sprg\'>\";
echo \"<BR><BR>\";
echo \"<INPUT TYPE=\'Submit\' NAME=\'submit\' VALUE=\'Spørg $Navn\'>\";
echo \"</FORM>\";


$connect2 = mysql_connect(\"localhost\",\"engberg\",\"password\") ;
mysql_select_db(\"engberg\", $connect2);
$res2 = mysql_query(\"SELECT * FROM Robot ORDER BY Id DESC\");
$res2.movelast;
$row2 = mysql_fetch_array($res2);
echo \"<BR><BR>Det sidste spørgsmål jeg har lært er:<BR><B>\";
echo $row2[\"Sprg\"];
echo \"</B><BR><BR>Til det svarede jeg:<BR><B>\";
echo $row2[\"Svar\"];
echo \"</B>\";
mysql_close();
?>
Avatar billede engberg2 Nybegynder
21. januar 2002 - 23:14 #13
Hov beklager meget - det gør den faktisk ikke alligevel...

Men med stristr() kan man se om en streng er i en anden streng - fx. sådan her:

if(stristr($sprg,\"sex\")) {
    echo \"Sex er en del af spørgsmålet\";
} else {
    echo \"Sex er IKKE en del af spørgsmålet\";
}

Det reagerer Robert Robot faktisk på nu...

Det samme må kunne gøres med spørgsmålstegnet...
Avatar billede ahv Nybegynder
22. januar 2002 - 14:12 #14
Kan mærke engberg ikke er så grådig ;o)
Jeg kunne vel godt få en del af pointsne, det var trods alt mig der fandt det frem ;o)

Det er lidt noget lort whitehat lukkede, jd her fra eksperten havde ellers sat en op til mig, den reagerede også selvom der ikke var spørgsmålstegn !
Avatar billede geekpower Nybegynder
23. januar 2002 - 23:19 #15
Hejsa, med hensyn til det med stristr()...hvor skal jeg placere det for at det virker....???

Det er ikke muligt i stedet for det der stristr blot at hente det fra en database ???Tak!
Avatar billede geekpower Nybegynder
29. august 2002 - 09:54 #16
Hej
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester