会话数据在太空中切断

时间:2014-03-26 23:47:52

标签: php forms session

(signup_process.php)

$city=cleanup($_POST['city']);
echo $city;

输出:纽约

$_SESSION['city']=$city;
echo $_SESSION['city'];

输出:纽约


问题:

(signup.php)

<form method=post action='signup_process.php'> 

City<input type=text name=city value=<?php echo $_SESSION['city'];?>>

输出:新

City<input type=text name=city value=<?php echo urlencode($_SESSION['city']);?>>

输出:New + York

City<input type=text name=city value=<?php echo urlencode(str_replace('+', '', $_SESSION['city']));?>>

输出:New + York

我试图将数据回显到表单中。

  1. 为什么会议数据在空格后被切断?
  2. 如何删除+号?

2 个答案:

答案 0 :(得分:1)

您必须将值放在引号中,否则浏览器会将空格后的部分解释为<input>标记的另一个属性。 E.g:

<input type="text" name="city" value="<?php echo $_SESSION['city'];?>">

在你的例子中,它将是

<input type=text name=city value=New York>

York 作为 value 之后的下一个属性。

答案 1 :(得分:0)

我已经解决了这个问题 解决方案是使用()用于html = space

此解决方案:

str_replace(" ", "&nbsp;", $_SESSION['city'])

该方法可以在

中使用
 echo '<input style="font-size:  17px;color: black;" type="text" name="us" class="form-control" disabled="disabled" value='. str_replace(" ","&nbsp;",$_SESSION['username']).' >';