2012-05-28 3 views
0

Я изучаю, как сделать страницу входа, где я узнал больше информации о том, как работают сессии. Я искал вокруг разных сайтов, пока не нашел тот, который принес успех. Однако после успешного входа в систему я хочу настроить, где пользователь может нажать на свой профиль, отредактировать профиль, настроить учетную запись и выйти из системы после входа в систему. Выход из системы не имел проблем, но ссылка на профиль не показывалась.PHP Login using Session

Вот чек тест Логин:

ob_start(); 
// To protect MySQL injection (more detail about MySQL injection) 
$email = stripslashes($email); 
$password = stripslashes($password); 
$email = mysql_real_escape_string($email); 
$password = mysql_real_escape_string($password); 

$sql="SELECT * FROM users WHERE email='$email' and password='$password'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 

// If result matched $username and $password, table row must be 1 row 
if($count==1){ 

// Register $username, $password and redirect to file "login_success.php" 
session_register('email'); 
session_register('password'); 
session_register('userID'); // Tried and didn't work 
session_register('lastlogin'); // Tried and didn't work 

ob_end_flush(); 

Это на главной странице

session_start(); 

// See if they are a logged in member by checking Session data 
$userlinks = ""; 

if (isset($_SESSION['email'])) { 
    // Put stored session variables into local php variable 
    $userID = $_SESSION['userID']; 
    $username = $_SESSION['username']; 
    $lastlogin = $_SESSION['lastlogin']; 

    //If session is successful, the following is available: profile, last login, account and logout. 
    $userlinks = ' 
    <a href="testuser.php?userID=' . $_SESSION['userID'] . '">' . $_SESSION['email'] . '</a> &bull; (' . $_SESSION['lastlogin'] . ') 
    <a href="testuser_account.php">Account</a> &bull; 
    <a href="testlogout.php">Log Out</a>'; 
} else { 
    // If session failed, see if the user has a Damju account. 
    $userlinks = 'Have an account? <a href="testlogin.php">Click Here</a> <br/> Not registered? <a href="testreg.php">Click Here</a>'; 
} 

Это то, что я хочу: (a href="testuser.php?userID=#")username(/a)

Как вы можете видеть, что я пытался чтобы понять себя, поэтому я бы не хотел, чтобы я не пытался.

Ссылки

P.S: Я просмотрел другие ссылки, но они были почти сделаны по-разному. Confusing ...

Спасибо всем, кто понимает и жаль, если вы этого не сделаете.

+2

шаг 1: прекратить использование mysql_ и начать использовать PDO или MSQLI –

+2

ПРЕДУПРЕЖДЕНИЕ: использование session_register() не рекомендуется. Эта функция устарела. Вместо этого используйте глобальную переменную $ _SESSION для хранения переменных сеанса. – arijeet

+0

Итак, измените session_register ('email') на $ _SESSION ['email']? – taeja87

ответ

0

Установить идентификатор пользователя, используя

$_SESSION['userid'] = $userid; 

тогда Вы сможете получить доступ к переменной сессии из любой точки мира до тех пор, как начала сеанса на каждой странице

session_start(); 

с использованием

$_SESSION['userid']; 

например

$userid= $_SESSION['userid']; 
echo $_SESSION['userid']; 

, если вы даже хотите, чтобы увидеть, что находится в сессии вобще

print_r($_SESSION); 

, когда ваш пользователь выходит из системы убедитесь, что вы сбросить то переменная уничтожить сессию

unset($_SESSION['userid']); 
session_destroy();