php - 警告:非法字符串偏移 'save_username'
问题描述
我们正在将一个 php 应用程序从 5.4 迁移到 7.2,并且我们有一个警告我们想摆脱:
警告:非法字符串偏移 'save_username'
我已经尝试删除引号,添加双引号,将变量设置为字符串(而不是 1 只是“1”),但没有成功。
这是我们正在使用的代码,警告在下面代码的这一行中:if ($vars['save_username'] == 1)
function login_form($vars = "") {
if ($vars == "") {
// check if the username is saved via cookie
if ($_COOKIE["username"] != "") {
$username = $_COOKIE["username"];
$save_username = true;
}
} else {
$username = $vars['username'];
}
if ($vars['save_username'] == 1) {
$save_username = true;
}
?>
<br><br>
<form action="login.php?op=login" method="post">
<table cellspacing="3" cellpadding="3" border="0" align=center>
<tr>
<td colspan=2 align=center><font class=title><b>Login</b></font>
<br><br><br>
</td>
</tr>
<tr>
<td width=80 nowrap valign=baseline>Email:</td>
<td width=240><input type="text" name="username" size=30 value="<?php echo stripslashes($username) ?>" /><br>
<font class=smallest_font>ie. user@user.com</font>
</td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" size=30/></td>
</tr>
<tr>
<td></td>
<td><input type="checkbox" name="save_username" value=1 <?php if ($save_username) echo "checked" ?>> Remember my login</td>
</tr>
<tr>
<td colspan=2 align=center><br><input type="submit" name="login" value="Login" class="button"/>
<input type="reset" value="Reset" class="button" /></td>
</tr>
<tr>
<td colspan=2 align=center><br>
<?php if(isset($err)) {
echo "<br />\n<span class=\"dark_red\">$err</span><br />";
} ?>
</td>
</tr>
</table>
</form>
<br />
解决方案
推荐阅读
- logging - 在 dlt-daemon 未运行时终止 dlt 客户端
- python - 在 Python 中绘制变量的“堆叠”密度分布,按 0 或 1 分类
- python - 获取 NameError:名称未定义。它与变量的状态有什么关系吗?
- javascript - 决定是否应呈现组件的函数接受用户输入。用户是 GET 请求的结果,因此无法立即使用
- javascript - 数据源无法使用分页映射到转换后的 json
- react-native - React Native Expo CLI:地图视图在独立应用程序上崩溃
- ruby - Rake 因零失败的测试用例而中止
- data-structures - B树可以采用二叉树的形式吗
- docker - docker compose 与容器的通信
- php - 通过查询截断表范围的更快方法?