2014-08-27 65 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']要從哪裏