所以我正在尝试会话,这就是我的代码的样子:
session_id($username);
session_start();
$_SESSION['logged_in'] = true;
$_SESSION['time_logged_in'] = time();
$_SESSION['userName'] = $_POST['user[name]'];
我的表单看起来像这样:
<form method="POST" action="login.php">
<table>
<!--Text input for login-->
<tr><td>Username:</td>
<td><input type = 'TEXT'
name = 'user[name]'
value = '<?php if(isset($_POST["user"])) {$tmp = $_POST["user"]; echo $tmp["name"]; } ?>'></td></tr>
我尝试过$ _POST ['user']和$ _POST ['user'] ['name']的组合
错误代码:注意:未定义的索引:第22行的C:\ xampp \ htdocs \ Assignment_3 \ login.php中的用户[名称]
任何帮助将不胜感激 .
3 回答
$_POST
是一个包含键/值字符串的映射(关联数组) - 而不是对象,因此行如下:和:
不行 .
此外,当您为
name
属性赋值为:user[name]
时 - 提交表单时,它将传递编码:user%5Bname%5D
- 所以不要这样做:使用简单name
s表示HTML表单中的input
字段 .快速浏览一下,您似乎意味着使用会话变量而不是发布 .
你有:
它应该是:
您必须在调用任何会话之前启动会话 . 您的页面必须以session_start()开头;你不能像你一样陷入困境 . 请发布更多代码 .