Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите переделать скрипт!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Скрипт: Вопрос-ответ
IntegraL
Отправлено: 24 Октября, 2009 - 14:03:07
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Вобщим имеется скрипт, состоящий из 3х файлов:
1. Непосредственно сам скрипт:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3.                
  4.                 if ($_POST["submit"])
  5.                 {
  6.                         $a = answer();
  7.                         $out =  "<h3><font color=black><b>Таррон:</b></font></h3><h5>$a</h5><br><h3><font color=black><b>".$stat['user'].":</b></font></h3><h5>".$ask;
  8.                         $tile = ($cfg["scrolling"]) ? $tile : "";
  9.                         echo "$out<br>$tile";
  10.                         echo "<input name='tile' type='hidden' id='tile' value='$out<br>$tile'>";
  11.                 }
  12.          
  13.        
  14.                 function answer()
  15.                 {
  16.                         global $cfg, $ask;
  17.                         $ask = (empty($ask)) ? "<empty>" : $ask;
  18.                         $kick = array("?","\n");
  19.                         $ask = str_replace($kick,"",$ask);
  20.                         $f = file($cfg["answersfile"]);
  21.                         for ($i=0; $i<=count($f); $i++)
  22.                         {
  23.                                 $an = split(";", $f[$i]);
  24.                                 $a = $an[0];
  25.                                 if (strstr($a,trim($ask)))
  26.                                 {
  27.                                         if ($wasone)
  28.                                         {
  29.                                                 return("Скажи конкретнее!");
  30.                                         }
  31.                                         array_shift($an);
  32.                                         array_pop($an);
  33.                                         $ai = rand(0, count($an)-1);
  34.                                         $wasone = true;
  35.                                         $retval = $an[$ai];
  36.                                 }
  37.                         }
  38.                         $retval = (empty($retval)) ? "Я не врубаюсь ,что ты хочешь?" : $retval;
  39.                         return $retval;
  40.                 }
  41.          
  42.  
  43. <table border="0" cellspacing="0" cellpadding="0">
  44. <form method="POST" action="main.php?set=edit&do=compl" name="reg">
  45. <tr>
  46. <td>
  47. <table border="0" cellspacing="0" cellpadding="0">
  48. <tr>
  49. <td>
  50. <table border="0" cellspacing="0" cellpadding="0">
  51. <tr>
  52. <td><img src="../img/game/main/in_l.gif" width="20" height="35" alt="" border="0" /></td>
  53. <td class="in_f"><input name="ask" type="text" class="tint" id="ask" style="width:250px;" value="" onFocus="if (this.value == 'Ололо') { this.value = '' }" onBlur="if (this.value == '') { this.value = 'Ололо }" ></td>
  54. <td><img src="../img/game/main/in_r.gif" width="20" height="35" alt="" border="0" /></td>
  55. </tr>
  56. </table>
  57. </td>
  58. </tr>
  59. </table>
  60.  
  61.  
  62.  
  63.  
  64.  ?>
  65.  


2. конфигурация config.php
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3. $cfg["answersfile"] = "anatole.php";
  4. $cfg["scrolling"] = false;
  5. $cfg["encoding"] = "windows-1251";
  6. ini_set("register_globals", true);
  7. ?>


3. Файл с базой вопросов и ответов на них (anatole.php):
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3. <empty>;Ололо что я должен на такое ответить? О.о;   \\ если в поле вода ничего не введено (пусто)
  4.  
  5. привет;Ответ ответ!!;   \\ ответ на вопрос Вопрос разделяется ";" и ответ также заканчивается ";", после этого действует следующая строка.
  6.  
  7. ха;LOИКС;
  8.  
  9. Ты кто?; Анатоле!;
  10. ?>
  11.  


Выглядит приблизительно все это вот так:



Помогите
В том виде что я выложил код, бот реагирует на все 3 вопроса сразу, т.е. Если в строку написать "ха" или "Ты кто"? то он даст ответ для каждого вопроса. "ха" - LOИКС, "Ты кто?" - Анатоле!

Но мне нужно чтоб в файл anatole.php можно было встроить проверки, например если боту было написано "ха" и он ответил, то стает возможным и вопрос "Ты кто?" А если "ха" небыло написано, то вопрос "ты кто?" становится недоступным и если к примеру сразу написать "Ты кто?", то чтоб бот выводил к примеру "Сначала напиши, "Ха", а затем спрашивай "кто ты"?"..

Попробывал сделать что-то типа такого, но бот игнорирует то что между <? ?>
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3. include("../bot.php");
  4. if ($ask="ха")
  5. {
  6. echo "текст текст";
  7. }
  8. ?>
  9.  
  10. <empty>;Ололо что я должен на такое ответить? О.о;
  11.  
  12.  
  13. ха;LOИКС;
  14.  
  15. Ты кто?; Анатоле!;
  16.  
  17.  
  18.  
  19.  


Помогите пожалуста.
 
 Top
JustUserR
Отправлено: 24 Октября, 2009 - 15:36:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




IntegraL У вас файлу инклюдятся через файловую систему а не через URL? Потому что если икллюдить файл через URL то получится не его содежримое а результат (В вашем случае пустой)
Вот for ($i=0; $i<=count($f); $i++) - может $i+=2 раз у вас строка содержит два поля
То что у вас обрабытываются все значения свижетелтсует о том что цикл выполняется до конца - попробуйте что я выше сказал
И еще return("Скажи конкретнее!"); - а почему еще return со скобками (Это отношения у делу не имеет но все же)


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB