Я действительно не хотел писать пост на эту тему, потому что сейчас так много всего, что нужно исправить, но ваша ближайшая проблема -
<a href='#?idrequest=$id'> .... </a>
Этот хэштег #
или знак фунта,создаст то, что называется фрагментом URL.Теперь вы должны понимать, что фрагменты только на стороне клиента и не отправляются на сервер.Поэтому все, что следует за #
, не будет отправленоПоэтому нет способа получить доступ к этой «псевдо» строке запроса.Поэтому, по крайней мере, бросьте #
.
<a href='?idrequest=$id'> .... </a>
Если бы вы включили отчеты об ошибках, вы увидите предупреждение для неопределенного индекса.
<?php
error_reporting(-1);
ini_set('display_errors', '1');
Потому что $_GET['idrequest']
не существует, в этом коде текущая форма.
Кроме того, ваш SQL широко открыт для SQLInjection, как я сказал в комментарии, если кто-то вставит URL с помощью
$_GET['idrequest'] = "1' OR 1=1"
$idrequest = $_GET['idrequest'];
"SELECT * from orders where id ='$idrequest'"
Ваш SQL-запрос изменяется следующим образом:
"SELECT * from orders where id ='1' OR 1=1"
Поскольку 1 всегда равен 1, этот «хак» всегда будет возвращать несколько строк.Поэтому всегда используйте подготовленные заявления.
Кроме того, если это общедоступно, любой пользователь может просто выполнить итерации по вашей пользовательской таблице, чтобы посмотреть заказы других пользователей.Они могут включать в себя личную информацию, такую как телефон и адрес.Вы можете добавить user_id в этот поиск, который в любом случае должен быть внешним ключом в этой таблице.Этот идентификатор пользователя будет затем поступать из любой системы, которую вы используете для входа в систему (не введенные пользователем данные).Который позволил бы им видеть только их собственные заказы.
Я даже не буду касаться вопросов стилизации / форматирования, включая кнопку в ссылке.Или это специальное смешивание HTML и HTML в строках PHP, что затрудняет чтение кода.
Или это
include("conn.php");
Что должно быть
require "conn.php";
include и require не нуждаются в ()
, и вы должны использовать require, если скрипт не будет выполняться без включенного файла.Это соединение с БД, я бы сказал, что все будет не так, как запланировано, если этот файл отсутствует.
Приветствия.