2014-08-27 64 views
0

因此,它是大学项目的最后一步...... 我试图从依赖会话的mysql表中获取值。 例如,你输入你的电子邮件和密码,你重定向的下一页有两个你的名字。 我使用这个脚本登录检查:从当前会话中获取名字PHP

<?php 
    ob_start(); 
    $host="localhost"; 
    $username="***"; 
    $password="***"; 
    $db_name="***"; 
    $tbl_name="usersWebsite"; 

    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 

    $myusername=$_POST['myusername']; 
    $mypassword=$_POST['mypassword']; 

    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 
    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; 
    $result=mysql_query($sql); 

    $count=mysql_num_rows($result); 

    if($count==1){ 
     session_register("myusername"); 
     session_register("mypassword"); 
     header("location:login_success.php"); 
    } 
    else { 
     echo "Wrong Username or Password"; 
    } 
    ob_end_flush(); 
?> 

,我用这个短代码来创建会话:

<?php 
    session_start(); 
    if(!session_is_registered(myusername)){ 
     header("location:main_login.php"); 
    } 
?> 
<meta http-equiv="refresh" content="0; url=http://starkwave.com/main/dashboard" /> 

上了车的教程中的代码在线和它适应于我的情况 我想在PHP页面呼应的是登录的用户的名字, 非常感谢您

+0

'mysql_'is弃用PLZ切换到'mysqli_'看http://stackoverflow.com/questions/1390607/how-could-i-change -this-mysql-to-mysqli – JaMaBing 2014-08-27 15:25:52

+0

'session_register'也被弃用。你从哪里得到遗留代码:-S – DanFromGermany 2014-08-27 15:28:48

回答

2

session_register()session_unregister()将在未来不再工作,所以不要不会使用它们。使用

$_SESSION['myusername']='give your name'; 

如果用户在数据库中存在,那么这样使用

 $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; 
     $result=mysql_query($sql); 


     $count=mysql_num_rows($result); 

     if($count==1){ 
      $data= mysql_fetch_array($result); 
      $_SESSION['usernmae']=$data['name_in_database'];/* put here name of column in database*/ 
      header("location:login_success.php"); 
      exit(); 
     } 
     else { 
      echo "Wrong Username or Password"; 
     } 

,当你想打印的名称只使用

 echo $_SESSION['usernmae']; 
+0

我会试试这个,非常感谢你! – MikeStardust 2014-08-27 15:30:11

+0

另外mysql_ *也被弃用,所以最好使用pdo或mysqli。 – 2014-08-27 15:30:29

0

呼应用户的名称,当你检查在会议中注册,只需读取当前会话中保存的变量:

echo $_SESSION['myusername']; 
+0

如果不先设置它,你不能访问它 – 2014-08-27 15:49:06

+0

在他的代码已设置 session_register(“myusername”); – 2014-08-28 13:29:21

0

那么,在会话中,您将注册字符串“myusername”,而不是变量$ myusername,并保存实际的用户名。

你可以做$ _SESSION [“myusername”] = $ myusername;

0

首先,您必须在验证身份时将用户的名字添加到会话中

if($count==1){ 
     session_register("myusername"); 
     session_register("mypassword"); 
     $_SESSION['firstName'] = "abc"; // set the first name that you get from form or somewhere else 
     header("location:login_success.php"); 
    } 

然后你可以echo $_SESSION['firstName']要从哪里