Только первое слово строки, появляющееся в форме HTML при использовании строковой ссылки

У меня проблема с формой HTML и php.

Я пытаюсь сделать значение по умолчанию для поля формы-текста заданной строкой. Для этого я использую ссылку. Однако всякий раз, когда я пытаюсь поместить строку в форму с помощью PHP или ссылок в любой форме или форме формы, добавляется только первое слово.

Вот картина для описания ситуации:

введите описание изображения здесь

Кто-нибудь знает, почему это происходит, и / или способ обойти эту проблему?

Фактический код:

<?php Echo "<input type=\"text\" name=\"Address\" value=\"one two three\"><br>"; ?> <?php $str ="one two three"; Echo "<input type=\"text\" name=\"Address\" value=" . $str . "><br>"; ?> <input type="text" name="Address" value=<?php echo "one two three";?>><br> <input type="text" name="Address" value=<?php $str = "one two three"; echo $str;?>><br> <input type="text" name="Address" value="one two three"><br> 

Related of "Только первое слово строки, появляющееся в форме HTML при использовании строковой ссылки"

Вы не цитируете повторяющиеся слова. В основном вы это делаете:

 <input type="text" value=one two three /> 

Но вам нужно это сделать:

 <input type="text" value="one two three" /> 

Просто добавьте «вокруг» PHP.

Кстати: вам нужно избегать их, если вы не хотите получать XSSed. Эти атаки довольно страшны. Читайте об этом здесь: https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)

Проблема заключалась в quotes когда вы делали эхо на php, вам нужно просто процитировать его, чтобы он работал.

Html понимал, что two и three были дополнительными параметрами <input> потому что он не был указан в полученном html.

Используйте этот способ:

 <?php Echo "<input type=\"text\" name=\"Address\" value=\"one two three\"><br>"; ?> <?php $str ="one two three"; Echo "<input type=\"text\" name=\"Address\" value=" . $str . "><br>"; ?> <input type="text" name="Address" value='<?php echo "one two three";?>'><br> <input type="text" name="Address" value='<?php $str = "one two three"; echo $str;?>'><br> <input type="text" name="Address" value="one two three"><br> 

Это потому, что вы не устанавливаете его в «" или «отметках» для html.

2. Линия: … \ "Адрес \" значение = ". $ Str.">
…. ", например, выходы для атрибута value: value = one two three Интерпретатор теперь считает, что два и три являются собственностью, а не частью стоимости. То же самое и с другими случаями.

Я думаю, что в этом значении атрибут типа ввода имеет строку с пробелом. HTML рассматривает его как отдельные атрибуты входного текста.

Чтобы решить эту проблему, вы можете использовать одиночную кавычку в начале и конце атрибута value. Посмотрите этот пример. Надеюсь, вам понравится. Я только что изменил ваш код.

 <?php echo "<input type=\"text\" name=\"Address\" value=\"one two three\"><br>"; ?> <?php $str ="one two three"; echo "<input type=\"text\" name=\"Address\" value='" . $str . "'><br>"; ?> <input type="text" name="Address" value='<?php echo "one two three";?>'><br> <input type="text" name="Address" value='<?php $str = "one two three"; echo $str;?>'><br> <input type="text" name="Address" value="one two three"><br> 

В этом случае он получит One Two Three в каждом текстовом поле.