2017-01-26 6 views
0

Я пытаюсь не понять, как добавить мой user_id из моей базы данных в сеанс, например, мое имя пользователя. Я бы хотел, чтобы это было, когда я вхожу в систему. Я могу вызвать сеанс для вызова сообщений пользователя на основе имени пользователя, используемого для входа.Добавление user_id в сеанс mysql

Как это сделать?

мой Логин 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>"; 

    } 
} 
?> 

на home.php:

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

имена баз данных:

user_id, username, user_first_name, user_last_name, user_email, password, user_reg_date

EDIT:

Аааа, я забыл сказать, я использовал включают ('login.php'); который создал сеанс, когда я вошел в систему как пользователь. Первая сессия Имя пользователя отголоски, но я не могу показаться, чтобы выяснить мотыгу настроить user_id сеанс

+0

вам нужно запустить сеанс в 'home.php' также –

+0

Ahh, я забыл сказать, что я использовал include ('login.php'); который создал сеанс, когда я вошел в систему как пользователь. Первые эхо-сеансы имени пользователя, но я не могу понять, как настроить сеанс user_id –

+0

и не использовать этот код, если вы живете или собираетесь жить вживую –

ответ

1

В chcklogin() функции, используйте 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>"; 

} 

Sidenote: Не используйте 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 –

Смежные вопросы