Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Taki skrypcik do logowania..
Forum PHP.pl > Forum > Gotowe rozwiązania
slepy
Witam.
Chcialbym stworzyc skrypt ktory logowalby zarejestrowanych uzytkownikow do serwisu. Sprawa wyglada banalnie bo mozna by bylo to zrobic tak:
[php:1:e2ecedd0b5]<?php
if($login==$login1 || $haslo==$haslo1):
echo("oki");
else:
echo("blad");
?>[/php:1:e2ecedd0b5]
ale sprawa przedstawia sie inaczej gdyz ja w serwisie bede mial zauzmy z 50 osob ... jak to teraz zrobic szkoda sie chyba meczyc:
[php:1:e2ecedd0b5]<?php
if($login==$login1 || $haslo==$haslo1 $login==$login2 || $haslo==$haslo2 ..... $login==$login50 || $haslo==$haslo50 ):
echo("oki");
else:
echo("blad");
?>[/php:1:e2ecedd0b5]

Zwlaszcza ze mam plik np. liczba.inc w ktorym jest podany aktualny status zarejesrowanych ludzi czyli:
[php:1:e2ecedd0b5]<?php
include("liczba.inc");
if(.........................):
else:
?>[/php:1:e2ecedd0b5]

Tylko wlasnie co dalej??
Nie za bardzo wiem jak mam to zrobic Prosze o jakas rade lub tez Pomoc biggrin.gif
Z gory THx
zulus
robisz to z wykorzystaniem baz danych czy plików tekstowych?
nobody
Zrob to z wykorzystaniem bazy danych, bedzie o wiele lepiej i prosciej.
mhs
przede wszystkim masz blad w pierwszym przykladzie kodu, nie rob czego takiego:

[php:1:05bcca7fdc]<?php
if($login==$login1 || $haslo==$haslo1):
echo("oki");
else:
echo("blad");
?>[/php:1:05bcca7fdc]

druga linia kodu oznacza, ze: wez z fomularza logowania zmienna login i sprawdz czy rowna sie tej podanej w (najprawdopodobniej) pliku tekstowym lub wez haslo z formularza i sprawdz czy jest takiego samo jak w pliku...
wynikiem tego programu bedzie logowanie kazdego uzytkownika, ktory wystarczy, ze poda swoj login - haslo (nie wazne czy jest poprawne czy tez zle) jest w tej chwili nie wazne; cos takiego bedzie logowac kazdego uzytkownika gdyz zapewnie ten poda dobra nazwe pod jaka wchodzi na strone www

zamiast tego powinienes uzyc znaku: && - and....

pozdrawiam....
slepy
no tak mialo byc && tongue.gif pomylilo mi sie. Nie za bardzo mam dostep do MySQL czy SQl wiec chcialem to zrobic jakos inaczej. Zeby on automatycznie sam sparawdzal np. taki pomysl:
$ile=0
if($login==$login$ile && $haslo==$haslo$ile):
echo("jo");
else
$ile++

I teraz $ ile=1 i tak sparwdza az do 50 ( wynika to z tego pliki liczba.inc... ) taki mialbym pomysl tylko jestem za "slaby" aby go zrealizowac czy takie cos jest wogule prawdopodobne questionmark.gif moze jakies petle ? ;] plish..
mhs
ok, prosty, oprarty na pliku system autoryzacji....

1) struktura przykladowego pliku, najpierw nazwa uzytkownika, pozniej haslo
Kod
michal|ania

leszek|domek

grzesiek|samochod

ania|pc


2) plik loguj.php
[php:1:dbf18941ba]<?php
//rozpoczynam sesje
session_start();
//w ponizszych dwoch zmiennych przechowujesz nazwe uzytkownika oraz haslo z formularza
$uzytkownik = "grzesiek";
$haslo = "samochod";

$nazwa = "plik.txt";//nazwa pliku smile.gif

if (file_exists($nazwa)) {
$plik = file($nazwa); //wczytuje plik.txt do tablicy

$ileWierszy = count($plik); //zliczam ilosc wierszy w pliku

//rozpoczynam petle
for ($i = 0; $i < $ileWierszy; $i++) {
//dany element tablicy (jeden wiersz pliku) na tablice napisow (rozdzielonych znakiem "|")
$wiersz = explode("|", $plik[$i]);
//porownuje kolejno wpisy z pliku z danymi z formularza
//dodatkowo usuwam biale znaki ze zmiennych z plku
if ( (trim($wiersz[0]) == $uzytkownik) && (trim($wiersz[1]) == $haslo) ) {
session_register("uzytkownik");//rejestruje zmienna
//przerywam operacje gdyz w momencie gdy znajdzie uzytkownika nie ma sensu aby sie petla dalej wykonywala
break;
}
}
}
else
echo "Nie ma pliku.";

?>[/php:1:dbf18941ba]

3) na zakonczenie: mysle, ze komentarze w kodzie aplikacji wystarcza Ci;

mysle, ze nie musze pisac, ze jest to dosc prosty system;

nie przechowuj tego pliku w drzewie katalogow serwera (z innymi plikami php) gdyz (jezeli nie ustawisz serwera tak aby pliki txt rowniez parsowal) gdy mozna wowczas go wyswietlic w przegladarce w calej okazalosci

z napisaniem formularza i reszty rzeczy mam nadzieje, ze sobie poradzisz...

i jeszcze dobra rada: slepy... wez sie do roboty smile.gif

pozdrawiam....

ps. nie testowalem ale powinno chodzic
nobody
Proponuje dac strukture pliku taką:

Kod
michal|5f59ac736640f43e61c6070284bf1c06

leszek|f633c0c0fb3cb2c0391a2b99bb454f92

grzesiek|5056c25600a702ccf836aae5b676707a


i dac mu inne rozszerzenie
pozniej tylko zmienic:

Kod
.........

if (costam && $pobrane_haslo_z_pliku == md5($haslo_podane_przez_usera)){

.........
mhs
no tak, mozna uzyc algorytmu md5 do zaszyfrowania hasla...
a plik (plik.txt) mozna zmienic na: plik.php
Omega
Najwydajniej będzie jak struktura pliku będzie sie opierała na jednej linii, czyli:
Kod
login1|haslo1||login2|haslo2||login3|haslo3

W ten sposób bedziesz mógł odczytać pierwszą linię, co zajmię mniej czasu, a potem użyć funkcji explode. Ale najpierw na podwójnej kresce, a potem pojedynczej.
adwol
Cytat
no tak, mozna uzyc algorytmu md5 do zaszyfrowania hasla...
a plik (plik.txt) mozna zmienic na: plik.php

Może nie ma to praktycznego znaczenia i pewnie był to skrót myślowy, ale forum to czytają również początkujący więc małe sprostowanie żeby potem niektórzy nie mylili faktów.
Funkcja md5 nie szyfruje haseł, plików ani niczego innego. Ona oblicza 128-bitowy skrót podanego ciągu bajtów w sposób praktycznie uniemożliwiający znalezienie oryginalnego ciągu danych.
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-2024 Invision Power Services, Inc.