Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kolejny problem z metoda i wlasciwosciami klasy..
Forum PHP.pl > Forum > PHP
patrycjusz
Witam.
Najpierw kod...[php:1:2708a2ad6e]<?php
//kawalek tablicy
$user['klient']='klient.php';
$user['user']='user.php';
//klasa login
class login
{

var $blad;
var $login;
var $userid;
var $poziom;
var $tpl;

function poziom()
{
global $user;

foreach ($user as $k => $v)
{
if ($k == $this->poziom)
{
$this->tpl = $v;
return true;
}
else
{
return false;
}
}

}

function sprawdz_znaki($zmienna)
{
// cos tam
}


function sprawdz_usera($login,$haslo)
{
global $adodb;
if($this->sprawdz_znaki($login))
{
$this->login=$login;
$wynik = $adodb->GetRow("select * from uzytkownicy where login='".$this->login."'");
if (md5($haslo)==$wynik['haslo'])
{
if($wynik['blokada'] < '1')
{
$wynik1 = $adodb->GetRow("select * from zbanowaneip where IPzbanowane = '".$_SERVER['REMOTE_ADDR']."'");
if($wynik1['IPzbanowane'] != $_SERVER['REMOTE_ADDR'])
{
$this->poziom = $wynik['poziom'];
if($this->poziom() === true)
{
$this->userid = $wynik['iduzytkownika'];
$this->zalogowany();
return true;
}
else
{
$this->blad = 'Brak dostępu';
$this->nieudane_logowanie();
return false;
}
}
else
{
$this->blad = 'masz zbanowany IP';
$this->nieudane_logowanie();
return false;
}
}
else
{
$this->blad = 'twoje konto jest zablokowane';
$this->nieudane_logowanie();
return false;
}
}
else
{
$this->blad = 'nieprawidlowe dane';
$this->nieudane_logowanie();
return false;
}
}
else
{
$this->blad = 'nieprawidlowe znaki';
$this->nieudane_logowanie();
return false;
}
}

function zalogowany()
{
global $adodb;
//... cos tam sie dzieje
$this->akcja = 'Witaj';

}

function nieudane_logowanie()
{
// cos tam sie dzieje i
$this->tpl = 'logout.php';
}

?>[/php:1:2708a2ad6e]
No i problem...
$this->tpl ma ustawiac odpowiedni szablon ktory pozniej sobie wrzucam w smartach.. ale..
cala funkcja logujaca dziala prawidlowo (pod wzgledem samego logowania) ale nie przypisuje .tpl w momencie prawidlowego logowania, przy nie prawidlowym logowaniu wszystko jest ok, nawet gdy ustawienie szablonu dodalem do funkcji zalogowany i gdzies tam w niej dawalem $this->tpl = 'zalogowany.php' to mi wyrzucalo blad, no i tresc bledu
Cytat
Warning: fetch(templates_c/) [function.fetch]: failed to open stream: No such file or directory in c:usrphpsmartylibsSmarty.class.php on line 1158

Warning: fetch() [function.include]: Failed opening 'templates_c/' for inclusion (include_path='.') in c:usrphpsmartylibsSmarty.class.php on line 1158

Czyli tak jak by $this->tpl bylo puste ... i jeszcze najdziwniejsza sprawa czasami system ten dziala ok. rolleyes.gif
Hmm licze na wasza pomoc i ewentualne pomysły.
Pozdrawiam patS.
UPDATE Panowie dodam jeszcze ze po nie udanym logowaniu gdy wyrzuci mi .tpl logout.php i tym razem z niego sie loguje to dziala ale z zadnego innego .tpl (czyli jakiegos tam dzialu) juz nie, chociarz .tpl sie niczym nie roznia (prawie niczym ofcouz)... rolleyes.gif
bulek
Najpierw jesli mozne to mala uwaga.
Nie kozystaj ze globali w klasach. Jak masz obiekt do pobierania danych z bazy danych $adodb to przeslij go najwyzej przez referencje do obiektu login
i wtedy bedzie mozna sie do niego odwolac przez np $this->adodb->GetRow(".....");

A czy sprawdzales co sie dzieje w lini 23
[php:1:a15c6e4a6a]<?php
$this->tpl = $v;

?>[/php:1:a15c6e4a6a]
tzn jaka wartosc ma $v
[/list]
patrycjusz
hmmm w tej lini nawet jak przypisze tak
[php:1:5abb70324a]<?php
$this->tpl = 'zalogowany.php';

?>[/php:1:5abb70324a]
To sie dzieja dziwne rzeczy bo jak loguje po nie udanej probie logowania (loguje sie wtedy z szablonu logout.php)to mi sie zaloguje (na ten szablon)ale juz z kazdego innego miejsca niechce sie logowac i wyrzuca powyzszy blad.
Przejrzalem dokladnie szblony i logout.php i inne sa prawie takie same (a przynajmniej w kluczowych miejscach sie niczym nie roznia)
dziwne to jest rolleyes.gif
UPDATEhmm dorzuce jeszcze kawalek kodu gdzie jest wywolywane logowanie...[php:1:5abb70324a]<?php
case "logowanie":
$login = new login;
if ($login->sprawdz_usera($_POST['login'],$_POST['haslo']) === true)
{
$tpl = $login->tpl;
}
else
{
$tpl = $login->tpl;
$blad = $login->blad;
}
break;
?>[/php:1:5abb70324a]
I najdzwniejsze jest to ze jak sie nieprawidlowo zaloguje czyli wykona sie else to pozniej sie zaloguje prawidlowo z tego miejsca gdzie mnie else wyrzucilo... :?
patrycjusz
Panowie poporawialem co i jak trzeba (wedke wskazowek chlopaków z #php.pl) :wink: ale dalej nie dziala chociarz błąd jest tym razem taki
Cytat
Warning: Smarty error: unable to read template resource: "" in c:usrphpsmartylibsSmarty.class.php on line 1042

ręce mi opadają...
patrycjusz
Panowie udalo mi się działa 8) .
Okazało się że coś z moim localhostem nie tak a zkodem wszystko było w porzdku.
Za pomoc niesioną tutaj i na ircu dziękuje smile.gif .
Pozdrawiam patS
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.