Avatar billede sylvesternielsen Nybegynder
22. januar 2003 - 13:01 Der er 11 kommentarer og
1 løsning

Simpel bot til chat

Jeg har en chat hvor man kan skrive privat til chatten. Her laver jeg bare en simpel ereg for at finde ud af hvad den skal svare. Jeg ville så gerne have lagt den i database så jeg bare kan tilføje tekster.

Her er den kode jeg bruger nu.. Håber der er en som kan hjælpe med at udvikle en funktion som kan finde ud af dette.

if (substr($tekst,0,1) == "/"){
// er det en tell emote
  if (ereg("/tell",$tekst)){
  $text = $tekst;
  $tekst = "";
  $ArrResult = explode (" ", $text);
  $arrayResult = count($ArrResult);
  $row = 0;
  // split teksten
    while ($row <= $arrayResult){
      if ($row == "1"){
      $modtager = "$ArrResult[$row]";
      }
      if ($row > "1"){
      $tekst = "$tekst $ArrResult[$row]";
      }
      $row = $row + 1;
    }
    if ($modtager == "Chatten" || $modtager == "chatten"){
    // check hvad beskeden indeholder
    if (ereg("hej",$tekst)){
      mysql_query("INSERT INTO `chat` ( `id` , `rum`, `til` , `fra` , `tekst` , `dato` ) VALUES
      ('', '$session_rum', '$session_user', 'Chatten', 'Hej $session_user, hvis du har problemmer skal du kontakte en af dem med @ foran deres navn', UNIX_TIMESTAMP())");
      $add = "ok";
      } else {
      mysql_query("INSERT INTO `chat` ( `id` , `rum`, `til` , `fra` , `tekst` , `dato` ) VALUES
      ('', '$session_rum', '$session_user', 'Chatten', 'Hej med dig, jeg er en underudviklet bot som kun kan sige en ting', UNIX_TIMESTAMP())");
      $add = "ok";     
      }
Avatar billede budda Nybegynder
24. januar 2003 - 00:13 #1
well det er en fin ide MEN jeg ville nok lave en MySQL styret..
Lav en tabel der hedder chat_chatten
id (int og autoid)
input (var)
write (var)

Så laver vi så en funktion der kan håndtere de beskeder.
function ChattenSkriver($besked,£fra){
$GetMsg = mysql_query("SELECT input,output FROM chat_chatten WHERE input LIKE '$besked');
if(musql_num_rows($GetMsg)==0){
//Skriv fra chatten at man ikke kunne finde beskeden
}
else {
$BotMsg=mysql_fetch_array($GetMsg);
$BeskedUd=$BotMsg[output];
//Skriv fra chatten til $fra hvad out bliver...
}
}
Avatar billede budda Nybegynder
24. januar 2003 - 00:14 #2
nåe ja så skriver du der hvor der står
if ($modtager == "Chatten" || $modtager == "chatten"){

og alt det fun neden uden
if ($modtager == "Chatten" || $modtager == "chatten"){
ChattenSkriver($text,$session_user);
}
Avatar billede sylvesternielsen Nybegynder
24. januar 2003 - 03:22 #3
Det der har jeg allerede lavet.. Men den er efger min mening ikke intelligent nok... Den skulle gerne sammenligne alle ordene og så vælge den hvor den genkender flest... Men det ved jeg ikke helt hvordan jeg skal lave.
Avatar billede budda Nybegynder
25. januar 2003 - 18:20 #4
Jammen så kan vi gøre sådan at botten ikke ser efter mellemrum eller store eller små bogstaver..
$besked=strtolower(ereg_replace("[^a-zæøåA-ZÆØÅ]","",$msg));

Så når du tilføjer en InPut skal det være med stort og UDEN mellemrum.. er det på den måde???
Avatar billede sylvesternielsen Nybegynder
01. februar 2003 - 15:35 #5
Nej, så begrænser vi det bare endnu mere...

Jeg ville gerne have at den prøver at finde den sætning hvor den genkender flest keywords. Det er nok list svært at lave og det er også derfor jeg spørger her... Du kan egentligt sammenligne det med en søgemaskine. Som fx. her på eksperten. Den finder procent mm. og lister efter det. Her skal jeg så bare kun returnere den værdi som har den højeste procentsats..
Avatar billede budda Nybegynder
02. februar 2003 - 11:34 #6
Well det er tideligt så her kommer teorien.
1. Du skal fjerne alle standart ord som: jeg,og
2. Du skal lave et array ud af de ord der er tilbage
3. Du skal lave en query der søger defter den array der er tilbage..
Avatar billede sylvesternielsen Nybegynder
02. februar 2003 - 22:48 #7
Og hvordan gør jeg så det?
Avatar billede sylvesternielsen Nybegynder
26. marts 2003 - 14:02 #8
lukker
Avatar billede budda Nybegynder
26. marts 2003 - 14:48 #9
hmm giver dig løsningen og så lukker du???
Avatar billede sylvesternielsen Nybegynder
26. marts 2003 - 16:20 #10
Jeg ved ikke hvordan jeg gør det du siger og det spørger jeg om.. men da du ikke svarer på det kommer jeg jo ingen vejne vel..

Men hvis du kan give mig noget kode mm. skal du da nok få point hvis det er det der er problemmet..
Avatar billede budda Nybegynder
26. marts 2003 - 17:07 #11
Jeg ville så gerne have lagt den i database så jeg bare kan tilføje tekster.
^^
Dit spørgsmål..

DVS der står intet om den skal være dynamisk..
Og så svarer jeg på det.. med dette:
function ChattenSkriver($besked,£fra){
$GetMsg = mysql_query("SELECT input,output FROM chat_chatten WHERE input LIKE '$besked');
if(musql_num_rows($GetMsg)==0){
//Skriv fra chatten at man ikke kunne finde beskeden
}
else {
$BotMsg=mysql_fetch_array($GetMsg);
$BeskedUd=$BotMsg[output];
//Skriv fra chatten til $fra hvad out bliver...
}
}

som er rigtigt til dit sprøgsmål.. så vil du have den mere dynamisk så er jeg venlig at give dig teorien.. Gider ikke bruge tid på at lave det..

Måske skulle du lærer at formulere dig bedre..
Avatar billede sylvesternielsen Nybegynder
26. marts 2003 - 18:42 #12
ja men så lærer jeg at formulere mig bedre...
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