Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z sesja - Object of class User could not be converted to string.
rahul
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 5.03.2011

Ostrzeżenie: (0%)
-----


Witam. Stawiajac swoje pierwsze kroki w php OOP nie obylo sie dlugo zanim natknalem sie na pierwszy powazniejszy problem.
Otoz robie klase ktora jest wywolywana na kazdej stronie/podstronie - jest to klasa do Logowania i sprawdzania sesji. Jednak gdy ustawiam po zalogoaniu nowa sesjie - $_SESSION['user'] = $user_id; przy jakiejkolwiek probie wyechowania tej sesji dostaje blad "Object of class User could not be converted to string." Jest jeden wyjatek, moge ja wyechowac w funkcji w ktorej ja ustawiam. Tylko tyle. Probowalem troche z serializacja, ale nie wiem czy sie dobrze za to zabieralem.

Oto kod:


$user = new User;
$user_id = $user -> login(@$_POST['user_name'] , @$_POST['user_password']);
$status = $user -> checkCurrentSession();


class User {
function __construct() {
session_start();
}

function checkCurrentSession() {

if ( isset($_SESSION['user'])) {

echo $_SESSION['user']; // NO I TU DUPA :/
}else{

return false;
}

}

function login($user, $password) {

if ( isset ($user) && isset ($password) ) {
$user_id = $this -> checkLoginData($user, $password);

if( $user_id != false) {

$_SESSION['user'] = $user_id;


}else{

echo "wrong user";
}

}

}

function checkLoginData($user,$password) {

// conecting to the database.
// check for user id and return it.

// hardCoded validation ->
if ($user == "dupa" && $password == "dupa") {


return $user;

}elseif ($user == "admin" && $password =="admin" ) {


return $user;

}else {

return false;



}
}

function logout () {


if ( isset ($_SESSION['user']) ) {

$_SESSION['user'];
unset($_SESSION['user']);
session_destroy();
echo "sucesfully loged out";
}else{

echo "Sesion does not exist. Error.";

}
}

}
Dodatkowo dodam, przechodzac na strone admina - sprawdzanie typu if ( $_SESSION['user'] == "admin") tez nie dziala :/ Wtf ?!
Help ?!

Ten post edytował rahul 7.03.2011, 08:45:37
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Rid
post
Post #2





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


  1. if ($_POST) {
  2. $user = new User;
  3. $user_id = $user -> login(@$_POST['user_name'] , @$_POST['user_password']);
  4. $status = $user -> checkCurrentSession();
  5.  
  6.  
  7. class User {
  8. function __construct() {
  9. }
  10.  
  11. function checkCurrentSession() {
  12.  
  13. if ( isset($_SESSION['user'])) {
  14.  
  15. echo $_SESSION['user']; // NO I TU DUPA :/
  16. }else{
  17.  
  18. return false;
  19. }
  20.  
  21. }
  22.  
  23. function login($user, $password) {
  24.  
  25. if ( isset ($user) && isset ($password) ) {
  26. $user_id = $this -> checkLoginData($user, $password);
  27.  
  28. if( $user_id != false) {
  29.  
  30. $_SESSION['user'] = $user_id;
  31.  
  32.  
  33. }else{
  34.  
  35. echo "wrong user";
  36. }
  37.  
  38. }
  39.  
  40. }
  41.  
  42. function checkLoginData($user,$password) {
  43.  
  44. // conecting to the database.
  45. // check for user id and return it.
  46.  
  47. // hardCoded validation ->
  48. if ($user == "dupa" && $password == "dupa") {
  49.  
  50.  
  51. return $user;
  52.  
  53. }elseif ($user == "admin" && $password =="admin" ) {
  54.  
  55.  
  56. return $user;
  57.  
  58. }else {
  59.  
  60. return false;
  61.  
  62.  
  63.  
  64. }
  65. }
  66.  
  67. function logout () {
  68.  
  69.  
  70. if ( isset ($_SESSION['user']) ) {
  71.  
  72. $_SESSION['user'];
  73. unset($_SESSION['user']);
  74. echo "sucesfully loged out";
  75. }else{
  76.  
  77. echo "Sesion does not exist. Error.";
  78.  
  79. }
  80. }
  81.  
  82. }}

Wydaje mi się ,że nie zostało sprawdzone czy formularz został wysłany i po odświeżeniu pobiera puste zmienne przez co wywala błędy>proszę spróbować dodać if($_POST)

Ten post edytował Rid 9.09.2011, 22:10:16
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 06:17