1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Не сложный скрипт на php, но работает не корректно

Тема в разделе "Web - программирование", создана пользователем Guest, 27 дек 2003.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    Репутация:
    0
    Насколько я понимаю результат должен появлятся в новом окне. На практике, внизу текущего окна появляется строка "Результат Вашего действия равен" и всё. У меня почему-то такое ощущение, что при выполнения скритпа, функция calc() не отрбатывается вообще.
    Вот листинг.
    Код:
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
    <title>Calculator</title> 
    </head> 
    <body> 
    <? 
     function show() 
      { 
      global $action; 
      ?> 
     <FORM metod=Get action="calc.php" target "_blank"> 
     Первое число 
     <input type="text" name="first"> 
     Второе число 
    <input type="text" name="second"> 
    <select size="1" name="action"> 
     <option value="sum">Сложить</option> 
     <option value="min">Вычесть</option> 
     <option value="mult">Умножить </option> 
     <option value="dev">Разделить</option> 
     <option value="stepen">Возвести в степень</option> 
     <option value="procent">Процент от числа</option> 
     <option value="koren">Корень</option> 
    </select> 
    <br><input type="submit" value="Выполнить"> 
    </form> 
    <? 
    }    
    function calc() 
    { 
    global $action, $result, $first, $second; 
    switch($action) 
    { 
     case "sum": $result = $first+$second; break; 
     case "min": $result = $first-$second; break; 
     case "mult": $result = $first*$second; break; 
     case "dev": 
     if (!$second)      
     { 
      exit("Неверное значение второго аргумента"); 
     } 
     $result=$first/$second; break; 
     case "procent": $result = $first*($second/100); break; 
     case "stepen": $result = pow($first, $second); break; 
     case "koren": $result = pow($first,0.5); break; 
    } 
    ?> 
    Результат Вашего действия равен <b> 
    <? echo $result; ?> 
    </b> 
    <? 
    }           
    
    if ($action) calc(); else show(); 
    ?> 
    </body> 
    </html>
    Не работает.
     
  2. Belfisher

    Belfisher Гость

    Репутация:
    0
    Вот так попробуй написать :)
    Код:
    if (isset($action)) {
    calc(); 
    }
    else {
    show();
    }
     
  3. impullz

    impullz Гость

    Репутация:
    0
    а еще пхп могет ругаться на сокращенную запись открывающего тега....
    проверь настройки сервера, если все-таки решил использовать их..
     
  4. impullz

    impullz Гость

    Репутация:
    0
    Belfisher прав не спорю....
    но ты знаешь у меня твой код ваще отказался работать ссылаясь на:


    Notice: Undefined variable: result in x:\home\localhost\www\theone.php on line 21
    на имена файлов и номера строк не обращай внимания...просто переменная не определена...
     
  5. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    Guest
    сли у тебя register_globals =off то у тебя $action пустая.


    надо писать везде так: $_GET['action']
    например:
    if ($_GET['action']) calc(); else show();

    тоже самое с другими переменными


    PS: если данные будешь POSTом передавать, то : $_POST['action']

    и проверь в php.ini
    Код:
    ; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized. 
    short_open_tag = On
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей