У меня есть проблема на моем сайте, чтобы быть более точным в моих страницах редактирования и особенно в моих текстовых полях редактирования, он не показывает всю информацию в текстовых полях.
Как вы можете видеть на изображениях, в текстовых полях не отображается вся информация.
Я хочу показать, как у меня есть в базе данных.
Игнорировать первый ряд …
Вот мой код …
<?php
$username = $_SESSION["username"];
if(isset($_POST['id'])){
$id = $_POST['id'];
$name = mysql_real_escape_string($_POST["name"]);
$email = mysql_real_escape_string($_POST["email"]);
$city = mysql_real_escape_string($_POST["city"]);
$phone = ($_POST["phone"]);
$query="UPDATE personal_information
SET name = '$name', email = '$email', city = '$city', phone='$phone'
WHERE id='$id'";
mysql_query($query)or die(mysql_error());
if(mysql_affected_rows()>=0){
echo "<p>($username) Record Updated<p>";
}else{
echo "<p>($username) Not Updated<p>";
}
}
else{
//first time, initialize as you wish. Probably need to get the first id for this user, using another query
$id = 0;
}
if($query = mysql_query("SELECT name,email,city,phone FROM personal_information WHERE id>'$id' AND username='$username' order by id asc limit 1") or die(mysql_error()))
{
if(mysql_num_rows($query)>=1){
while($row = mysql_fetch_array($query)) {
$name = $row['name'];
$email = $row['email'];
$city = $row['city'];
$phone = $row['phone'];
}
}
else{
echo 'No entry found. <a href="javascript:history.back()">Go back</a>';
}
}
?>
КОД ФОРМЫ HTML …
<form method="post" action="edit_personal_information.php">
<input type="hidden" name="submitted" value="true" />
<legend style="color: #F87F25; font: bold 18px Tahoma;">Personal Information</legend>
<label style="color: #01ACEE; font: bold 12px Tahoma;">Name <input type="text" name="name" value=<?=$name?> required="required" /> </label>
<br /><br />
<label style="color: #01ACEE; font: bold 12px Tahoma;">Email <input type="text" name="email" value=<?=$email?> required="required"/> </label>
<br /><br />
<label style="color: #01ACEE; font: bold 12px Tahoma;">City <input type="text" name="city" value=<?=$city?> /> </label>
<br /><br />
<label style="color: #01ACEE; font: bold 12px Tahoma;">Phone <input type="text" name="phone" value=<?=$phone?> /> </label>
<br /><br />
<input type="hidden" name="id" id="id2" value="<?php echo ($id == 0 ? 0 : $id );?>" style="border: 1px solid #006; color:#F87F25; font: bold 16px Tahoma; border-radius:7px; padding:4px;"/>
<input type="submit" value="Update" id="update" name="submit" style="border: 1px solid #006; color:#F87F25; font: bold 16px Tahoma; border-radius:7px; padding:4px;"/>
</form>
Я могу понять, что проблема в том, что он не может отображать пробелы между текстом, но я не могу найти решение этой проблемы
value=<?=$name?>
Если имя имеет пробел, результирующий HTML будет:
value=Foo Bar
Это означает, что значение только Foo
«Бар» становится вторым атрибутом, не связанным с этим.
Вы должны позаботиться о создании правильного синтаксиса HTML:
value="<?php echo htmlspecialchars($name); ?>"
Также прочитайте Великий эскапизм (или: что нужно знать, чтобы работать с текстом в тексте).
Других решений пока нет …