使用单独的链接php文件获取当前会话信息

使用单独的链接php文件获取当前会话信息,php,html,mysql,session,echo,Php,Html,Mysql,Session,Echo,这是Select在文件中显示的唯一时间 function GetUserFromEmail($email,&$user_rec) { if(!$this->DBLogin()) { $this->HandleError("Database login failed!"); return false; } $email = $this->SanitizeForSQL($email); $res

这是Select在文件中显示的唯一时间

function GetUserFromEmail($email,&$user_rec)
{
    if(!$this->DBLogin())
    {
        $this->HandleError("Database login failed!");
        return false;
    }   
    $email = $this->SanitizeForSQL($email);

    $result = mysql_query("Select * from $this->tablename where email='$email'",$this->connection);  

    if(!$result || mysql_num_rows($result) <= 0)
    {
        $this->HandleError("There is no user with email: $email");
        return false;
    }
    $user_rec = mysql_fetch_assoc($result);


    return true;
}
函数GetUserFromEmail($email,&$user\u rec) { 如果(!$this->DBLogin()) { $this->HandleError(“数据库登录失败!”); 返回false; } $email=$this->SanitizeForSQL($email); $result=mysql_查询(“从$this->tablename中选择*,其中email='$email'”,$this->connection); if(!$result | | mysql_num_rows($result)HandleError(“没有用户使用电子邮件:$email”); 返回false; } $user\u rec=mysql\u fetch\u assoc($result); 返回true; } 而且

function CheckLoginInDB($username,$password)
{
    if(!$this->DBLogin())
    {
        $this->HandleError("Database login failed!");
        return false;
    }          
    $username = $this->SanitizeForSQL($username);

$nresult = mysql_query("SELECT * FROM $this->tablename WHERE username = '$username'", $this->connection) or die(mysql_error());
    // check for result 
    $no_of_rows = mysql_num_rows($nresult);
    if ($no_of_rows > 0) {
        $nresult = mysql_fetch_array($nresult);
        $salt = $nresult['salt'];
        $encrypted_password = $nresult['password'];
        $hash = $this->checkhashSSHA($salt, $password);


    }


    $qry = "Select name, email from $this->tablename where username='$username' and password='$hash' and confirmcode='y'";

    $result = mysql_query($qry,$this->connection);

    if(!$result || mysql_num_rows($result) <= 0)
    {
        $this->HandleError("Error logging in. The username or password does not match");
        return false;
    }

    $row = mysql_fetch_assoc($result);


    $_SESSION['name_of_user']  = $row['name'];
    $_SESSION['email_of_user'] = $row['email'];
    $_SESSION['phone_of_user'] = isset($row['phone'])?$row['phone']:'phone not set';


    return true;
}
函数checkLoginDB($username,$password)
{
如果(!$this->DBLogin())
{
$this->HandleError(“数据库登录失败!”);
返回false;
}          
$username=$this->SanitizeForSQL($username);
$nresult=mysql\u query(“从$this->tablename中选择*其中username='$username',$this->connection)或die(mysql\u error());
//检查结果
$no_of_rows=mysql_num_rows($nresult);
如果($no\u of\u rows>0){
$nresult=mysql\u fetch\u数组($nresult);
$salt=$nresult['salt'];
$encrypted_password=$nresult['password'];
$hash=$this->checkhashSSHA($salt,$password);
}
$qry=“选择名称,从$this->tablename发送电子邮件,其中username='$username'和password='$hash'和confirmcode='y';
$result=mysql\u查询($qry,$this->connection);
if(!$result | | mysql_num_rows($result)HandleError(“登录时出错。用户名或密码不匹配”);
返回false;
}
$row=mysql\u fetch\u assoc($result);
$\u会话['u用户的名称]=$row['name'];
$\会话['email\ of\ u user']=$row['email'];
$\会话['phone\ u of\ u user']=isset($row['phone'])?$row['phone']:'phone not set';
返回true;
}
此外,这也是唯一一次显示$row

<p id="mobilecheck" align="center"> Willkommen z&uuml;ruck <? echo $fgmembersite->UserFullName(); ?>! </br>

Willkommen zü;ruck

Willkomen用户电话();?>! Willkommen züruck UserEmail();?>!

Rick, 我将在这里介绍,以便您更好地理解。出于调试目的,请执行以下操作:

  • 将以下内容替换为:
    $\u会话['phone\u of_user']=$row['phone'];
    设置为:
    $\u会话['phone\u of_user']=$row;//这将在变量中放置整个数组

  • 而不是:

  • Willkommen!

    写下:

    关于这一点:


    是否确实设置了$row['phone']?如果您收到$row['phone']的未定义索引通知,您的$\u会话变量将不会被设置,并且将始终写入一个空字符串。您可以执行以下操作:$\u会话['phone\u of_user']=isset($row['phone'])?$row['phone']:'phone not set';并查看它是否实际工作。您是否习惯会话的启动()功能位于页面顶部?如果您没有使用它,那么您将无法通过页面和网站访问会话的值。请在W3CSchool中检查会话。@PHPWeblineindia我很确定他使用了它。他抱怨说,只有电话号码不起作用,其余的$会话变量起作用工作。
    $row['phone']
    是否从数据库中选择了正确的列名我尝试了$\u会话['phone\u of_user']=isset($row['phone'])?$row['phone']:'phone not set';未更改。用户名和UserEmail显示的地方,UserPhone仍然是空的。如果它们三个写得完全相同,理论上,如果其中一个被设置,它们不应该都被设置吗?我替换了你建议的两行。这是一种进步。现在不再简单地将其返回“数组”为空@Rick我更新了最后一行代码。再次替换它。现在的输出是什么?这是更新的行的输出…….Array[name]=>testname[email=>richard.t。rohrig@gmail.com])!……我看到数组中没有包含phone。我可以做些什么来包含它?@Rick告诉我最后一行是否将你的phone带到了你使用它的数组中。如果是,请返回到你以前的代码(在你询问stackoverflow之前),并只更新我回答中的$qry变量。这将达到你想要的效果。:)
    <p id="mobilechiiieckby" align="center"><pre><?php print_r($_SESSION['phone_of_user']); ?>!</pre></p>
    
    $qry = "Select name, email from $this->tablename where username='$username' and password='$hash' and confirmcode='y'";
    
    $qry = "Select name, email, phone from $this->tablename where username='$username' and password='$hash' and confirmcode='y'";