ФорумПрограммированиеPHP для идиотов → Синтаксическая ошибка

Синтаксическая ошибка

  • Олег

    Сообщения: 177 Репутация: N Группа: Кто попало

    Spritz 17 марта 2009 г. 13:13

    Пыха, нужна помощь. Четвертый день бьюсь с кодом. Скоро кипеть начну. Где то синтаксическая ошибка, а где, не пойму. То ли таблицу в БД создал неправильно, то ли ошибка в коде

    <?php
    // Соединяемся с БД
    mysql_connect ("localhost", "rl", "P6");
    mysql_select_db ("zp");
    // ЕСЛИ ЭТО ФОРМА ПРЕДВАРИТЕЛЬНОГО ЗАПРОСА, ТО ИДЕМ ДАЛЬШЕ…
    IF ($_POST['LMI_PREREQUEST']==1) {
     // 1) Проверяем, есть ли товар с таким id в базе данных.
     // Если такой товар не обнаружен, то выводим ошибку и прерываем работу скрипта.
     $q="SELECT `id`, `cost` FROM `money` WHERE id='$_POST['id']'";
     $res=mysql_fetch_row(mysql_query($q));
     if(!$res[0] or $res[0]=="") {
       $err=1;
       echo "ERR: НЕТ ТАКОГО ТОВАРА";
       exit;
     }
    ?>


    Ругань идет на девятую строку
  • Олег

    Сообщения: 177 Репутация: N Группа: Кто попало

    Spritz 17 марта 2009 г. 13:16, спустя 3 минуты 36 секунд

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in on line 9
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 17 марта 2009 г. 13:18, спустя 2 минуты 19 секунд

    мдаа, четвертый день…
    $q="SELECT `id`, `cost` FROM `money` WHERE id='{$_POST['id']}'"; // тут склинъекшн
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 17 марта 2009 г. 13:20, спустя 1 минуту 49 секунд

    Олег, вот такая вот конструкция очень уязвима.

    $q="SELECT `id`, `cost` FROM `money` WHERE id='$_POST['id']'";


    как я понимаю, это и есть 9-я строка , проверьте пришла ли переменная…
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 17 марта 2009 г. 13:23, спустя 3 минуты 12 секунд

    если id - число то
    'SELECT `id`, `cost` FROM `money` WHERE id=`' . intval($_POST['id']) . '`'
    или (0 + $_POST['id'])
  • Олег

    Сообщения: 177 Репутация: N Группа: Кто попало

    Spritz 17 марта 2009 г. 13:28, спустя 4 минуты 54 секунды

    Щас попробую
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 17 марта 2009 г. 13:29, спустя 33 секунды

    aivee,
    (0 + $_POST['id'])


    ну у тебя и методы…
    чем тя то не устраивает обычное приведение к типу ?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 17 марта 2009 г. 13:31, спустя 1 минуту 55 секунд

    в годб последнее обновление, там intval большие числа не тянет (короч что то типа того, посмотри тему)
  • Олег

    Сообщения: 177 Репутация: N Группа: Кто попало

    Spritz 17 марта 2009 г. 13:32, спустя 1 минуту 26 секунд

    id - четырехзначное число
  • ubica

    Сообщения: 530 Репутация: N Группа: Кто попало

    Spritz 17 марта 2009 г. 13:34, спустя 2 минуты 11 секунд

    вы все пиздец
    if(!is_numeric(@$_POST['id']))
    {
    die("идите нахуй");
    }
    else
    {

    }
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 17 марта 2009 г. 13:35, спустя 39 секунд

    Где то синтаксическая ошибка, а где, не пойму. То ли таблицу в БД создал неправильно, то ли ошибка в коде


    Parse error:  syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in on line 9

    in on line 9 значт на девятой строке ошибка
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 17 марта 2009 г. 13:35, спустя 14 секунд


    вы все пиздец
    if(!is_numeric(@$_POST['id']))
    {
    die("идите нахуй");
    }
    else
    {

    }


    ну моно и так
  • Олег

    Сообщения: 177 Репутация: N Группа: Кто попало

    Spritz 17 марта 2009 г. 13:39, спустя 3 минуты 21 секунду

    aivee, но аналогичная ошибка может вылезти, если данные с БД не получены? Или я ошибаюсь
  • ubica

    Сообщения: 530 Репутация: N Группа: Кто попало

    Spritz 17 марта 2009 г. 13:39, спустя 43 секунды

    Олег, нет и да
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 17 марта 2009 г. 13:40, спустя 34 секунды


    aivee, но аналогичная ошибка может вылезти, если данные с БД не получены? Или я ошибаюсь
    аналогичная не получится, так как ошибка была в кавычках..

Пожалуйста, авторизуйтесь, чтобы написать комментарий!