1 Востаннє редагувалося ostap34PHP (07.05.2018 22:19:56)

Тема: Екранування символів [ВИРІШЕНО]

Привіт хороші люди.
Почну з того:
1.В мене є два файли: home.php і edit_profile.php
2.В файлі home.php є змінна user_id , я 100% знаю що в ній є значення 12.
3.В файлі home.php  є рядок:

<a href="edit_profile.php?u_id='$user_id'">Налаштування акаунту</a>

4. коли користувач попадає по цьому посиланню на edit_profile.php то в адресному рядку пише:

edit_profile.php?u_id=%27$user_id%27

а мало б писати:

edit_profile.php?u_id=12
Чого це так? *WALL*

2

Re: Екранування символів [ВИРІШЕНО]

так а звідки edit_profile.php знати, шо то за $user_id?

Подякували: ostap34PHP1

3 Востаннє редагувалося P.Y. (04.02.2017 15:13:01)

Re: Екранування символів [ВИРІШЕНО]

Рядок, у якому мала б відбутися підстановка, не виводиться через echo, а просто лежить як html-код за межами php-блоку? В такому разі, підстановки й не повинно бути — php його лишає незмінним. (%27 — це символьний код апострофа, що підставляється вже в самому браузері).

Треба так:

<?php 
echo "<a href=\"edit_profile.php?u_id='$user_id'\">Налаштування акаунту</a>"
?>
Подякували: ostap34PHP1

4

Re: Екранування символів [ВИРІШЕНО]

P.Y. написав:

Рядок, у якому мала б відбутися підстановка, не виводиться через echo, а просто лежить як html-код за межами php-блоку? В такому разі, підстановки й не повинно бути — php його лишає незмінним. (%27 — це символьний код апострофа, що підставляється вже в самому браузері).

Треба так:

<?php 
echo "<a href=\"edit_profile.php?u_id='$user_id'\">Налаштування акаунту</a>"
?>

Таке саме :http://localhost/onlineternopil/edit_profile.php?u_id=%2712%27

5

Re: Екранування символів [ВИРІШЕНО]

Ні, вже інше: замість $user_id тепер 12 :)
А щоб не вилазили %27, треба викинути апострофи.

Подякували: ostap34PHP1

6

Re: Екранування символів [ВИРІШЕНО]

P.Y. написав:

Ні, вже інше: замість $user_id тепер 12 :)
А щоб не вилазили %27, треба викинути апострофи.

Тепер таке:
http://localhost/%22edit_profile.php?u_id=$user_id%22

7

Re: Екранування символів [ВИРІШЕНО]

<?php echo $user_id;  ?>

Замість просто $user_id;

Подякували: ostap34PHP, P.Y., 221VOLT3

8 Востаннє редагувалося P.Y. (04.02.2017 15:48:05)

Re: Екранування символів [ВИРІШЕНО]

ost.bregin2014 написав:
P.Y. написав:

Ні, вже інше: замість $user_id тепер 12 :)
А щоб не вилазили %27, треба викинути апострофи.

Тепер таке:
http://localhost/%22edit_profile.php?u_id=$user_id%22

Треба викинути обидва апострофи з коду, який я постив вище, а тут, очевидно, той же приклад, що був спочатку, але з викинутим одним апострофом.

Якщо все зроблено так, як я сказав, але все одно вилазить це, то, можливо, при черговому виклику старе неправильне значення потрапило в $user_id, і далі передається через командний рядок.

Подякували: mike, ostap34PHP2

9

Re: Екранування символів [ВИРІШЕНО]

mike написав:
<?php echo $user_id;  ?>

Замість просто $user_id;

Дякую, працює!

10

Re: Екранування символів [ВИРІШЕНО]

А взагалі стоп. %22 — це лапки. Як усередину адреси потрапили ще одні лапки? Давайте сюди код, який зараз у програмі.

Подякували: ostap34PHP1

11 Востаннє редагувалося 221VOLT (04.02.2017 16:37:54)

Re: Екранування символів [ВИРІШЕНО]

ost.bregin2014 написав:

Привіт добрим back end розробникам(front end-рам також :) ), в мене винекла маленька неприємність написана на PHP:
Почну з того:
1.В мене є два файли: home.php і edit_profile.php
2.В файлі home.php є змінна user_id , я 100% знаю що в ній є значення 12.
3.В файлі home.php  є рядок:

<a href="edit_profile.php?u_id='$user_id'">Налаштування акаунту</a>

4. коли користувач попадає по цьому посиланню на edit_profile.php то в адресному рядку пише:

edit_profile.php?u_id=%27$user_id%27

а молоби писати:

edit_profile.php?u_id=12
Чого це так? *WALL*

цей рядок

<a href="edit_profile.php?u_id='$user_id'">Налаштування акаунту</a>

це html чи php?
(попередні автори дописів у даній темі не повністю розібралися в ситуації перед тим як давати поради--
-- докторе, у мене болить живіт, що робити?
-- попийте проносного, сходіть у туалет
-- а рана скоро заживе?
-- О_о
)

якщо html, то треба

<a href="edit_profile.php?u_id=<?=$user_id;?>">Налаштування акаунту</a>

якщо php, то треба

$variablee = '';
// ...
$variablee = $variablee.'<a href="edit_profile.php?u_id='.$user_id.'">Налаштування акаунту</a>';
// ...
echo $variablee;
Подякували: ostap34PHP1

12

Re: Екранування символів [ВИРІШЕНО]

P.Y. написав:

А взагалі стоп. %22 — це лапки. Як усередину адреси потрапили ще одні лапки? Давайте сюди код, який зараз у програмі.

читаю таке

а трохи вище --

P.Y. написав:

Рядок, у якому мала б відбутися підстановка, не виводиться через echo, а просто лежить як html-код за межами php-блоку? В такому разі, підстановки й не повинно бути — php його лишає незмінним. (%27 — це символьний код апострофа, що підставляється вже в самому браузері).

Треба так:

<?php 
echo "<a href=\"edit_profile.php?u_id='$user_id'\">Налаштування акаунту</a>"
?>

:D  :D  :D
У - уважність)))

Подякували: ostap34PHP1

13

Re: Екранування символів [ВИРІШЕНО]

P.Y. написав:

А взагалі стоп. %22 — це лапки. Як усередину адреси потрапили ще одні лапки? Давайте сюди код, який зараз у програмі.

Так працює:

<a href="edit_profile.php?u_id=<?php echo $user_id;  ?>">Налаштування акаунту<i class="material-icons">&#xE8B8;</i></a>

Так не працює:

<a href="edit_profile.php?u_id=$user_id">Налаштування акаунту<i class="material-icons">&#xE8B8;</i></a>