PHP不会以速记方式输出值

时间:2014-03-20 16:39:47

标签: php html input

我有一个奇怪的问题,我试图以简写的方式使用PHP来输出会话中保存的值。 (基本上,如果您在注册时输入用户名和电子邮件地址,但是您收到的电子邮件地址有误,而不是清除用户名字段,那么它应该保留,然后您只需要记录错误的详细信息。)

这就是我对输出的看法:

value="<?=$usern_value;?>"

我的意见是:

<input type="text" id="inputUser" name="username" placeholder="Username" value="<?=$usern_value;?>" />

但它输出了这个:

enter image description here

这是创建$usern_value的值的地方:

<?php 
   if(isset($_SESSION['status']['register']['username'])){
        $usern_value = $_SESSION['status']['register']['username'];
   } else {
        $usern_value = "";
   }
?>

5 个答案:

答案 0 :(得分:5)

试试这个

value="<?php echo $usern_value;?>"

因为你的php版本中没有启用简写。我所以你需要在配置文件php.ini中启用short_open_tag选项。你可以尝试下列之一

  • 在php.ini中设置指令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)

value="<? echo $usern_value; ?>"

并确保您已启用php以使用速记。见here

答案 4 :(得分:0)

简单地改变你的代码

<input type="text" id="inputUser" name="username" placeholder="Username" value="<?php echo $usern_value; ?>" />