Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示来自$\u会话的用户名和用户id_Php_Mysql_Session - Fatal编程技术网

Php 显示来自$\u会话的用户名和用户id

Php 显示来自$\u会话的用户名和用户id,php,mysql,session,Php,Mysql,Session,我在回显我的$\u会话['user\u name']时遇到问题。我注意到,如果我以确定是否登录的形式从if语句中删除“!”,则在第二次登录后它会工作: if(!isset($\u会话['LOGIN\u STATUS']) 然而,尽管这对我来说毫无意义,但它也禁用了注销功能,因此我试图避免这种情况。我还想知道,如果将用户名以单独的形式填充,这是否是一个问题 我也无法使用$\u SESSION['user\u id']返回任何值。我尝试了很多方法,包括使用PDO::FETCH\u NUM检查拼写和验

我在回显我的
$\u会话['user\u name']
时遇到问题。我注意到,如果我以确定是否登录的形式从if语句中删除“!”,则在第二次登录后它会工作:

if(!isset($\u会话['LOGIN\u STATUS'])

然而,尽管这对我来说毫无意义,但它也禁用了注销功能,因此我试图避免这种情况。我还想知道,如果将用户名以单独的形式填充,这是否是一个问题

我也无法使用
$\u SESSION['user\u id']
返回任何值。我尝试了很多方法,包括使用PDO::FETCH\u NUM检查拼写和验证我的表凭据,但仍然一无所获

到目前为止,用户名和密码的验证有效,但在当前代码中回显
$\u会话['user\u name']
$\u会话['user\u id']
时不会返回任何内容:

PHP:


表格:


用户名:
密码:

欢迎
用户ID: 项目: 选择一个项目。。。 ...

如果您想知道“…”只是代表了更多不必要的形式。

来自PHP官方文档:

要使用基于cookie的会话,必须在将任何内容输出到浏览器之前调用会话_start()


在表单页面中,在内容发送到输出后调用session\u start。在编写HTML之前,必须调用session\u start。

您需要先学习基础知识。@universe也许是这样。.我对这一点不太熟悉,只是在寻找正确的方向。我这么说并不是为了阻止您,我这么说是因为您的问题太复杂了在这里回答。继续尝试。阅读一些教程,观看视频等。。。
<?php
session_start();
require_once('php/config.php');

if(isset($_POST['submit'])){
  $username = $_POST['user_name'];
  $password = $_POST['pwd'];

  $stmt = $con->prepare("SELECT * FROM tapp_login WHERE username = ? AND password = ? LIMIT 1");
  $stmt->bind_param('ss', $username, $password);
  $stmt->execute();
  $stmt->bind_result($username, $password);
  $stmt->store_result();
  if($stmt->num_rows == 1){  //To check if the row exists
    $row = $stmt->fetch(PDO::FETCH_NUM); //fetching the contents of the row
    $_SESSION['LOGIN_STATUS']=true;
    $_SESSION['user_id'] = $row['user_id'];
    $_SESSION['user_name'] = $username;              
    echo 'true';  
  }
  else {
    echo 'false';
  }
  $stmt->close();
}
else{
}
$con->close();
?>
<body>
<fieldset id="login_form_wrap" class="login_form_header">
  <legend><a href='projects.php'>CUSTOMER LOGIN</a></legend>
  <?php session_start();
  $_SESSION['timeout'] = time();?>
  <div id="profile"> 
  <!--If not logged in-->  
  <?php if(!isset($_SESSION['LOGIN_STATUS']) || ($_SESSION['timeout'] + 600 < time())){?>
    <div id="login_a">
      <a id="login_profile" href="#">click to login</a>
    </div>
  <!--Else if logged in-->
  <?php }else {;?>
  <a href='logout_session.php' id='logout'>Logout</a>
  <!--header('location: dashboard.php');-->
  <?php } ?>
  </div>
  <form action="login_validation.php" id="login_form" method="POST">
    <div id="login_b">
      <div class="welcome"></div>
      <span class="col1">USER NAME:</span>
      <input type="text" id="user_name" name="user_name" class="input" required />
      <span class="col1">PASSWORD:</span>
      <input type="password" id="password" name="password" class="input" required />
      <span class="col1"></span>
      <input type="submit" name"submit" id="login_validation" value="SUBMIT" />
      <input type="reset" id="cancel_hide" value="CANCEL" />
      <div id="add_err"><br></div>
    </div>
  </form>
  <form action="project_validation.php" id="projects_form" method="POST">
  <div id="projects">

    <!-------------------------- Does not work ------------------------->
    <div class="welcome">Welcome <?php echo $_SESSION['user_name'];?><br>
    User ID: <?php echo $_SESSION['user_id'];?></div>  


    <span class="col1">PROJECTS:</span>
    <select id="Projects" name="Projects" class="input">
    <option id="project" name="project" value="" selected="selected" disabled='disabled'>Choose a Project...</option>

    ...

    </select>  
  </div>
  <span class="col1"></span>          
  <input type="submit" name="select" id="project_validation" value="SELECT" />
  <div id="add_err"><br></div> 
  </form>
</fieldset>
</body>