2014-03-03 66 views
2

大家好我是PHP的新手,我正在尝试在php中创建一个非常小的应用程序我想要在php中使用会话的用户的用户名userid我按照以下步骤

我在我的应用程序创建这些类

我第一类是数据库管理器,我在模型文件夹放置

public function executeQuery($query) { 
     $result = mysql_query($query); 
     if ($result === false) { 
      $this->closeConnection($this->conn); 
      exit; 
     } 
      // extract data from results, returning an associative array 
      $rows = Array(); 
      while ($row = mysql_fetch_assoc($result)) {   
       $rows[] = $row; 
      } 
      return $rows; 
} 

,然后创建这两个类

首先是loginManager

class LoginManager 
{ 

    function checkLogin($arr) 
    { 
     require_once(FRONT_ROOT_PATH.'DatabaseManager.php'); 
     $query ="Select * from tbusers where username='".$arr['username']."' and password='".$arr['password']."'"; 
     $db= new DatabaseManager(); 
     $result=$db->executeQuery($query); 
     return $result; 
    } 
} 

和第二被LoginInit

<?php 
session_start(); 
include(LIB_PATH."Login/LoginManager.php"); 

    if(isset($_POST['addlogin'])) 
    { 
     $obj= new LoginManager(); 
     $userlist=$obj->checkLogin($_POST); 
    if(Count($userlist)>0) 
    { 
     $_SESSION['uid']=$userlist['userid']; 
     header('location:/ProjectDream/view/home/home.php'); 
    } 
    else 
    { 
     echo "Login Failed"; 
    } 
    } 
} 

在这个类我加了会议,并在那之后我称之为PHP页面上的这些类

<?php 
include('Include/config.inc.php'); 
include(LIB_PATH."Login/Logininit.php"); 

?> 
<html> 

<head> 


    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

    <title>Login</title> 

    <!-- CSS --> 

    <link rel="stylesheet" href="css/reset.css"> 
    <link rel="stylesheet" href="css/animate.css"> 
    <link rel="stylesheet" href="css/styles.css"> 

</head> 

    <!-- Main HTML --> 

<body> 

    <!-- Begin Page Content --> 

    <div id="container"> 

    <form action="" method="post"> 
     <input type="hidden" name="addlogin"/> 
     <label for="name">Username:</label> 

     <input type="name" name="username"> 

     <label for="username">Password:</label> 

     <p><a href="#">Forgot your password?</a> 

     <input type="password" name="password"> 

     <div id="lower"> 

     <input type="checkbox"><label class="check" for="checkbox">Keep me logged in</label> 

     <input type="submit" value="Login"> 

     </div> 

     </form> 

    </div> 


    <!-- End Page Content --> 

</body> 

</html> 

和当用户登录我送用户home.php页面我写home.php

验证码
<?php 

    session_start(); 
    if(isset($_SESSION['uid'])) 
    { 

     echo $_SESSION['uid']; 
    } 
    else 
    { 
     echo "No Session "; 
    } 
?> 

现在,当我运行该应用程序,然后它告诉我在没有我的价值$ _SESSION变量 是否有可能在PHP呼吁一流水平的会议。请告诉我,我怎么可以在这里使用会话 感谢

+0

,你必须为$ _SESSION分配值“UID”]? – Ashish

+0

检查我的代码中的登录管理器类我从那里获取@Ashish –

+0

您没有在代码中的任何位置设置任何$ _SESSION变量,您试图从中获取值,但不会将任何值放入其中 – CodeBird

回答

0

尝试这样它应该工作:

$_SESSION['uid']=$userlist[0]['userid']; 

在您的代码:

 while ($row = mysql_fetch_assoc($result)) {   
     $rows[] = $row; 
    } 

所以你有$rows[0]=$row你加入$row$rows;然后$rows[1]=$row;

所以实际上$rows['userid']没有设置,它是$rows[0]['userid']被设置

+0

谢谢你哦,它很工作:) –

0

到的值分配应在等式的左边varible。 所以 变化

$userlist['userid']=$_SESSION['uid']; 

$_SESSION['uid']=$userlist['userid']; 
+0

它不工作没有得到什么 –

+0

你在哪里使用$ _SESSION ['uid']? – krishna

+0

检查我更新的问题 –

0

必须从数据库中读取值时,一些值赋给$_SESSION['uid']。喜欢的东西:

$_SESSION['uid'] = $row['uid']; 

还要注意的是,当你想从$_SESSION变量使用的数据,你必须调用session_start()

相关问题