За последние 24 часа нас посетили 60124 программиста и 1744 робота. Сейчас ищут 1116 программистов ...

Запрос UPDATE не видит переменную.

Тема в разделе "PHP для новичков", создана пользователем Khaybulla, 4 мар 2016.

  1. Khaybulla

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

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Здравствуйте, такая проблема при запросе UPDATE когда сверяю id и ставлю переменную $id он её не видит а если просто написать например значение id='10' то работает или если в переменную id поставь значение например $id = 10; и вставить в запрос то тоже работает а когда в переменной стоит $id = $_GET['id']; то почему то не видит в запросе UPDATE а в запросе SELECT все работает в чем может быть ошибка ? помогите разобраться...

    Код (PHP):
    1. <?php
    2. $id = $_GET['id'];
    3. $res = mysql_query("SELECT * FROM records WHERE id='$id'");
    4. $row = mysql_fetch_assoc($res);
    5.  
    6. $users = $_SESSION['username'];
    7. $data = $_POST['day'].$_POST['month'].$_POST['year'];
    8. $day = $_POST['day'];
    9. $month = $_POST['month'];
    10. $year = $_POST['year'];
    11. $events = $_POST['events'];
    12. $price = $_POST['price'];
    13. $hall = $_POST['hall'];
    14. $performer = $_POST['performer'];
    15. $time = $_POST['time'];
    16. $price2 = $_POST['price2'];
    17. $phone = $_POST['phone'];
    18. $advance = $_POST['advance'];
    19. $rest = $_POST['rest'];
    20. $total = $_POST['total'];
    21. if(isset($_POST['submit'])) {
    22. mysql_query("INSERT INTO records VALUES ('','$users','$data','$day','$month','$year','$events','$price','$hall','$performer','$time','$price2','$phone','$advance','$rest','$total')") or die(mysql_error());
    23. header("Location: add-records.php");
    24. }
    25. if(isset($_POST['save'])) {
    26. mysql_query("UPDATE records SET data='$data',day='$day',month='$month',year='$year',events='$events',price='$price',hall='$hall',performer='$performer',time='$time',price2='$price2',phone='$phone',advance='$advance',rest='$rest',total='$total' WHERE id='$id'") or die(mysql_error());
    27. header("Location: add-records.php");
    28. } 
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а по какому адресу отправляется форма обновления записи?
     
  3. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    а если первой строкой сделать вардамп - $_GET ? (;
     
  4. Khaybulla

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

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Код (PHP):
    1. <form method="post" action="add-records.php">
    2. <input class="records-button" type="submit" name="<? if(isset($_GET[id])) { echo "save"; }else{ echo "submit"; } ?>" value="Добавить">
    3. </form>
    Добавлено спустя 33 секунды:
    Не прокатывает ((

    Добавлено спустя 17 минут 5 секунд:
    Вот полный код

    Код (PHP):
    1. <?php 
    2.  
    3. include("dbase.php");
    4.  
    5. if(!(isset($_SESSION["username"]) && isset($_SESSION["password"]))) {
    6. header("Location: index.php");
    7. exit();
    8. }
    9. else {
    10. $s_username = $_SESSION['username'];
    11. $check = mysql_fetch_array(mysql_query("SELECT status FROM users WHERE username='$s_username'", $dbase));
    12. $status = $check['status'];
    13. if ($status == '1') {
    14. $admenu = '<li>[url="settings.php"] Настройки[/url]</li>';
    15. }
    16. else {
    17. header("Location: index.php");
    18. }
    19. }
    20.  
    21. $id = $_GET['id'];
    22. $res = mysql_query("SELECT * FROM records WHERE id='$id'");
    23. $row = mysql_fetch_assoc($res);
    24.  
    25. $users = $_SESSION['username'];
    26. $data = $_POST['day'].$_POST['month'].$_POST['year'];
    27. $day = $_POST['day'];
    28. $month = $_POST['month'];
    29. $year = $_POST['year'];
    30. $events = $_POST['events'];
    31. $price = $_POST['price'];
    32. $hall = $_POST['hall'];
    33. $performer = $_POST['performer'];
    34. $time = $_POST['time'];
    35. $price2 = $_POST['price2'];
    36. $phone = $_POST['phone'];
    37. $advance = $_POST['advance'];
    38. $rest = $_POST['rest'];
    39. $total = $_POST['total'];
    40. if(isset($_POST['submit'])) {
    41. mysql_query("INSERT INTO records VALUES ('','$users','$data','$day','$month','$year','$events','$price','$hall','$performer','$time','$price2','$phone','$advance','$rest','$total')") or die(mysql_error());
    42. header("Location: add-records.php");
    43. }
    44. if(isset($_POST['save'])) {
    45. mysql_query("UPDATE records SET data='$data',day='$day',month='$month',year='$year',events='$events',price='$price',hall='$hall',performer='$performer',time='$time',price2='$price2',phone='$phone',advance='$advance',rest='$rest',total='$total' WHERE id='$id'") or die(mysql_error());
    46. header("Location: add-records.php");
    47. }
    48.  
    49. ?>
    50.  
    51. <html>
    52. <head>
    53. <title>Заказ</title>
    54. <meta name="author" content="Khaybulla">
    55. <meta name ="description" content=" ">
    56. <meta name ="keywords" content=" ">
    57. <meta charset="utf-8">
    58. <link href="css/main.css" rel="stylesheet" type="text/css">
    59. <link href="css/font-awesome.min.css" rel="stylesheet">
    60. </head>
    61. <body>
    62. <header>
    63.     <div class="menu">
    64.         <ul>
    65.             <li>[url="records.php"] Записи[/url]</li>
    66.             <? echo $admenu ?>
    67.             <li>[url="exit.php"] Выход[/url]</li>
    68.         </ul>
    69.     </div>
    70. </header>
    71. <div class="adu-content">
    72.     <form method="post" action="add-records.php"><? echo $message ?>
    73.     <table id="regform">
    74.     <tbody>
    75.     <tr>
    76.     <td>
    77.     <div id="regform_list">
    78.     <div id="regform_row">
    79.     <div id="regform_cell">
    80.     <div id="regform_retreat">Дата:</div>
    81.     <select id="regform_select" name="day">
    82.     <option value="">День</option><option value="1" <? if($row[day] == 1) echo "selected"; ?>>1</option><option value="2" <? if($row[day] == 2) echo "selected"; ?>>2</option><option value="3" <? if($row[day] == 3) echo "selected"; ?>>3</option><option value="4" <? if($row[day] == 4) echo "selected"; ?>>4</option><option value="5" <? if($row[day] == 5) echo "selected"; ?>>5</option><option value="6" <? if($row[day] == 6) echo "selected"; ?>>6</option><option value="7" <? if($row[day] == 7) echo "selected"; ?>>7</option><option value="8" <? if($row[day] == 8) echo "selected"; ?>>8</option><option value="9" <? if($row[day] == 9) echo "selected"; ?>>9</option><option value="10" <? if($row[day] == 10) echo "selected"; ?>>10</option><option value="11" <? if($row[day] == 11) echo "selected"; ?>>11</option><option value="12"<? if($row[day] == 12) echo "selected"; ?>>12</option><option value="13" <? if($row[day] == 13) echo "selected"; ?>>13</option><option value="14" <? if($row[day] == 14) echo "selected"; ?>>14</option><option value="15" <? if($row[day] == 15) echo "selected"; ?>>15</option><option value="16" <? if($row[day] == 16) echo "selected"; ?>>16</option><option value="17" <? if($row[day] == 17) echo "selected"; ?>>17</option><option value="18" <? if($row[day] == 18) echo "selected"; ?>>18</option><option value="19" <? if($row[day] == 19) echo "selected"; ?>>19</option><option value="20" <? if($row[day] == 20) echo "selected"; ?>>20</option><option value="21" <? if($row[day] == 21) echo "selected"; ?>>21</option><option value="22" <? if($row[day] == 22) echo "selected"; ?>>22</option><option value="23" <? if($row[day] == 23) echo "selected"; ?>>23</option><option value="24" <? if($row[day] == 24) echo "selected"; ?>>24</option><option value="25" <? if($row[day] == 25) echo "selected"; ?>>25</option><option value="26" <? if($row[day] == 26) echo "selected"; ?>>26</option><option value="27" <? if($row[day] == 27) echo "selected"; ?>>27</option><option value="28" <? if($row[day] == 28) echo "selected"; ?>>28</option><option value="29" <? if($row[day] == 29) echo "selected"; ?>>29</option><option value="30" <? if($row[day] == 30) echo "selected"; ?>>30</option><option value="31" <? if($row[day] == 31) echo "selected"; ?>>31</option>
    83.     </select>
    84.     <select id="regform_select" name="month">
    85.     <option value="">Месяц</option><option value="01" <? if($row[month] == 01) echo "selected"; ?>>Январь</option><option value="02" <? if($row[month] == 02) echo "selected"; ?>>Февраль</option><option value="03" <? if($row[month] == 03) echo "selected"; ?>>Март</option><option value="04" <? if($row[month] == 04) echo "selected"; ?>>Апрель</option><option value="05" <? if($row[month] == 05) echo "selected"; ?>>Май</option><option value="06" <? if($row[month] == 06) echo "selected"; ?>>Июнь</option><option value="07" <? if($row[month] == 07) echo "selected"; ?>>Июль</option><option value="08" <? if($row[month] == 08) echo "selected"; ?>>Август</option><option value="09" <? if($row[month] == 09) echo "selected"; ?>>Сентябрь</option><option value="10" <? if($row[month] == 10) echo "selected"; ?>>Октябрь</option><option value="11" <? if($row[month] == 11) echo "selected"; ?>>Ноябрь</option><option value="12" <? if($row[month] == 12) echo "selected"; ?>>Декабрь</option>
    86.     </select>
    87.     <select id="regform_select" name="year">
    88.     <option value="">Год</option><option value="2016" <? if($row[year] == 2016) echo "selected"; ?>>2016</option><option value="2017" <? if($row[year] == 2017) echo "selected"; ?>>2017</option><option value="2018" <? if($row[year] == 2018) echo "selected"; ?>>2018</option>
    89.     </select>
    90.     </div>
    91.     </div>
    92.     <div id="regform_row">
    93.     <div id="regform_cell">
    94.     <div id="regform_retreat">Название события:</div><input id="regform_text" type="text" name="events" value="<? if(isset($_GET[id])) { echo $row[events]; }else{ echo ""; } ?>">
    95.     </div>
    96.     </div>
    97.     <div id="regform_row">
    98.     <div id="regform_cell">
    99.     <div id="regform_retreat">Цена:</div><input id="regform_text" type="text" name="price" value="<? if(isset($_GET[id])) { echo $row[price]; }else{ echo ""; } ?>">
    100.     </div>
    101.     </div>
    102.     </td>
    103.     <td>
    104.     <div id="regform_list">
    105.     <div id="regform_row">
    106.     <div id="regform_cell">
    107.     <div id="regform_retreat">Зал:</div><input id="regform_text" type="text" name="hall" value="<? if(isset($_GET[id])) { echo $row[hall]; }else{ echo ""; } ?>">
    108.     </div>
    109.     </div>
    110.     <div id="regform_row">
    111.     <div id="regform_cell">
    112.     <div id="regform_retreat">Исполнитель:</div><input id="regform_text" type="text" name="performer" value="<? if(isset($_GET[id])) { echo $row[performer]; }else{ echo ""; } ?>">
    113.     </div>
    114.     </div>
    115.     <div id="regform_row">
    116.     <div id="regform_cell">
    117.     <div id="regform_retreat">Время:</div><input id="regform_text" type="text" name="time" value="<? if(isset($_GET[id])) { echo $row[time]; }else{ echo ""; } ?>">
    118.     </div>
    119.     </div>
    120.     </div>
    121.     </td>
    122.     <td>
    123.     <div id="regform_list">
    124.     <div id="regform_row">
    125.     <div id="regform_cell">
    126.     <div id="regform_retreat">Цена:</div><input id="regform_text" type="text" name="price2" value="<? if(isset($_GET[id])) { echo $row[price2]; }else{ echo ""; } ?>">
    127.     </div>
    128.     </div>
    129.     <div id="regform_row">
    130.     <div id="regform_cell">
    131.     <div id="regform_retreat">Телефон заказчика:</div><input id="regform_text" type="text" name="phone" value="<? if(isset($_GET[id])) { echo $row[phone]; }else{ echo ""; } ?>">
    132.     </div>
    133.     </div>
    134.     <div id="regform_row">
    135.     <div id="regform_cell">
    136.     <div id="regform_retreat">Аванс:</div><input id="regform_text" type="text" name="advance" value="<? if(isset($_GET[id])) { echo $row[advance]; }else{ echo ""; } ?>">
    137.     </div>
    138.     </div>
    139.     </td>
    140.     <td>
    141.     <div id="regform_list">
    142.     <div id="regform_row">
    143.     <div id="regform_cell">
    144.     <div id="regform_retreat">Остаток:</div><input id="regform_text" type="text" name="rest" value="<? if(isset($_GET[id])) { echo $row[rest]; }else{ echo ""; } ?>">
    145.     </div>
    146.     </div>
    147.     <div id="regform_row">
    148.     <div id="regform_cell">
    149.     <div id="regform_retreat">Итого:</div><input id="regform_text" type="text" name="total" value="<? if(isset($_GET[id])) { echo $row[total]; }else{ echo ""; } ?>">
    150.     </div>
    151.     </div>
    152.     <div id="regform_row">
    153.     <div id="regform_cell">
    154.     <div class="adf-position">
    155.     <input class="records-button" type="submit" name="<? if(isset($_GET[id])) { echo "save"; }else{ echo "submit"; } ?>" value="Добавить">
    156.     </div>
    157.     </div>
    158.     </div>
    159.     </div>
    160.     </td>
    161.     </tr>
    162.     </tbody>
    163.     </table>
    164.     </form>
    165.     <table class="tb-users">
    166.         <thead>
    167.             <tr>
    168.                 <th align="center" nowrap="nowrap" width="80">Дата</th>
    169.                 <th align="center" nowrap="nowrap" width="150">Название события</th>
    170.                 <th align="center" nowrap="nowrap" width="60">Цена</th>
    171.                 <th align="center" nowrap="nowrap" width="100">Зал</th>
    172.                 <th align="center" nowrap="nowrap" width="100">Исполнитель</th>
    173.                 <th align="center" nowrap="nowrap" width="80">Время</th>
    174.                 <th align="center" nowrap="nowrap" width="60">Цена</th>
    175.                 <th align="center" nowrap="nowrap" width="120">Телефон заказчика</th>
    176.                 <th align="center" nowrap="nowrap" width="60">Аванс</th>
    177.                 <th align="center" nowrap="nowrap" width="60">Остаток</th>
    178.                 <th align="center" nowrap="nowrap" width="60">Итого</th>
    179.                 <th align="center" nowrap="nowrap" width="100"></th>
    180.                 <th align="center" nowrap="nowrap" width="100"></th>
    181.             </tr>
    182.         </thead>
    183.         <tbody>
    184.             <?
    185.             if(isset($_GET['delete_records'])) { 
    186.             $delete_records = intval($_GET['delete_records']);
    187.             $query = mysql_query("DELETE FROM records WHERE id='$delete_records';");
    188.             }
    189.             $check = mysql_query("SELECT * FROM records ORDER BY id DESC");
    190.             while($result=mysql_fetch_array($check)) {
    191.             ?>
    192.             <tr>
    193.                 <td><? echo $result['day'] ?>.<? echo $result['month'] ?>.<? echo $result['year'] ?></td>
    194.                 <td style="<?if($result['events'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['events'] ?></td>
    195.                 <td style="<?if($result['price'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['price'] ?></td>
    196.                 <td style="<?if($result['hall'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['hall'] ?></td>
    197.                 <td style="<?if($result['performer'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['performer'] ?></td>
    198.                 <td style="<?if($result['time'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['time'] ?></td>
    199.                 <td style="<?if($result['price2'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['price2'] ?></td>
    200.                 <td style="<?if($result['phone'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['phone'] ?></td>
    201.                 <td style="<?if($result['advance'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['advance'] ?></td>
    202.                 <td style="<?if($result['rest'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['rest'] ?></td>
    203.                 <td style="<?if($result['total'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['total'] ?></td>
    204.                 <td>[url="/add-records.php?delete_records=<? echo $result['id'] ?>"]<input class="users-button" type="submit" name="delete_records" value="Удалить">[/url]</td>
    205.                 <td>[url="/add-records.php?id=<? echo $result['id'] ?>"]<input class="users-button" type="submit" name="edit_records" value="Редактировать">[/url]</td>
    206.             </tr>
    207.             <?
    208.             }
    209.             ?>
    210.         </tbody>
    211.     </table>
    212. </div>
    213. </body>
    214. </html>
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Khaybulla, смотри подсказку от модератора, оформи свой пост как полагается.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну видишь ты отправляешь форму по адресу без аргумента а потом вдруг ждешь этот аргумент в обработчике формы.
     
  7. Khaybulla

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

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Не совсем понял можете показать как должно быть ?
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    могу подсказать. посмотри на адрес вот этой страницы. там два аргумента гет-запроса - айдишник форума и айдишник треда. раз ты ожидаешь айдишник именно в гет-массиве, то тебе надо его передать, дописав к адресу обработчика формы. либо передать его скрытым полем формы и искать в пост-массиве.
     
  9. dexby101

    dexby101 Новичок

    С нами с:
    5 мар 2016
    Сообщения:
    11
    Симпатии:
    0
    нужно в action указать сам get типа action="add-records.php?id=нужный тебе ид"
     
  10. Khaybulla

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

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Спасибо огромное! теперь работает как надо.
     
  11. dexby101

    dexby101 Новичок

    С нами с:
    5 мар 2016
    Сообщения:
    11
    Симпатии:
    0
    Всегда пожалуйста и приводи переменною к int типу это предотврати XSS инъекции.
    Код (PHP):
    1. <?php
    2. $id = (int)$id;
    3. ?>
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    xss это не предотвратит :D
     
  13. dexby101

    dexby101 Новичок

    С нами с:
    5 мар 2016
    Сообщения:
    11
    Симпатии:
    0
    Если нужно получать только ид из get то вполне предотвратит!(имеется в виду sql xss инъекции)
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    так sql-инъекция или xss? ты уж определись.
     
  15. dexby101

    dexby101 Новичок

    С нами с:
    5 мар 2016
    Сообщения:
    11
    Симпатии:
    0
    Сори протупил, sql-инъекция!

    Добавлено спустя 8 минут 39 секунд:
    Ну в общем sql-инъекция относится к XSS
     
  16. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    да щаз. с локального сайта тоже можно отправить. очень сильно плаваешь в материале.
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    к нъекциям она относится и более ни к чему. Она вообще не имеет другого отношения к сайтам, кроме того единственного, что многие сайты используют БД. Но сайты не все сайты её используют, и сайты не единственные в этом мире, кто использует БД. При этом всё программногое обеспечение, и даже люди, всё, что умеет читать И разбирать прочитанное - всё подвержено инъекциям так или иначе. Т.е. фактически, xss это инъекция в код страницы, а sql-инъекция - это инъекция в sql запрос.