Я прочитал значение из формы в качестве формы ввода пользователя. форма ПОЧТА.
<form action="form_handler.php" method="POST">
Затем в form_handler.php
На странице я сохранил это значение в переменной. $productID=$_POST['product'];
Затем я хочу передать эту переменную через ссылку на другую страницу как:
echo "<a href='products.php?prodID=".$productID."' title='Products
Page' class='whatEver'>click here for product details</a>";
Когда я нажимаю на ссылку, я вижу значение в ссылке. Но внутри страницы products.php
Я хочу сделать запрос MySQL для деталей продукта как:
$sql = "SELECT * FROM products WHERE prodID = '$productID'";
Я получаю 0 результатов. Я также попытался отобразить значение $ productID, и оно кажется пустым, а не значением, которое я видел в URL.
В чем моя ошибка, пожалуйста? Как я могу сделать запрос к базе данных для получения сведений о продукте на основе переменной productID, которую я передал по ссылке?
ПРИМЕЧАНИЕ: я пытаюсь сделать демо-версию для уязвимости инъекции MySQL. Пожалуйста, игнорируйте проблемы безопасности здесь.
Вы не можете получить такой productID. Вы должны поместить `$ productID = $ _GET [‘prodID’]; ‘Вы можете использовать эту переменную с SQL-запросом.
Когда вы отправили переменные в ссылке, сопровождаемой ?var=value
Вам нужно получить что-то вроде
$variable = $_GET['var'];
В вашем случае ваш products.php
должен иметь $prodid = $_GET['prodID'];
echo "<a href='products.php?prodID=".$productID."' title='Products
Page' class='whatEver'>click here for product details</a>";
Похоже, вы передаете его в products.php как prodID
,
Не могли бы вы попробовать использовать:
$sql = "SELECT * FROM products WHERE prodID = '$prodID'";
Вместо?
Так же, как раньше, когда вы использовали $productID=$_POST['product'];
,
вам нужно сделать то же самое, чтобы использовать переменную в products.php, за исключением того, что вместо переменной post это переменная get (потому что она находится в URL). использование $productID=$_GET["productID"]