#php #url #get
#php #url #получить
Вопрос:
Я публикую скрытое поле с каждой кнопкой отправки, используя метод GET.
<?php
if(isset($_GET["topic"]))
{
$topic=$_GET["topic"];
?>
<input type="hidden" name="topic" value=<?php echo $topic; ?>/>
<?php
}
?>
Проблема в том, что когда я нажимаю кнопку отправки и получаю this / ‘slash’ в моем url.
есть тематические автомобили/
(при печати с эхом на экране)
При каждом нажатии кнопки я получаю еще одну косую черту .. и мой URL-адрес выглядит так..
http://localhost/IHow/home.php?searchEngine=amp;topic=cars//////////amp;page=0
Как предотвратить это, потому что мне нужна переменная url темы для моего запроса mysql..
Комментарии:
1. К вашему сведению, вам нужно использовать
htmlspecialchars()
значение и указать его.
Ответ №1:
У вас нет кавычек вокруг value
атрибута, и у вас также нет пробела между атрибутом и завершающей косой чертой. Косая черта считается частью value
атрибута, поэтому она отправляется. Добавьте кавычки, добавьте пробел или сделайте и то, и другое.
Как говорит TheifMaster, вы также должны использовать htmlspecialchars()
на topic
Комментарии:
1. Действительно. Это сделает свое дело:
<input type="hidden" name="topic" value="<?php echo htmlspecialchars($topic); ?>"/>
Ответ №2:
<?php
if(isset($_GET["topic"]))
{
$topic=$_GET["topic"];
if($topic[strlen($topic)-1] == '/') //check if last char is '/'
$topic = substr($topic,1,strlen($topic)-1); //$topic is $topic - last character
?>
<input type="hidden" name="topic" value=<?php echo $topic; ?>/>
<?php
}
?>
Комментарии:
1. лол .. слишком запутанно для простой задачи. Но спасибо за алгоритм
2. алгоритм ? какой алгоритм? 🙂 Я что-то пропустил?