我在第7行遇到错误语法错误,意外的T_CONSTANT_ENCAPSED_STRING
<div id='login_form_container'>
<div class='dInlineB' align="left">
<label class='login_form_label' for='email'>Email:</label>
<input type='email' name='email' id='email' tabindex="1" class='login_form_input'<?=(isset($_POST['email']) ? " value='']."'" : "");?>
</div>
<div class='dInlineB' align="left">
<label class='login_form_label' for='password'>Password:</label>
<input type='password' name='password' id='password' tabindex="2" class='login_form_input' />
</div>
<div align="left">
<div class='login_form_spacer'> </div>
<div class='dInline fs11'>
<label for='login_form_stay'>
<input type='checkbox' name='stayLogged' tabindex="3" checked='checked' value='1' id='login_form_stay' />
Keep me logged in
</label>
</div>
<input type='email' name='email' id='email' tabindex="1" class='login_form_input'<?=(isset($_POST['email']) ? " value='']."'" : "");?>
格式错误,请参阅以下正确的行:
<input type='email' name='email' id='email' tabindex="1" class='login_form_input'<?=(isset($_POST['email']) ? " value='".$_POST['email']."'" : "");?>>
SO上突出显示的代码已经显示了您的错误所在。您错过的是将$_POST
中的值添加到您的输入中。为了在字符串中添加PHP变量,您必须像这样附加PHP:"this is a string" . $variable . " continued string"
或单引号:'this is a string' . $variable . ' continued string'
。
使用双引号还是单引号取决于您是否希望也能够内联使用变量,这适用于双引号,但不适用于单引号:"this $variable works inline" . 'but the $variable doesn't work here'
。有关双引号/单引号的更多信息:PHP中的单引号和双引号字符串有什么区别?
像一样重写行
<input type='email' name='email' id='email' tabindex="1" class='login_form_input'<?=(isset($_POST['email']) ? " value='".$_POST['email']."'" : "");?>>
您可以替换:
<input type='email' name='email' id='email' tabindex="1" class='login_form_input'<?=(isset($_POST['email']) ? " value='']."'" : "");?>
带有:
<input type='email' name='email' id='email' tabindex="1" class='login_form_input'value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" >
用替换此行
<input type='email' name='email' id='email' tabindex="1" class='login_form_input'<?=(isset($_POST['email']) /? " value='']."'" : "");?>