За последние 24 часа нас посетили 16580 программистов и 1578 роботов. Сейчас ищут 880 программистов ...

Значение равное 0 в переменной

Тема в разделе "PHP для новичков", создана пользователем Reken, 16 сен 2020.

Метки:
  1. Reken

    Reken Активный пользователь

    С нами с:
    4 июл 2019
    Сообщения:
    200
    Симпатии:
    5
    Подскажите пожалуйста.
    Такая задача. Есть табличка с окном ввода цифры. Далее введенное значение отправляется через POST в скрипт следующего вида:
    Код (Text):
    1.     $heat = $_POST['heat'];
    2.     if ($heat == true){
    3.     $heat=str_replace(" ","",$heat);
    4.     $heat=str_replace(",",".",$heat);
    5.     }else
    6. {
    7. $heat = $heat_rew;
    8. }
    Как понятно, если цифра была введена в окошко, то переменная $heat принимает значение равное введенной цифре. Если цифра не была введена, то переменная $heat принимает значение переменной $heat_rew
    Проблема в том, что если в окошко ввести "0", то скрипт думает что переменная $heat пустая...И принимает значение равное $heat_rew. Подскажите, как подправить скрипт, что бы "0" тоже принимался за значение, и в итоге $heat принимала значение равное "0".
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    как проверяешь $_POST с возможным неким ключем ?
     
  3. Reken

    Reken Активный пользователь

    С нами с:
    4 июл 2019
    Сообщения:
    200
    Симпатии:
    5
    Нет, никак не проверяю. Просто со страницы где вводится цифра через post отправляю информацию в скрипт...
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Надо проверять. Ваш обработчик не может быть уверен, что ему передается параметр.

    Что касается осн. вопроса, проверяйте отсутствие ввода по длине строке в параметре (если он передан).
     
  5. Reken

    Reken Активный пользователь

    С нами с:
    4 июл 2019
    Сообщения:
    200
    Симпатии:
    5
    Можете пожалуйста привести пример скрипта, по проверке значения по длине?
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
  7. Reken

    Reken Активный пользователь

    С нами с:
    4 июл 2019
    Сообщения:
    200
    Симпатии:
    5
    Если речь идет о empty, всё равно же не сработает
    Если переменная $heat будет равна нулю, то и empty примет её за пустую...
    Или я что то недопонял?
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    Да верно, поэтому там есть первый хороший комментарий внизу
     
  9. Reken

    Reken Активный пользователь

    С нами с:
    4 июл 2019
    Сообщения:
    200
    Симпатии:
    5
    Я правильно понимаю? Речь идет о коде:
    Код (Text):
    1. function is blank($value) {
    2.     return empty($value) && !is numeric($value);
    3. }
    Код проверяет, является значение числовым или нет?
     
  10. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    PHP:
    1. $heat = is_numeric($_POST['heat']) ? $_POST['heat'] : 0;
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
  12. Reken

    Reken Активный пользователь

    С нами с:
    4 июл 2019
    Сообщения:
    200
    Симпатии:
    5
    Всем спасибо за помощь, попробую разобраться...