我有一个奇怪的问题,我试图以简写的方式使用PHP来输出会话中保存的值。 (基本上,如果您在注册时输入用户名和电子邮件地址,但是您收到的电子邮件地址有误,而不是清除用户名字段,那么它应该保留,然后您只需要记录错误的详细信息。)
这就是我对输出的看法:
value="<?=$usern_value;?>"
我的意见是:
<input type="text" id="inputUser" name="username" placeholder="Username" value="<?=$usern_value;?>" />
但它输出了这个:
这是创建$usern_value
的值的地方:
<?php
if(isset($_SESSION['status']['register']['username'])){
$usern_value = $_SESSION['status']['register']['username'];
} else {
$usern_value = "";
}
?>
答案 0 :(得分:5)
试试这个
value="<?php echo $usern_value;?>"
因为你的php版本中没有启用简写。我所以你需要在配置文件php.ini
中启用short_open_tag选项。你可以尝试下列之一
short_open_tag = On
(推荐方式); ini_set("short_open_tag", 1);
; 将以下行添加到.htaccess文件中:
php_value short_open_tag 1
不建议您使用短标签(&lt;??&gt;)。你应该使用全长标签(&lt;?php?&gt;)。不推荐使用短语法,如果您想让您的应用程序可移植,则可能在其他服务器上不允许使用短打开标记,因此您的应用程序将会中断。
答案 1 :(得分:2)
short_open_tags
默认情况下,在最新版本的PHP中未启用。
编辑php.ini
或尝试
ini_set('short_open_tag', true);
一般情况下,由于许多服务器上没有启用它,出于兼容性原因,....长句,只是不要使用这种语法。
答案 2 :(得分:1)
根据您使用的php版本,您必须在php.ini中设置short_open_tag = 1
才能使<?=
正常工作:
来自http://ir1.php.net/ini.core:
short_open_tag boolean
...
注意:
该指令也影响了PHP 5.4.0之前的简写&lt;?=, 与&lt;?相同回声。 使用此快捷方式需要启用short_open_tag。 从PHP 5.4.0开始,&lt;?=始终可用。
答案 3 :(得分:0)
答案 4 :(得分:0)
简单地改变你的代码
<input type="text" id="inputUser" name="username" placeholder="Username" value="<?php echo $usern_value; ?>" />