Всем привет! Пишу кнопку: Code: <a href="admin/orders?siralama_link=<?=$_SERVER['REQUEST_URI'];?>">save link</a> Пишу обработку кнопки: PHP: if($_GET["siralama_link"]!=""): $updatesiralama = $conn->prepare("UPDATE settings SET order_siralama_link=:order_siralama_link WHERE id=:id "); $updatesiralama->execute(array("order_siralama_link"=>$_GET["siralama_link"],"id"=>1)); header("Location:".site_url("admin/orders")); endif; Если ссылка вида: admin/orders/1/all, то в базу и сохраняется эта строка. Если ссылка вида: admin/orders/1/all?mode=manuel, то в базу сохраняется строка до "?", а остальная часть отсекается, хотя, наведя курсор на кнопку, видно, что ссылка передается полностью: http://xxx/admin/orders?siralama_link=/admin/orders/1/all?mode=manuel Вопрос такой: почему не сохраняется в Mysql части ссылки, начиная с "?". И самое главное - что же в этом случае можно придумать? Спасибо, что прочитали
тут проблема до строки "if($_GET["siralama_link"]!=""):", а не после. допиши перед кодом echo $_GET["siralama_link"]
Ушел в этом случае от $_GET совсем. Поставил сам обработчик непосредственно в условиях создания ссылок вместо отдельного вывода кнопки, чтобы при кликах по кнопкам текущая ссылка сразу уходила в базу. Эта необходимость возникла, чтобы при редактировании определенных блоков возврат осуществлялся на ту же страницу посредством header. Вопрос закрыт.
Не вникал особо, но из первой же вставки примера кода видно, что будет произведена передача данных по протоколу HTTP методом GET при переходе по ссылке. А для целостной и корректной передачи данных по протоколам лучше передаваемые данные кодировать. Например в php это может быть функция urlencode либо base64 (base64_encode с дополнительной обработкой спецсимволов при передаче url данных: https://www.php.net/manual/ru/function.base64-encode.php#103849).