2014-08-27 3 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 осуждается плз переключиться на' mysqli_' смотреть на http://stackoverflow.com/questions/1390607/how-could-i-change -this-mysql-to-mysqli – JaMaBing

+0

'session_register' также устарел. Где у вас есть этот унаследованный код от: -S – DanFromGermany

ответ

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

+0

Дополнительные mysql_ * также устарели, поэтому лучше использовать pdo или mysqli. –

0

Повторяя имя пользователя зарегистрированный в сессии, просто прочитайте сохраненную переменную в текущем сеансе:

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

Тогда вы можете echo $_SESSION['firstName'], где вы хотите

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