PHP.SU

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

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

> Найдено сообщений: 8
DeathStalker Отправлено: 19 Августа, 2010 - 14:29:30 • Тема: Редакторы PHP • Форум: Программное обеспечение

Ответов: 421
Просмотров: 254561
не подскажете почему в PHP Expert Editor 4.3 не передаются данные $_POST ? Может настройки где то не доглядел?
DeathStalker Отправлено: 19 Августа, 2010 - 12:59:53 • Тема: Создание игры "Угадай число" • Форум: Уроки php

Ответов: 26
Просмотров: 1824
Вот моя первая самостоятельная программа. Никуда не подглядывал. Закатив глазки Это было задание из одного самоучителя. Так уж вышло что это задание совпало с вашим. Выкладываю как альтернативное решение:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $randF = $_POST['rand'];
  5. $dijit = $_POST['dijit'];
  6. $I = $_POST['i'];
  7.  
  8. logica();   //логические опирации программы
  9. inter();    //функция хранения данных, т. к мы не используем базы данных.
  10.              //в данном случае используются скрытые поля hidden.
  11.  
  12. function logica(){
  13. global $dijit, $rand, $randF, $i, $I;
  14. if (empty($dijit)) {
  15.         $i = 1;
  16.         $rand = rand(1, 100);
  17.         echo "<H1>Введите число от 1 до 100</H1>";
  18. } elseif ($dijit > 100 or $dijit < 1) {
  19.         echo "<H1>Введите пожалуйста корректные данные</H1>!";
  20. }elseif ($dijit > $randF) {
  21.         echo "<H2>Ваше число слишком велико, попробуйте еще</H2>";
  22.         $rand = $randF;
  23.         $I++;
  24.         $i = $I;
  25. } elseif ($dijit < $randF) {
  26.         echo "<H2>Ваше число слишком мало, попробуйте еще</H2>";
  27.         $rand = $randF;
  28.         $I++;
  29.         $i = $I;
  30.  
  31. } else {
  32.         echo "<H1>Подравляю вы угадали! Вам понадобилось $I попыток.</H1>";
  33. } //закрываем цикл if
  34. }//закрываем функцию logica()
  35.  
  36. function inter(){
  37. global $digit, $rand, $i, $I;
  38. echo <<<here
  39.         <form method="post">
  40.         <input name="dijit" type="text" value="">
  41.         <input type="hidden" name="rand" value = $rand>
  42.         <input type="hidden" name="i" value = $i>
  43.         <input type="submit" value="Send">
  44.         </form>
  45. here;
  46. }
  47. ?>
  48.  


Данная программа позволяет пользователю угадывать одно и тоже число мого раз и считает сколько на это ушло попыток. Если кому нибудь нужно будет подробнее объясню Улыбка
DeathStalker Отправлено: 19 Августа, 2010 - 01:53:53 • Тема: Создание игры "Угадай число" • Форум: Уроки php

Ответов: 26
Просмотров: 1824
до точки с запятой не доходит дело, указывает на строку elseif. В ней все норм и выше по строкам тоже вроде.
Да пробывал убирать. не помогло.
(Добавление)
SAD пишет:
надо не elseif , а else


точно!!! Радость то просто в функции ранее был у мну многоусловный оператор, вот я и гасанул))) спасибо!

з.ы ; все таки нужно)
DeathStalker Отправлено: 19 Августа, 2010 - 01:49:17 • Тема: Создание игры "Угадай число" • Форум: Уроки php

Ответов: 26
Просмотров: 1824
SAD пишет:
$j == 1; а надо $j = 1; и псоле while ($j == 2); точки с запятой не должно быть

в книжке и спровочнике стоит точка с запятой. и $j=1 не помогло. Там ведь пунктационная ошибка стоит.
DeathStalker Отправлено: 19 Августа, 2010 - 01:36:45 • Тема: Создание игры "Угадай число" • Форум: Уроки php

Ответов: 26
Просмотров: 1824
помогите устранить ошибку, уже пол третьего ночи, и возможно я уже просто устал и не вижу очевидное.
Вот фрагмент кода
PHP:
скопировать код в буфер обмена
  1.  
  2. function calc(){
  3. global $rand, $i, $I, $j, $J;
  4.         do {
  5.                 if (empty($rand)) {
  6.                         echo "Вам понадобилось $i попыток";
  7.                         $j == 1;
  8.                         $j = $J;
  9.                 } elseif {
  10.                         $I++;
  11.                         $i = $I;
  12.                 }
  13.  
  14.         }while ($j == 2);
  15. }
  16.  


вот выдает такую ошибку:Parse error: syntax error, unexpected '{', expecting '(' in C:\xampplite\htdocs\hwRandChar.php on line 45

линия 45 здесь это 9 линия.
DeathStalker Отправлено: 13 Августа, 2010 - 13:00:11 • Тема: Помогите плис • Форум: Программирование на PHP

Ответов: 6
Просмотров: 447
Uchkuma пишет:
Вместо $guess используйте $_POST['guess'].


Спасибо, помогло. Но вот тока пришлось изменить немного функцию на вот это
PHP:
скопировать код в буфер обмена
  1. function printGreeting() {
  2.         global $numPetals;
  3.         if (empty($_POST['guess'])) {
  4.               print "<H3>Давай играть?</H3>";
  5.         } elseif ($_POST['guess'] == $_POST['numPetals']) {
  6.               print "<H3>Ты выграл</H3>";
  7.         } else {
  8.               print "<H3>Попробуй еще.</H3>     вы выбрали:" . $_POST['guess']. " а правельный ответ был: " .$_POST['numPetals']. " лепестков у розы<br>";


Данные стали передаваться но функция function printGreeting() не воспринимает глобальные переменные, причем все. global $numPetals; она объявлена глобальной но elseif ($_POST['guess'] == $numPetals) работать не будетНедовольство, огорчение в данном примере можно обойтись и без этого но в других ситуациях без глобальных переменных нельзяНедовольство, огорчение.

З.Ы по не понятным причинам этот код не работает в PHP Expert Editor 4.3 не происходит передача $_post а в editpluse все норм....
DeathStalker Отправлено: 13 Августа, 2010 - 11:49:59 • Тема: Помогите плис • Форум: Программирование на PHP

Ответов: 6
Просмотров: 447
Viper пишет:
echo $_POST['guess'];

куда это вставлять? я пробывал и в функцию printForm() и в printGreeting() не работает все равно.
DeathStalker Отправлено: 13 Августа, 2010 - 00:01:11 • Тема: Помогите плис • Форум: Программирование на PHP

Ответов: 6
Просмотров: 447
я совсем недавно приступил к изучению этого языка. Успехи пока что более чем скромные... Вот в чем собственно проблема
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. printGreeting();
  4. printDice();
  5. printForm();
  6.  
  7. function printGreeting() {
  8.         global $guess, $numPetals;
  9.         if (empty($guess)) {
  10.                 print "<H3>Давай играть?</H3>";
  11.         } elseif ($guess == $numPetals) {
  12.                 print "<H3>Ты выграл</H3>";
  13.         } else {
  14.                 print <<<here
  15.                 <H3>Попробуй еще.</H3>
  16.                 вы выбрали: $guess <br><br>
  17.                 а правельный ответ был: $numPetals лепестков у розы<br>
  18. here;
  19.         }
  20. }
  21.  
  22. function printDice() {
  23. global $numPetals;
  24. print "<H3>Новые кости</H3>";
  25. $numPetals = 0;
  26.  
  27. $die1 = rand(1,6);
  28. $die2 = rand(1,6);
  29. $die3 = rand(1,6);
  30. $die4 = rand(1,6);
  31. $die5 = rand(1,6);
  32. $die6 = rand(1,6);
  33.  
  34. showDie($die1);
  35. showDie($die2);
  36. showDie($die3);
  37. showDie($die4);
  38. showDie($die5);
  39. showDie($die6);
  40. print "<br>";
  41.  
  42. calcNumPetals($die1);
  43. calcNumPetals($die2);
  44. calcNumPetals($die3);
  45. calcNumPetals($die4);
  46. calcNumPetals($die5);
  47. calcNumPetals($die6);
  48. }
  49.  
  50. function showDie($value) {
  51.         print <<<here
  52.         <img src = "die$value.jpg"
  53.                  heiht = 100
  54.                  width = 100>
  55. here;
  56. }
  57.  
  58. function calcNumPetals($value) {
  59.         global $numPetals;
  60.         switch ($value) {
  61.                 case 3;
  62.                         $numPetals += 2;
  63.                 break;
  64.                 case 5;
  65.                         $numPetals += 4;
  66.                 break;
  67.         }
  68.  
  69. }
  70.  
  71. function printForm() {
  72.         global $numPetals;
  73.  
  74.         print <<<here
  75.                 <H3>Сколько лепестков у розы?</H3>
  76.  
  77.                 <form method = "post">
  78.                 <input type = "text"
  79.                         name = "guess"
  80.                         value = "0">
  81.                 <input type = "hidden"
  82.                         name = "numPetals"
  83.                         value = "$numPetals">
  84.                         <br>
  85.                 <input type = "submit"
  86.                                                 >
  87.                 </form>
  88.                         <br>
  89.                         в скрытом поле храниться $numPetals <br>
  90.                        
  91. here;
  92. }
  93.  
  94.  
  95. ?>
  96.  


Это пример создания не сложной игры на пхп из самоучителя: Программа бросает 6 игральных костей, а пользователь должен угадать сколько получается лепестков у розы. Где у 1 есть роза но нет лепестков, у 4 есть лепестки но нет розы а у 3 соответственно есть роза и 2 лепестка и тд. В коде все понятно но не передаются данные из текстового поля "guess", а именно, как пишут в книге, должна создаться переменная $guess, аналогичная имени скрытого поля. Но почиму-то этого не происходит Недовольство, огорчение Поэтому получается, что у меня нет обратной связи. Помогите разобраться почиму данные с текстового поля не отправляются, из за этого не могу продолжить обучение по книге т.к дальше опять идет программа с использованием форм.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB