PHP指定的变量不显示

PHP指定的变量不显示,php,Php,下面是我的登录表单,它包含一个变量$login\u errors。 当用户出现登录错误时,将为变量分配文本 由于某种原因,如果在$form变量中调用,它不会显示任何文本 但是,我可以使用 $login_errors=”“; $out=“”; $form=” 登录或 或 " . $登录错误。“ 登录 记得我吗 " ; //检查用户是否已登录-重定向到 如果($user->isLoggedin()){ //用户已经登录,所以他们不需要在这里 $session->redirect(“/”); }

下面是我的登录表单,它包含一个变量
$login\u errors
。 当用户出现登录错误时,将为变量分配文本

由于某种原因,如果在
$form
变量中调用,它不会显示任何文本

但是,我可以使用
$login_errors=”“;
$out=“”;
$form=”
登录或

或 " . $登录错误。“ 登录 记得我吗

" ; //检查用户是否已登录-重定向到 如果($user->isLoggedin()){ //用户已经登录,所以他们不需要在这里 $session->redirect(“/”); } //在输出标记之前检查登录名 如果($input->post->user&&$input->post->pass){ $user=$sanitizer->username($input->post->user); $pass=$input->post->pass; $u=$users->get($user); //检查$pass中提供的密码是否等于tmp_pass 如果($u->id&&$u->tmp\u通行证&&$u->tmp\u通行证===$pass){ //用户使用tmp_通行证登录,因此将其更改为真实通行证 $u->of(假); $u->pass=$u->tmp\u pass; $u->save(); $u->of(真); $u=$session->login($user,$pass); 如果(美元){ //用户已登录,取消tmp_通行证 $u->of(假); $u->tmp_通行证=“”; $u->save(); //现在重定向到配置文件编辑页面 $session->redirect('/reset pass change/'); } } //如果用户未使用TMP密码登录,则正常进行。 elseif($session->login($user,$pass)){ //登录成功 $session->redirect(“/”); } 否则{ $login_errors.=“用户名或密码不正确”; $out.=$form; } } 否则{ $out.=$form; } ?>
首先,您应该为变量指定最终值,然后再将其放入字符串中。例如:

$var = '1';
$form = "The value is " . $var;
$var = '2';
echo $form;//Will output : The value is 1

从PHP脚本的顶部开始。
$login\u errors
的值是多少? 继续执行
$form
变量,此处
$login\u errors
的值是多少

在这两种情况下,它们都是空的,因此它“不显示”


您在哪里使用的
?再次从脚本顶部开始,确定它的值,您应该知道它为什么不是空的。

该变量包含一个空字符串。当您将该值设置为$login_error时,php字符串已经创建,并且不能以您认为的方式进行更改

用占位符替换字符串中的变量,并在获得$login\u errors的最终值后替换它:

<?php
$html = <<<HTML
    <h1>{{login_errors}}</h1>
HTML;


// more code

$login_errors = 'You made an error!';

echo str_replace(array('{{login_errors}}'), array($login_errors), $html);

对不起,我很困惑,请您详细说明。@Ankh2054:您正在将
$login\u errors=”“
分配给
$form
并且无论您如何处理
$login\u errors
之后,它将永远不会更改
$form
中的内容。您应该将
$form=“…
放在上次可能分配的
$login\u errors
之后。
<?php
$html = <<<HTML
    <h1>{{login_errors}}</h1>
HTML;


// more code

$login_errors = 'You made an error!';

echo str_replace(array('{{login_errors}}'), array($login_errors), $html);