Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Рандом
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Без описания
starmaster
Отправлено: 14 Июля, 2004 - 05:32:00
Post Id



Newbie


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

Карма 0




При написании скрипта для угадывания слов (Улыбка) на своём сайте столкнулся со следующей проблемой: каждый раз выбирается новое слово, а прошлое остаётся неугаданным. В целях безопасности у меня один скрипт, который выводит кнопки и который является обработчиком. Вот часть из него:

PHP:
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$filename="test.php";
$strik=fopen($filename,"r");
$string=fread($strik,filesize($filename));
fclose($strik);
$words=explode("::",$string);
$anrand = rand(0, sizeof($words)-1);
$antext = $words[$anrand];
$wordit=$antext;

и так далее...
?>


Так вот, как можно сделать, чтобы новое слово не выбиралось до тех пор, пока не будет отгадано прошлое (то есть не будет равняться выбранному слову в переменной)?
 
 Top
TvoyWeb Администратор
Отправлено: 14 Июля, 2004 - 05:48:25
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




starmaster
Лично я ничего не понял. Хотелось бы посмотреть весь код.
 
 Top
starmaster
Отправлено: 14 Июля, 2004 - 06:27:35
Post Id



Newbie


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

Карма 0




TvoyWeb

Вот весь код (объяснение к нему под кодом):
CODE:
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$filename="test.php";
$strik=fopen($filename,"r");
$string=fread($strik,filesize($filename));
fclose($strik);
$words=explode("::",$string);
$anrand = rand(0, sizeof($words)-1);
$antext = $words[$anrand];
$wordit=$antext;

echo "<form method=post action=script.php>";
echo "<input type=\"text\" name=\"tz\" value=\"$wordit\">";
echo "<button type=\"submit\" name=\"ar\" value=\"a\">А</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"b\">Б</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"c\">В</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"d\">Г</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"e\">Д</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"f\">Е</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"g\">Ё</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"h\">Ж</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"i\">З</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"j\">И</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"k\">Й</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"l\">К</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"m\">Л</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"n\">М</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"o\">Н</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"p\">О</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"q\">П</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"r\">Р</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"s\">С</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"t\">Т</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"u\">У</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"v\">Ф</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"w\">Х</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"x\">Ц</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"y\">Ч</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"z\">Ш</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"ca\">Щ</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"cb\">ь</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"cd\">ы</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"ce\">ъ</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"cf\">Э</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"cg\">Ю</button>";
echo "<button type=\"submit\" name=\"ar\" value=\"ch\">Я</button>";
echo "</form>";

for ($i=0; $i<strlen($wordit); $i++)
{
$arrayz[]=substr($wordit,$i,1);
}
extract($HTTP_POST_VARS);
if(!empty($ar)) {
$hver=$ar;
}
foreach ($arrayz as $mk)
{
if ($mk==$hver)
{
$truew.=$mk;
}
else {$truew.="*";}
}
echo $truew;
?>


Объяснения: Считываем в переменную $string содержимое файла, затем каждое слово кладём в массив (переменная $words). Затем выбираем случайное слово и присваиваем его переменной $wordit. Затем идёт список кнопок с буквами. После этого мы каждую букву выбранного случайного слова вписываем в массив $arrayz[] Переменной $hver мы присваиваем значение нажатой кнопки. Затем проверяем каждую букву массива $arrayz[] на совпадение с нажатой буквой, если совпадение найдено, то высвечивается эта буква ($truew.=$mk), а если нет, то высвечивается звёздочка: $truew.="*"

Вот собственно и всё, но проблема в том, что новое случайное слово будет выбираться каждый раз при нажатии на кнопке.
 
 Top
TvoyWeb Администратор
Отправлено: 14 Июля, 2004 - 07:06:29
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




starmaster
Ну короче так. Многое не понятно, ну да ладно. Главное что ясна суть твоей проблемы! Улыбка
Все правильно в данном случае так и будет! Ведь ты же никак не сохраняешь это выбранное слово!
Воспользуйся сессиями, для передачи выбранного слова дальше скрипту. Делол в том что скрипт выбора слова запускается с каждым нажатием одной из кнопок.
Придется немного переделать скрипт.
Сделай так. Пусть в самом начале скрипт проверит есть ли запись в сессии о выбранном слове, если нет то случайно выбираем слово из массива и записываем его в сессию, например так $_SESSION['wordit']=$wordit;. И дальше все по скрипту. При повторном нажатии на кнопку, скрипт увидит что в сессии есть выбранное ранее слово и уже не будет его искать в массиве. Не забуть в начале файла стартануть сессию. Ну вообщем я думаю понятно.
Тема закрыта!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


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



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0397]     [ Gzipped ]