![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 206 Pomógł: 4 Dołączył: 2.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
od dawna mnie nurtuje pare problemów, które za każdym pisaniem skryptów powracają.
1. Estetyka To jest moja metoda werfikacji usera. Jak w smarty zrobić żęby mi estetycznie pokazywało np. na czerwono informacje nad logwaniem o błednych danych a nie jak teraz pod całym szablonem. Wiązało by się to z osdświeżeniem całego szablonu. 2. Do tego samego kodu. Jak przekierować żeby zmienił się też adres, bo np. tutaj zmienia się środek a adres pozostaje stary co powoduje wiele problemów. 3.BAZA DANYCH Używam tutaj klasy DB więc czy mam za kazdym zapytaniem zamykać połączenie czy po wylgoowaniu? 4. Dwa przyciski Jak zrobić w formularzu dwa przyciski. Bo submit możę być jeden a drugi musiałby się odnosić do jakiejś Funkcji JS. Można odnieść drugi button do funkcji php, np. żeby zrobić pogdląd posta i zatwierdzanie? Jak mi się coś jeszcze przypomni to dopiszę. Z góry dziękuję za pomoc ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat To jest moja metoda werfikacji usera. I zla bo haslo tez sprawdzaj w zapytaniu a nie po wyciagnieciu z bazy. Cytat Używam tutaj klasy DB więc czy mam za kazdym zapytaniem zamykać połączenie czy po wylgoowaniu? Po zakmnieciu skryptku polaczenie jest automatycznie zrywane. Robi sie tak ze na koniec sesji polaczenia polaczenie jest zamykane. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 206 Pomógł: 4 Dołączył: 2.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
a co z tymi przekierowaniami. Bo np. zrobiłem panel administracyjny na wzór phpBB czy na ramkach i kiedy w lewym menu umieściłem na dole przycisk wyloguj to musze odświeżyć stronę zeby mi się wylogowało. tak samo mam w logowaniem w powyższym przykładzie. Dopiero po odświeżeniu strony jestesm zalogowany.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 30.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat To jest moja metoda werfikacji usera. Jak w smarty zrobić żęby mi estetycznie pokazywało np. na czerwono informacje nad logwaniem o błednych danych a nie jak teraz pod całym szablonem. Wiązało by się to z osdświeżeniem całego szablonu. Przecież tworzenie szablonu polega na tym, że (w większości przypadków) najpierw przechodzisz przez cały lub część skryptu podstawiając wartości do szablonu a potem go generujesz. Co za problem zrobić np zmienną errtxt do której przekazujesz komunikat o błędzie.
a w pliku szablonu coś w stylu: Kod (...) <span class="error">{$errtxt}</span> <p class="costam">Zawartość strony</p> (...) i będziesz miał wyświetlany błąd na górze strony, jeśli tylko zmienna $errtxt będzie coś zawierała. Linijkę możesz pominąć jeśli masz error reporting wyższy niż E_NOTICE i/lub jeśli jesteś bałaganiarzem i lubisz zostawiać niezainicjalizowane zmienne. Aha, i tak jak pisał SongoQ, kwestie obliczenia sumy md5 hasła i sprawdzenia czy taki user i hasło figurują w bazie pozostaw samej bazie, w skrypcie tylko sprawdzaj czy baza zwróciła 0 rekordow czy 1.
Ad2. Nie do końca rozumiem co masz na myśli, jeśli chodzi o przekierowanie na inny adres to po prostu go podaj w całości header('Location: http://jakis.adres.pl/index.php'). Druga sprawa - po header zawsze dawaj die, bo inaczej skrypt w pewnych warunkach może się wykonywać dalej niejako w tle mimo przekierowania. Ad4. No tu możliwości jest wiele, możesz zrobić zwykły Kod <input type="button" onClick="document.location='adres_gdzie_ma_prowadzić_przycisk';"> możesz zrobić tak aby taki przycisk robił submit formularza przy pomocy JS, wcześniej ustawijąc np jakąś zmienną która zostanie wysłana z formularzem. Najlepiej poczytaj jakiś dobry tutorial do js a tam znajdziesz mnóstwo przykładów. Ten post edytował KG- 29.07.2006, 11:52:54 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 206 Pomógł: 4 Dołączył: 2.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
No i nadal mam problem z tym header("Location:....");
w skrypcie index.php mam tak
i dalej stronka. Kiedy nie będę zalogowany odrazu przeniesie mnie do login.php i adres w przeglądarce się zmieni na http://10.1.1.133/~aktualnosci/admin/login.php Jednak z drugiej strony nie jest już tak pięknie LOGIN.php Tutaj jak się zaloguje to jest biała strona. Muszę odświeżyć stronę żeby weszło do index.php próbowałem z die, z exit i bez niczego po header. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 30.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
A w login.php dajesz na początku session_start() ?
Tak na marginesie, lepiej zapamiętywać w sesji numer id użytkownika i ew. login i operować w zapytaniach do bazy na numerze id. Porównywanie liczb trwa o wiele krócej niż ciągów znakowych, nie mówiąć już o tym że baza i program będą bardziej spójne. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 206 Pomógł: 4 Dołączył: 2.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście w login.php daje na początku session_start()
Więc kolejne moje pytanie. Jakbym napisał klasę user to. po zalogowaniu stworzyłbym nową klase. Przy przełodowaniu na inną stronę ta kalsa by istniała?? Czy mógłbym wtedy zrobić odpuścić sesję i sprawdzanie klasy na kazdej stronie ? Oczywiście w login.php daje na początku session_start() Więc kolejne moje pytanie. Jakbym napisał klasę user to. po zalogowaniu stworzyłbym nową klase. Przy przełodowaniu na inną stronę ta kalsa by istniała?? Czy mógłbym wtedy zrobić odpuścić sesję i sprawdzanie klasy na kazdej stronie ? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 30.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wtedy mógłbyś trzymać cały obiekt klasy w sesji, co mogłoby zaowocować zmniejszeniem zapytań do bazy. Obiekt ten tworzony by był w momencie logowania, wtedy też byłby zapamiętany w sesji, a potem na każdej podstronie sobie go stamtąd odczytujesz.
Tylko nie stosuj tego w stronach, w których dane użytkownika mogą zostać zmodyfikowane niezależnie od niego (tzn podejście klas w zmiennych sesji możesz stosować, tylko że część rzeczy będziesz musiał i tak pobierać z bazy). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:18 |