Экранирование кавычек на переменные из SQL - PullRequest
0 голосов
/ 08 мая 2018

Я сделал свой код SQLSRV работающим. Я сейчас пытаюсь стилизовать информацию, которую я получаю из базы данных. Сейчас я сохраняю это простым, и я хочу поместить название продукта, например, в div (чтобы я мог обобщить свой вариант использования). Проблема в том, что некоторые из моих продуктов имеют одинарные / двойные кавычки внутри их имен. Таким образом, я получаю много цитат и странных вещей за пределами моего divs. Вот мой код:

    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
        $produs=$row['den_produs'];
        $caseta="<a href='produs.php?produs=$produs '\''>'
                <div class='test'>
                    <p>$produs</p>
                </div>
            </a>";
        echo $caseta;   
}

Код работает и отображает все мои переменные, но я получаю такие ошибки. Я попытался удалить косые черты и тому подобное, но ничего не помогло.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 08 мая 2018

Проблема в том, что вам нужно кодировать кавычки при использовании в URL, а не , а не в основном теле, поэтому что-то вроде этого должно служить (см. urlencode ):

<?php while($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)): ?>
<a href="produs.php?produs=<?= urlencode($row['den_produs']); ?>">
    <div class="test">
        <p><?= $row['den_produs']; ?></p>
    </div>
</a>
<?php endwhile; ?>

* примечание: я реорганизовал его для исключения из PHP и использования синтаксиса, обычно используемого для шаблонов; это делает его более разборчивым и простым в обращении с кавычками.

...