За последние 24 часа нас посетили 17375 программистов и 1712 роботов. Сейчас ищут 1474 программиста ...

Помогите: INSERT из сложной формы

Тема в разделе "Вопросы от блондинок", создана пользователем Димон, 24 май 2009.

  1. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Ладно, всем спокойной ночи! Завтра продолжу ломать голову, попробую создать всплывающее окно на яваскрипт для редактирования строки, а там поди доберусь умом и до удаления строки. Главное, нужно заставить скрипт после работы переключать браузер на нужную страницу автоматически.
     
  2. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Я никогда не делаю скрипты по нескольку тысяч строк. Более того, я имею тягу к процедурному программированию, а не ООП, посему оформляю процедурки и выношу их в отдельные скрипты. Так же в нотепаде удобная табуляция (tab - 8 пробелов), всегда ей следую и не мучаюсь без подсветки.
    Примеры достаточно крупных проектов с запутаной логикой в студию :)

    Нашел при первом же просмотре :)
    Привык я, присмотрелся. В досе даже шрифты поганей были, без курсора и прочил радостей, и ничего, программили, по сравнению с ним блокнот виндовый - просто рай :)

    вот как тут можно запутаться? :)
    http://antonn.com/xlam/notepad_e.JPG
     
  3. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Неудобностей несколько:
    1. Если много нагромождений с кавычками, то легко запутаться.
    2. Если где-то не закрыта кавычка, то незаметно
    3. Легче потеряться в скобках
    4. Нету табов, а пользоваться виндовым (хр) баром неудобно

    Юзай Notepad++. Тот же блокнот, но без этих проблем http://kreker.org/pluginbaby/np++.png
     
  4. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Кошмар, мне кажется, программирование для вас должно быть ужасной мукой. Горизонтальный скролл, как всегда ужасные виндовые шрифты, отсутствие подсветки

    Ибо это одна строка :)

    SQL Injection

    Класс потяжелее и Класс полегче
    Этот код я выкладывал в соседней теме

    Поверте, я получаю истинное наслаждение даже от того, что просто смотрю на код :)
     
  5. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Kreker, сам раньше использовал Notepad++. Воспоминания только хорошие.
     
  6. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    И кстати. Представте, если этот запрос обильно снабдить всякими переменными :))
    [sql]SELECT * FROM `Subjects`
    INNER JOIN `Office_SubjectsStat` as `SbjStat`
    ON `SbjStat`.`SubjectID` = `Subjects`.`ID`
    INNER JOIN `Directories`
    ON `Directories`.`ID` = `Subjects`.`DirectoryID`
    LEFT JOIN `Messages` as `MinMsg`
    ON `MinMsg`.`ID` = `SbjStat`.`MinMsgID`
    LEFT JOIN `Users` as `MinAuthor`
    ON `MinAuthor`.`ID` =`MinMsg`.`AuthorID`
    LEFT JOIN `Messages` as `MaxMsg`
    ON `MaxMsg`.`ID` = `SbjStat`.`MaxMsgID`
    LEFT JOIN `Users` as `MaxAuthor`
    ON `MaxAuthor`.`ID` =`MaxMsg`.`AuthorID`
    LIMIT $start, 20[/sql]
     
  7. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    TheShock
    где, и каким образом? в жизни я ни разу не допустил иньекции, были лишь nil или 0 как недостаточная проверка :)

    а в N++ шрифты типа не виндовые? :)))
    lucida console и courier new - обычные моноширинные шрифты, из "обычных" предпочитаю еще тахому и вердану :)

    без проблем воспринимаю это в блокноте (недавно пересматривал phpmailer, в блокноте, жив, здоров :) постоянно тырю идеи из IPB, а там мало того, что форматирование "не мое", так еще наООПижжено черезчур. Тоже жив пока :) )
    Так же к особенностям моего формата отношу отсутствие (по возможности всегда удаляю :) ) пробелов м/у }{ и знаками =/*-+ и тп. Как на копипасте выше :)

    Kreker
    благодаря широкой табуляции (не 8 пробелов, а один таб - это мне важно) как можно запутаться в скобках? свой уровень на своем месте с левого края. на всякий - наводишь курсор на открывающую скобку, крутишь полесо - оно ниже приведет тебя к закрывающей :)
    Табы мне совершенно не нужны, по этой причине я не юзаю Н++ и ПХПЕксперт. Весь функционал что мне нужен есть в блокноте в ХР (и выше, т.к. на win2k у блокнота нету статус бара, номер строки не показывает :) ). Таскбар в ХР такой же как и везде, разумеется я отключаю "группировать сходные кнопки".
    Начет ковычек - если ошибка как приводили выше - парсер ткнет сразу же. Других случаев приведших к неработоспособности скрипта при моей педантности в этом вопросе еще небыло :)

    вы еще не видели раскраску в дельфи %))
    http://antonn.com/xlam/delphi_e.JPG
     
  8. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    SELECT * FROM pull_votes WHERE poll_id='".$_GET['poll']."'

    В $_GET['poll'] может быть инъекция

    а я про N++ и не говорил. А на моем скрине шрифты не виндовые :)
     
  9. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Сравни ещё раз мои скрины и твои. Мне кажется, у меня рабочее место все-таки покомфортнее :)
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Я имел ввиду круглые, а не фигурные. preg_math('~(dad(da(dasd)d)(dadsad))(adsd(dasd))~') или substr($str, strpos($str, "b"), strpos(implode("", $arr), "b"));

    У меня при работе с сайтами открыто порядка 7 файлов, которые я постоянно использую. Если бы не было табов - я бы повесился. В ХР не очень удобно реализован бар с приложениями - нельзя перетаскивать. Из-за этого, файлы, открытые вперемешку с другими приложениями нельзя группировать по порядку приложения. Это неудобно. А табы позволяют отделить редактируемые файлы от приложения операционки.

    Это да, но подсветка синтаксиса позволяет пресечь ошибку до запуска скрипта.
     
  11. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Всем привет. Ваш спор по поводу редакторов закончился?
    У меня есть вопрос. Создал поиск из БД, но в запросе почему-то выводит ошибку:
    Query failed: Unknown column 'Январь' in 'where clause'
    переводчик выдал:
    Запрос потерпевший неудачу: Неизвестная колонна 'РРРР СС
    в 'где статья'.
    Вот строчка из WHERE:
    ....AND `RabotaType`.`RabotaTypeName`=`".$RabotaTypeName."`";......
    Данную переменную я получаю не одну (их несколько), но именно эта почему-то неизвестна, может что с синтаксисом?
     
  12. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    весь запрос сюда. ошибку уже вижу.
     
  13. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Вот сам запрос:
    PHP:
    1. $sql =  "SELECT
    2.        `Denn`.`Denn`,
    3.        `Date`.`Datename`,
    4.        `God`.`God`,
    5.        `Rabota`.`№Naryada`,
    6.        `RabotaType`.`RabotaTypeName`,
    7.        `Rabota`.`Opis_rabot`,
    8.        `MaterialName`.`MaterialName`,
    9.        `MaterialType`.`TypeName`,
    10.        `Rabota`.`EdIzmer`,
    11.        `Rabota`.`Col_vo`
    12.        FROM
    13.        `Denn`,`Date`,`God`,`Rabota`,`RabotaType`,`MaterialName`, `MaterialType`
    14.        WHERE
    15.        `Rabota`.`RabotaType_id`=`RabotaType`.`RabotaType_id` AND
    16.        `Rabota`.`MaterialType_id`=`MaterialType`.`Type_id`AND
    17.        `Rabota`.`MaterialName_id`=`MaterialName`.`MaterialName_id`AND
    18.        `Rabota`.`Denn_id`=`Denn`.`Denn_id`AND
    19.        `Rabota`.`Date_id`=`Date`.`Date_id`AND
    20.        `Rabota`.`God_id`=`God`.`God_id` AND
    21.        `Rabota`.`Col_vo` >'0' AND
    22.         `Date`.`Datename`=`".$date."` AND
    23.         `God`.`God`=`".$god."`AND
    24.         `RabotaType`.`RabotaTypeName`=`".$RabotaTypeName."`";
    25. $result25 = mysql_query($sql)or die ("Query failed: " .mysql_error());
     
  14. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    А в первых строчках я проверил наличие переменных $_POST, и результат занес в новую переменную:
    PHP:
    1. <?php
    2. if (isset ($_POST['date']))
    3. {
    4.     $date = $_POST['date'];
    5.     }
    6. if (isset ($_POST['god']))
    7. {
    8.     $god = $_POST['god'];
    9.     }
    10. if (isset ($_POST ['RabotaTypeName']))
    11. {
    12.     $RabotaTypeName = $_POST ['RabotaTypeName'];
    13.     }
    14. ?>
     
  15. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    во-первых, не используй ты эту конкатенацию - она только путает. Во вторых (обрати внимание на кавычки):
    [sql]`Date`.`Datename`='$date' AND
    `God`.`God`='$god' AND
    `RabotaType`.`RabotaTypeName`='$RabotaTypeName'[/sql]
    Ну и, как всегда, очень уязвимый у тебя скрипт.
     
  16. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    А что не так с кавычками? Вроде все правильно сделал. А насчет уязвимости я знаю, но у меня поля на форме - выпадающие списки - нет возможности писать код или оставить поле пустым.
     
  17. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    у тебя в значениях такие : ` а надо такие: '
    Димон, спорим, я тебе туда хоть картинку могу отправить?
     
  18. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Спорить не буду так как я еще только первые шаги делаю. А кавычки я всякие пробовал - не работало. Сейчас еще раз проверю.
     
  19. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Ура! Заработало!!!!
     
  20. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    А если например одну из переменных оставить пустой - запрос будет работать или мускул обидется?
     
  21. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Запрос работать будет, пхп выдаст Notice. Лучше сделай проверку так, как я вчера показывал.
     
  22. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    У меня поиск выводится по трем переменным: Месяц, Год, Тип работ. Но иногда надо все работы за выбранный месяц
     
  23. Димон

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

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Ребят, помогите правильно настроить кодировки в АдобеДримвейвер CS4- вместо русского что попало пишет
     
  24. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    TheShock
    не может.
     
  25. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Page Properties или же заменить кодировку в хеад на win-1251