2014-08-27 2 views
0

그래서 대학 프로젝트의 마지막 단계 ... 세션에서 종속 테이블에 값을 가져 오려고합니다. 예를 들어 전자 메일과 암호를 입력하면 리디렉션되는 다음 페이지에는 이름이 두 개 있습니다.현재 세션에서 이름을 얻으십시오. 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

원하는 곳에서 echo $_SESSION['firstName'] 할 수있는'PLZ http://stackoverflow.com/questions/1390607/how-could-i-change 볼 mysqli_''로 전환 사용되지 않는 mysql_'is -this-mysql-mysqli – JaMaBing

+0

'session_register'도 역시 사용되지 않습니다. 어디에서 그 레거시 코드를 가지고 : - – DanFromGermany

답변

2

session_register()session_unregister() 대단히 감사합니다 그들을 사용하지 마십시오. 사용자가 다음 이름을 인쇄 할 때 바로 사용자의 이름을 에코

 echo $_SESSION['usernmae']; 
+0

나는 이것을 시도해 줄께 대단히 감사합니다! – MikeStardust

+0

추가적으로 mysql_ *도 사용되지 않으므로 pdo 또는 mysqli를 사용하는 것이 좋습니다. –

0

을 사용하여이

 $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"; 
     } 

과 같이 사용하는 데이터베이스에 존재하는 경우가 확인되면

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

사용 세션에 등록 된 현재 세션에서 저장된 변수를 읽으십시오 :

echo $_SESSION['myusername']; 
+0

먼저 설정하지 않고 이와 같이 액세스 할 수 없습니다. –

+0

코드가 이미 설정되었습니다. session_register ("myusername"); –

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"); 
    } 

그럼 당신은 당신이

관련 문제