首页 文章

可以't seem to find what'我的$ _POST错了

提问于
浏览
1

所以我正在尝试会话,这就是我的代码的样子:

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 回答

  • 0

    $_POST 是一个包含键/值字符串的映射(关联数组) - 而不是对象,因此行如下:

    $tmp = $_POST["user"]; 
    echo $tmp["name"];
    

    和:

    $_POST['user[name]'];
    

    不行 .

    此外,当您为 name 属性赋值为: user[name] 时 - 提交表单时,它将传递编码: user%5Bname%5D - 所以不要这样做:使用简单 name s表示HTML表单中的 input 字段 .

  • 0

    快速浏览一下,您似乎意味着使用会话变量而不是发布 .

    你有:

    value = '<?php  if(isset($_POST["user"])) {$tmp = $_POST["user"]; echo $tmp["name"]; } ?>'></td></tr>
    

    它应该是:

    value = '<?php  if(isset($_SESSION["userName"])) {echo $_SESSION["userName"]; } else { echo ''; } ?>'></td></tr>
    
  • -1

    您必须在调用任何会话之前启动会话 . 您的页面必须以session_start()开头;你不能像你一样陷入困境 . 请发布更多代码 .

相关问题