Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z logowaniem
Forum PHP.pl > Forum > PHP
MotyF
Mam nastepujacy problem. Po zrobieniu prostego systemu logowania, gdzie hasła są kodowane i zapisywane do pliku (nie do bazy) mam problem. Po zalogowaniu się chciałbym, aby otworzyła się strona np: http://www.jakasstrona.pl , aby znajdowała się w rozpoczetej sesji oraz gdzieś bylo widoczne: wyloguj. Logowanie składa sie z tabeli, gdzie pola sa po prawej stronie(do logowania) a na srodku po zalogowaniu sie potrafie tylko wstawic napis: Zalogowałeś sie ". $user->user () . " poprawnie........itd. Zaznaczam, że php zajmuje sie góra od miesiąca i znam php w samych podstawach, a logowaniem zajalem sie na własne potrzeby. A logowanie wygląda mniej więcej tak:<?
if (!$user->is_logged ())
{
echo "<p class=error align=center>Podałeś złe dane. Spróbuj ponownie.</p>";
}
else
{
echo "<p class=ok align=center>". $user->user () . " został zalogowany poprawnie .</p>";
cahe
Cytat
Zaznaczam, że php zajmuje sie góra od miesiąca i znam php w samych podstawach, a logowaniem zajalem sie na własne potrzeby.

<?
if (!$user->is_logged ())
{
echo "<p class=error align=center>Podałeś złe dane. Spróbuj ponownie.</p>";
}
else
{
echo "<p class=ok align=center>". $user->user () . " został zalogowany poprawnie .</p>";


Haha! Pierwszy tongue.gif. Ale do rzeczy:

BBCode! snitch.gif

Zawsze chciałem to powiedzieć.

Tak na marginesie - nie wiem czy to dobrze, że zaczynasz od klas od razu, zamiast zająć się programowaniem proceduralnym. Powiem ci, że przez dwa pierwsze lata uczenia się php nie dotknąłem klas (no chyba, że masz doświadczenie z tym np. z C++).
MotyF
Dzieki za zainteresowanie, ale nie pisz o czyms o co nie pytam. Wiesz jak mi pomóc ? SUPER. Nie-raczej nie pisz (przynajmniej ja tak robie).
cahe
Cytat
Dzieki za zainteresowanie, ale nie pisz o czyms o co nie pytam. Wiesz jak mi pomóc ? SUPER. Nie-raczej nie pisz (przynajmniej ja tak robie).


Nie to nie. Nie jestem wróżką i nie wiem czy chcesz jakiejkolwiek pomocy (akurat nie związanej z tematem postawionym przez ciebie, ale cóż). Zwróciłem ci tylko uwagę na BBCode (przeczytaj Regulamin + wszystkie zasady postowania na forum). Jeśli chodzi o moją "pomoc" (bo wątpie żeby w przypadku takiego pacjenta jak ty pomogła) - jak ci sie nie podoba, to nie czytaj.
cahe
Aha: RTFM. Tam jest wszystko co chcesz wiedzieć i o co pytasz (o sesjach).
hamlecik
Motyf: rozumiem twoj problem. jak bede wieczorem/ w nocy to Ci napisze jak to zrobic bo teraz nie mam czasu.
spenalzo
Kolejny obrażalski.
Napisz o co Ci chodzi dokłądnie.
Cytat
Bardzo chcemy Ci pomóc i oczywiście zrobimy to cąłkowicie dobrowolnie i za darmo. Jeżeli nie będzie Ci coś odpowiadać lub z powodu naszej opieszałości i niezdarności poniesiesz jakiekolwiek straty, Zaszczytny Forumowiczu, to wynagrodximy Ci to sowicie. Ale niestety nasze oczy nie są godne czytać, a nasze ręce nie są godne odpisywać, ponieważ nie chcemy aby nasze niezdarne, niechlujne, bezczelne, chamskie wypowiedzi na tym podłym forum dla pospólstwa skalały Twój Wszechpotężny Komputer wraz z Twoim Superpłaskim Ultramonitorem. Więc wybacz nam, o Panie!!! Następnym razem gdy zaszczycisz nasze forum postaramy się rozwiązać Twój Bardzo Ważny Problem w pierwszej kolejności. Aby Ciebie zadowolić zrezygnujemy z posiłków i innych tego typu przyziemnych spraw.
MotyF
Na nikogo się nie obraziłem i nie mam zamiaru-mam problem-pisze o tym na forum(bo o php chodzi) i chciałem tylko o mądrą porade "zrób tak i tak" i nic więcej. Sorx dla all których nerwa wzieła i nadal czekam na pomocną dłoń :wink: . Pozdrowienia dla wszystkich
hamlecik
Hmmm, dobra rada, przejdz z plikow do bazy. latwiejsza obsluga (jak dla mnie smile.gif i bezpieczniejsza wymiana danych. mowisz, ze masz sesje. wiec zaczynamu:

LEGENDA:
$user = zmienna loginu w formularzu
$pass = zmienna hasla w formularzu
$username = zmienna loginu z pliku z haslami
$password = zmienna hasla z pliku z haslami

(chyba nie musze dodawac ze mozesz zmieniac te zmienne jak chcesz :wink: podalem takie tylko dla przykladu)

[php:1:3b7ce10a09]
<?php

session_start();

$user = $HTTP_POST_VARS['user'];
$pass = $HTTP_POST_VARS['pass'];

if( $user && $pass ){

// dobrze jest wstawic ten warunek zeby sprawdzic czy jakies wartosci zostaly wogole wpisane. jesli zostaly wpisane to wyciagaj haslo i login z pliku

// teraz wyciagasz interesujace Cie dane z pliku z haslami

}
if( $username == $user && $password == $pass){
session_register('username');

// zalogowane przenosimy do panelu
header("Location: dla_zalogowanych.php?ID=".session_id());
} else{

print "access denied";
exit();
}
} else{

// miejsce na twoj formularz do logowania

}
?>
[/php:1:3b7ce10a09]

Pozostale uwagi:
1) Plik logout.php powinien wygladac tak:

[php:1:3b7ce10a09]
session_unregister('username');
session_start();
session_destroy();
[/php:1:3b7ce10a09]

2) Kazda strona, ktora ma byc widzoczna tylko dla zalogowanych uzytkownikow powinna zawierac taka tresc:

[php:1:3b7ce10a09]
session_start();
if(session_is_registered('username')){


//dalsza czesc strony


} else{
print("Uzytkownik nie zalogwany. dostęp zabroniony");
exit();
}
[/php:1:3b7ce10a09]

Chyba za bardzo nie namieszalem. Jak nie bedzie dzialac to daj znac.
MotyF
A co do bazy to mam konto na interii z obsługą php i MySql ale... próbowałem wykorzystać program Pomocnik MySql do tworzenia tabel i nie da rady. Kontaktowałem się z autorem-on z kolei z interią i co się okazało-dostęp do bazy jest tylko z poziomu ich strony www. Czy w takim przypadku skrypt np. formularza rejestracyjnego da radę utworzyć kolejny wpis w bazie. Może dla niektórych osób brzmi to co najmniej śmiesznie, ale ja nie wiem. Jeszcze raz WIELKIE DZIĘKI za pomoc biggrin.gif
hamlecik
dziala to logowanie, ktore podalem?
Nie kumam.
Cytat
dostęp do bazy jest tylko z poziomu ich strony www. Czy w takim przypadku skrypt np. formularza rejestracyjnego da radę utworzyć kolejny wpis w bazie.

Piszesz sobie skrypt, ktory sam sie laczy z baza i samodzielnie tworzy kolejne wpisy.
MotyF
Wielkie dzięki, działa. A co do bazy to nie mozna jej edytować poprzez żaden "pomocniczy" program-nie można się połączyć-takie zabezpieczenie. Chciałem sie tylko dowiedzieć, czy w takim przypadku skrypt zadziała bez problemu.
MotyF
Co to jest RTFM ?
KaMeLeOn
Cytat
Co to jest RTFM ?

Szukaj już było... :wink:
cahe
Cytat
Co to jest RTFM ?
laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif
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.