Witam mam problem prawdopodobnie z sesją poniżej jest skrypt, który pobiera dane z formularza, kiedy loguje się pacjent jest wszystko ok, wykonuje się metoda logowanie_pacjenta, ale kiedy ten warunek nie jest spełniony i przechodzi do instrukcji elseif to koniec nic niema w zmiennych, i zawsze przechodzi do ostatniej instrukcji else. Odwracałem kolejnośc wtedy wykonywała sie metoda logowanie_admin. W dalszej części posta umiściłem klasy które biorą w tym udział.
Mam pytanie gdzie umieścić zmienną sesyjną żeby wszystko chodziło?, ja umieściłem ją w klasie html, ale to nic nie daje, umieszczałem też session_start()
w metodzie logowanie_pacjenta i logowanie_admin i to samo.
  1. <?
  2. require "classes.php5";
  3.  
  4. $html=new html;
  5. $pacjent= new pacjent;
  6. $admin=new admin;
  7. $komunikat=new komunikat;
  8.  
  9. if(!isset($_SESSION['prawid_uzyt']) && !isset($_SESSION['admin']))
  10. {
  11.  
  12.  $nazwisko=$_POST['nazwisko'];
  13. $Pesel=$_POST['Pesel'];
  14.  
  15.  
  16.     if($pacjent->logowanie_pacjenta($nazwisko, $Pesel))
  17.      $_SESSION['prawid_uzyt'] = $nazwisko;
  18.  
  19.     elseif($admin->logowanie_admin($nazwisko, $Pesel))
  20.      $_SESSION['admin'] = $nazwisko;
  21.  
  22.     else
  23.      {
  24.         $html->naglowek('Problem:');
  25.         $html->ramka();
  26.         $html->logowanie();
  27.         $komunikat->komunikaty('Błędny Login lub Hasło <br/> prosze spróbować ponownie lub skontaktować się z przychodniś');
  28.       exit;
  29.      }
  30. }
  31. ?>



  1. <?
  2.  
  3. class baza
  4. {
  5. private $host;
  6. private $user;
  7. private $pass;
  8. private $db;
  9.  
  10.     public function __construct()
  11.     {
  12.  
  13.      require_once "config.php";
  14.  
  15.      $this->host=$db_host;
  16.      $this->user=$db_user;
  17.      $this->pass=$db_pass;
  18.      $this->db=$db_db;
  19.     }
  20.  
  21.     public function loncz()
  22.     {
  23.  
  24.        $wynik = mysql_pconnect($this->host,$this->user,$this->pass);
  25.         mysql_query("SET NAMES 'latin2'");
  26.         mysql_query("SET CHARACTER SET 'latin2_general_ci'");
  27.  
  28.        if (!$wynik)
  29.           return  false;
  30.        if (!mysql_select_db($this->db))
  31.           return  false;
  32.        return $wynik;
  33.     }   
  34. }
  35.  
  36. class html
  37.     {
  38.  
  39. public function __construct()
  40.     {
  41.         session_start();
  42.         ?>
  43.         <html>
  44.         <head>
  45.         <meta http-equiv="Content-type" content="text/html; charset=pl-utf-8" />
  46.         <link href="style.css" rel="stylesheet" type="text/css" >
  47.         </head>
  48.         <body>
  49.         <?
  50.     }
  51.  
  52.  public function __destruct()
  53.    {
  54.      ?>
  55.     
  56.      </body>
  57.      </html>
  58.      <?
  59.    }
  60. }
  61.  
  62.  
  63. class admin
  64. {
  65.     
  66.     public    $Pesel;
  67.     public    $nazwisko;
  68.  
  69. public function logowanie_admin($nazwisko,$Pesel)
  70.    {
  71.  
  72.     $this->Pesel=$Pesel;
  73.     $this->nazwisko=$nazwisko;
  74.     $baza=new baza;
  75.      $loncz=$baza->loncz();
  76.      if (!$loncz)
  77.        return  false;
  78.   
  79.      $wynik =mysql_query("select * from admin where Nazwisko='$this->nazwisko' and Haslo='$this->Pesel';");
  80.      if (!$wynik)
  81.        return  false;
  82.      if (mysql_num_rows($wynik)>0)
  83.          return true;
  84.      else
  85.        return false;
  86.    }
  87. }
  88.  
  89.  
  90. class pacjent
  91.  
  92.     {
  93.     public    $Pesel;
  94.     public    $nazwisko;   
  95.  
  96. public function logowanie_pacjenta($nazwisko,$Pesel)
  97.         {
  98.         $this->Pesel=$Pesel;
  99.         $this->nazwisko=$nazwisko;
  100.         $baza=new baza;
  101.         $loncz=$baza->loncz();
  102.         
  103.             if (!$loncz)
  104.             return  false;
  105.         
  106.             $wynik=mysql_query("SELECT * FROM pacjenci WHERE Nazwisko='$this->nazwisko' AND Pesel='$this->Pesel' ;");
  107.             if(!$wynik)
  108.             return false;
  109.             if(mysql_num_rows($wynik)>0)
  110.             return true;
  111.             else
  112.             return false;
  113.         }
  114.     }