2017-01-26 7 views
0

私のユーザ名のようなセッションに自分のデータベースから自分のuser_idを追加する方法を見つけ出そうとしていません。私がログインする際に、ログインに使用したユーザ名に基づいてユーザIDの投稿を呼び出すセッションを呼び出すことができます。Session mysqlにuser_idを追加する

どうすればいいですか?

私のログインPHP:home.phpに

<?php 

session_start(); 

$connect = mysql_connect("localhost", "user", "pass") or die('Database could not connect'); 
$select = mysql_select_db("database", $connect) or die('Database could not select'); 

if (isset($_POST['submit'])) { 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    chckusername($username, $password); 
} 

function chckusername($username, $password){ 

    $check = "SELECT * FROM users WHERE username='$username'"; 
    $check_q = mysql_query($check) or die("<div class='loginmsg'>Error on checking Username<div>"); 

    if (mysql_num_rows($check_q) == 1) { 
     chcklogin($username, $password); 
    } 
    else{ 
     echo "<div id='loginmsg'>Wrong Username</div>"; 
    } 
} 

function chcklogin($username, $password){ 

    $login = "SELECT * FROM users WHERE username='$username' and password='$password' "; 
    $login_q = mysql_query($login) or die('Error on checking Username and Password'); 



print_r($lohin_q); 

    if (mysql_num_rows($login_q) == 1){ 



     header('Location: http://ct6014-williams.studentsites.glos.ac.uk/pages-multi-page/home.php');   
     $_SESSION['username'] = $username; 
     $_SESSION['user_id'] = $userid; //this is where I want to store the user id 

    } 
    else { 
     echo "<div id='loginmsg'>Wrong Password </div>"; 

    } 
} 
?> 

<?php echo "Your username is " . $_SESSION["username"] . "."; ?>  
    <?php echo "Your id is " . $_SESSION["user_id"] . "."; ?> 

データベース名:

user_idusernameuser_first_nameuser_last_nameuser_emailpassworduser_reg_date

編集:

ああ、私はinclude( 'login.php');を使用しています。私はユーザーとしてログインしたときにセッションを作成しました。最初のユーザー名セッションのechosですが、私はuser_idセッションを設定することができません。

+0

あなたは 'home.php'でもセッションを開始する必要があります –

+0

ああ、私はinclude( 'login.php');私はユーザーとしてログインしたときにセッションを作成しました。最初のユーザー名セッションのechosですが、私はuser_idセッションを設定する方法を理解していないようです。 –

+0

ライブやライブに行く予定の場合はこのコードを使用しないでください。 –

答えて

1

関数では、mysql_fetch_array()関数を使用して結果セットから行を取り出し、必要なユーザーデータを$_SESSIONに割り当てます。だから、次のようにあなたのif (mysql_num_rows($login_q) == 1){ ...ブロックを変更

if (mysql_num_rows($login_q) == 1){ 
    $row = mysql_fetch_array($login_q); 
    $_SESSION['username'] = $row['username']; 
    $_SESSION['user_id'] = $row['user_id']; 
    header('Location: http://ct6014-williams.studentsites.glos.ac.uk/pages-multi-page/home.php'); 
    exit(); 
} else { 
    echo "<div id='loginmsg'>Wrong Password </div>"; 

} 


追記:mysql_*機能、彼らはPHP 5.5で廃止されており、PHP 7.0で完全に除去して使用しないでください。代わりにmysqliまたはpdoを使用してください。 And this is why you shouldn't use mysql_* functions

+0

私はmysql_fetch_arrayを実行する方法についてはあまりよく分かりませんが、私はそれに行くつもりです:)ありがとう! –

+0

ああ、気にしない:)「chcklogin()」の部分でちょっと混乱しましたが、脳のおならがありました。 –

+0

ありがとうございましたx –

関連する問題