Здравствуйте, такая проблема при запросе UPDATE когда сверяю id и ставлю переменную $id он её не видит а если просто написать например значение id='10' то работает или если в переменную id поставь значение например $id = 10; и вставить в запрос то тоже работает а когда в переменной стоит $id = $_GET['id']; то почему то не видит в запросе UPDATE а в запросе SELECT все работает в чем может быть ошибка ? помогите разобраться... Код (PHP): <?php $id = $_GET['id']; $res = mysql_query("SELECT * FROM records WHERE id='$id'"); $row = mysql_fetch_assoc($res); $users = $_SESSION['username']; $data = $_POST['day'].$_POST['month'].$_POST['year']; $day = $_POST['day']; $month = $_POST['month']; $year = $_POST['year']; $events = $_POST['events']; $price = $_POST['price']; $hall = $_POST['hall']; $performer = $_POST['performer']; $time = $_POST['time']; $price2 = $_POST['price2']; $phone = $_POST['phone']; $advance = $_POST['advance']; $rest = $_POST['rest']; $total = $_POST['total']; if(isset($_POST['submit'])) { 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()); header("Location: add-records.php"); } if(isset($_POST['save'])) { 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()); header("Location: add-records.php"); } Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
Код (PHP): <form method="post" action="add-records.php"> <input class="records-button" type="submit" name="<? if(isset($_GET[id])) { echo "save"; }else{ echo "submit"; } ?>" value="Добавить"> </form> Добавлено спустя 33 секунды: Не прокатывает (( Добавлено спустя 17 минут 5 секунд: Вот полный код Код (PHP): <?php include("dbase.php"); session_start(); if(!(isset($_SESSION["username"]) && isset($_SESSION["password"]))) { header("Location: index.php"); exit(); } else { $s_username = $_SESSION['username']; $check = mysql_fetch_array(mysql_query("SELECT status FROM users WHERE username='$s_username'", $dbase)); $status = $check['status']; if ($status == '1') { $admenu = '<li>[url="settings.php"] Настройки[/url]</li>'; } else { header("Location: index.php"); } } $id = $_GET['id']; $res = mysql_query("SELECT * FROM records WHERE id='$id'"); $row = mysql_fetch_assoc($res); $users = $_SESSION['username']; $data = $_POST['day'].$_POST['month'].$_POST['year']; $day = $_POST['day']; $month = $_POST['month']; $year = $_POST['year']; $events = $_POST['events']; $price = $_POST['price']; $hall = $_POST['hall']; $performer = $_POST['performer']; $time = $_POST['time']; $price2 = $_POST['price2']; $phone = $_POST['phone']; $advance = $_POST['advance']; $rest = $_POST['rest']; $total = $_POST['total']; if(isset($_POST['submit'])) { 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()); header("Location: add-records.php"); } if(isset($_POST['save'])) { 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()); header("Location: add-records.php"); } ?> <html> <head> <title>Заказ</title> <meta name="author" content="Khaybulla"> <meta name ="description" content=" "> <meta name ="keywords" content=" "> <meta charset="utf-8"> <link href="css/main.css" rel="stylesheet" type="text/css"> <link href="css/font-awesome.min.css" rel="stylesheet"> </head> <body> <header> <div class="menu"> <ul> <li>[url="records.php"] Записи[/url]</li> <? echo $admenu ?> <li>[url="exit.php"] Выход[/url]</li> </ul> </div> </header> <div class="adu-content"> <form method="post" action="add-records.php"><? echo $message ?> <table id="regform"> <tbody> <tr> <td> <div id="regform_list"> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Дата:</div> <select id="regform_select" name="day"> <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> </select> <select id="regform_select" name="month"> <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> </select> <select id="regform_select" name="year"> <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> </select> </div> </div> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Название события:</div><input id="regform_text" type="text" name="events" value="<? if(isset($_GET[id])) { echo $row[events]; }else{ echo ""; } ?>"> </div> </div> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Цена:</div><input id="regform_text" type="text" name="price" value="<? if(isset($_GET[id])) { echo $row[price]; }else{ echo ""; } ?>"> </div> </div> </td> <td> <div id="regform_list"> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Зал:</div><input id="regform_text" type="text" name="hall" value="<? if(isset($_GET[id])) { echo $row[hall]; }else{ echo ""; } ?>"> </div> </div> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Исполнитель:</div><input id="regform_text" type="text" name="performer" value="<? if(isset($_GET[id])) { echo $row[performer]; }else{ echo ""; } ?>"> </div> </div> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Время:</div><input id="regform_text" type="text" name="time" value="<? if(isset($_GET[id])) { echo $row[time]; }else{ echo ""; } ?>"> </div> </div> </div> </td> <td> <div id="regform_list"> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Цена:</div><input id="regform_text" type="text" name="price2" value="<? if(isset($_GET[id])) { echo $row[price2]; }else{ echo ""; } ?>"> </div> </div> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Телефон заказчика:</div><input id="regform_text" type="text" name="phone" value="<? if(isset($_GET[id])) { echo $row[phone]; }else{ echo ""; } ?>"> </div> </div> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Аванс:</div><input id="regform_text" type="text" name="advance" value="<? if(isset($_GET[id])) { echo $row[advance]; }else{ echo ""; } ?>"> </div> </div> </td> <td> <div id="regform_list"> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Остаток:</div><input id="regform_text" type="text" name="rest" value="<? if(isset($_GET[id])) { echo $row[rest]; }else{ echo ""; } ?>"> </div> </div> <div id="regform_row"> <div id="regform_cell"> <div id="regform_retreat">Итого:</div><input id="regform_text" type="text" name="total" value="<? if(isset($_GET[id])) { echo $row[total]; }else{ echo ""; } ?>"> </div> </div> <div id="regform_row"> <div id="regform_cell"> <div class="adf-position"> <input class="records-button" type="submit" name="<? if(isset($_GET[id])) { echo "save"; }else{ echo "submit"; } ?>" value="Добавить"> </div> </div> </div> </div> </td> </tr> </tbody> </table> </form> <table class="tb-users"> <thead> <tr> <th align="center" nowrap="nowrap" width="80">Дата</th> <th align="center" nowrap="nowrap" width="150">Название события</th> <th align="center" nowrap="nowrap" width="60">Цена</th> <th align="center" nowrap="nowrap" width="100">Зал</th> <th align="center" nowrap="nowrap" width="100">Исполнитель</th> <th align="center" nowrap="nowrap" width="80">Время</th> <th align="center" nowrap="nowrap" width="60">Цена</th> <th align="center" nowrap="nowrap" width="120">Телефон заказчика</th> <th align="center" nowrap="nowrap" width="60">Аванс</th> <th align="center" nowrap="nowrap" width="60">Остаток</th> <th align="center" nowrap="nowrap" width="60">Итого</th> <th align="center" nowrap="nowrap" width="100"></th> <th align="center" nowrap="nowrap" width="100"></th> </tr> </thead> <tbody> <? if(isset($_GET['delete_records'])) { $delete_records = intval($_GET['delete_records']); $query = mysql_query("DELETE FROM records WHERE id='$delete_records';"); } $check = mysql_query("SELECT * FROM records ORDER BY id DESC"); while($result=mysql_fetch_array($check)) { ?> <tr> <td><? echo $result['day'] ?>.<? echo $result['month'] ?>.<? echo $result['year'] ?></td> <td style="<?if($result['events'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['events'] ?></td> <td style="<?if($result['price'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['price'] ?></td> <td style="<?if($result['hall'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['hall'] ?></td> <td style="<?if($result['performer'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['performer'] ?></td> <td style="<?if($result['time'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['time'] ?></td> <td style="<?if($result['price2'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['price2'] ?></td> <td style="<?if($result['phone'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['phone'] ?></td> <td style="<?if($result['advance'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['advance'] ?></td> <td style="<?if($result['rest'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['rest'] ?></td> <td style="<?if($result['total'] == null) { echo "background:rgba(255, 0, 0, 0.48)";}?>";><? echo $result['total'] ?></td> <td>[url="/add-records.php?delete_records=<? echo $result['id'] ?>"]<input class="users-button" type="submit" name="delete_records" value="Удалить">[/url]</td> <td>[url="/add-records.php?id=<? echo $result['id'] ?>"]<input class="users-button" type="submit" name="edit_records" value="Редактировать">[/url]</td> </tr> <? } ?> </tbody> </table> </div> </body> </html>
ну видишь ты отправляешь форму по адресу без аргумента а потом вдруг ждешь этот аргумент в обработчике формы.
могу подсказать. посмотри на адрес вот этой страницы. там два аргумента гет-запроса - айдишник форума и айдишник треда. раз ты ожидаешь айдишник именно в гет-массиве, то тебе надо его передать, дописав к адресу обработчика формы. либо передать его скрытым полем формы и искать в пост-массиве.
Всегда пожалуйста и приводи переменною к int типу это предотврати XSS инъекции. Код (PHP): <?php $id = (int)$id; ?>
Сори протупил, sql-инъекция! Добавлено спустя 8 минут 39 секунд: Ну в общем sql-инъекция относится к XSS
к нъекциям она относится и более ни к чему. Она вообще не имеет другого отношения к сайтам, кроме того единственного, что многие сайты используют БД. Но сайты не все сайты её используют, и сайты не единственные в этом мире, кто использует БД. При этом всё программногое обеспечение, и даже люди, всё, что умеет читать И разбирать прочитанное - всё подвержено инъекциям так или иначе. Т.е. фактически, xss это инъекция в код страницы, а sql-инъекция - это инъекция в sql запрос.