текстовые поля предназначены для отображения многострочного текста с переносами строк. имя пользователя и имя обычно не содержат их, поэтому лучше использовать элемент input
<?php
echo '<input type="text" name="name" value="' . htmlentities($checkFirstName) . '">';
?>
не забывайте о htmlentities
или htmlspecialchars
(зависит от кодировки - если ваша кодировка - Unicode, htmlspecialchars должно быть достаточно, в противном случае его htmlentities). не используйте htmlentities
только для полей формы, но всякий раз, когда вы печатаете предоставленные пользователем данные. в противном случае кто-то может внедрить xss (cross site scripting
) атаки или, по крайней мере, создать ошибочный html, указав имя пользователя, например
<script type="text/javascript">execute_evil_code();</script>
как для отображения только одного символа вместо полной строки: обычно это происходит, если вы думаете, что работаете с массивом и вместо этого имеете строку. используйте var_dump($variable);
, чтобы увидеть тип ваших переменных.
также, как сказал htw, проверьте, действительно ли $username
уникален, и вы получаете правильный ряд. запустите полученный запрос (echo $usernameQuery;
) в phpmyadmin (или любом другом инструменте, который вы используете). если возвращается более одной строки, ваше имя пользователя не уникально (возможно, это ошибка само по себе), и строка, которую вы получаете, не первая, а последняя. это странно, потому что 's' не является частью "john", поэтому, возможно, набор результатов mysql - это нечто совершенно другое. отладка на более высоком уровне и var_dump
вся строка $.