Aktív témák
-
qfm
őstag
válasz
agyergorcs #4958 üzenetére
Belépésnél megnézed van e olyan felhasználo amit beirt. ha nincs akkor pl bedobod a regisztráciot, ha meg van akkor ellenörzöd hogy a jelszo jo e. Ezután valamilyen modszerrel azonositod a usert, ez történhet sütikkel, session okkal [utobbi hasznosabb egy védett oldalnál], esetleg ugy is hogy tovább küldöd url be a felhasználo nevet, és a jelszot. Én mondjuk online ID t, és egy kodolt jelszot szoktam tovább küldetni, de kezdésnek nem kell bonyolitani. Csinálnod kell egy rendszer filet, ami az azonositást fogja neked végezni. Megnézi hogy valamilyen uton kapott e nevet, és jo e az ahoz tartozo jelszo. Ha jo akkor bejön az oldal, ha nem akkor kidobsz egy hiba üzenetet, és exit el kiugrassz belőle, mielőtt még lefutna a normál oldal. Elsőre lehet bonyolultnak hangzik, de ha belejössz, egyáltalán nem az.
A másik kérdésedre, egyszerü, ámbár nem tul praktikus megoldás, hogy a felhasználo nevét regnél kisbetüsre alakitod, vagy kodoltatod egy algoritmussal, és azzal egyező filenevü filet hozol létre. Ekkor ugy nézed meg hogy létezik e a felhasználo, hogy megnézed létezik e olyan nevü file.
Remélem segitettem
[Szerkesztve] -
qfm
őstag
válasz
agyergorcs #4942 üzenetére
elég sok sebből vérzik a progid, de müködöképes állapotba hoztam neked:
reg.php:
<?php
$talalat = ''N'';
$db = 0;
$name = $_POST['nev'];
$jelszo1 = $_POST['jelszo1'];
$jelszo2 = $_POST['jelszo2'];
$jog = $_POST['jog'];
$nev = $name;
//ürlap ellenörzés
if ( $name =='''')
{
print(''<a href=reg.html>Nem adtál meg nevet</a><br>'');
}
elseif ( $jelszo1 =='''')
{
print(''<href=reg.html>Nem adtál meg jelszót</a><br>'');
}
elseif ( $jelszo1 != $jelszo2)
{
print(''<href=reg.html>Nem egyforma a két jelszó</a><br>'');
}
else
{
//fájllétezés vizsgálat
if ( ! file_exists(''users.dat''))
{
touch(''users.dat'');
}
// ellenörzés, hogy a név létezik e már
if ( $fa=fopen(''users.dat'', ''r''))
{
while ( ! feof($fa))
{
$db++;
$fnev[$db] = fgets($fa, 1024); //beolvas egy sort (fgets)
$fjelszo[$db] = fgets($fa, 1024);
$fjog[$db] = fgets($fa, 1024);
}
fclose($fa);
// sorvége jelek levágása
for ($i=1; $i<=$db; $i++)
{
$fnev[$i] = substr($fnev[$i], 0, strlen($fnev[$i])-2);
$fjelszo[$i] = substr($fjelszo[$i], 0, strlen($fjelszo[$i])-2);
$fjog[$i] = substr($fjog[$i], 0, strlen($fjog[$i])-2);
}
for ($i=1; $i<=$db; $i++)
{
// összehasonlítás
if ( $nev == $fnev[$i])
{
$talalat = ''V'';
break; //kiszáll az elso találatnál (keresi, hogy van e azonos felhasz.)
}
}
}
if ($talalat == ''N'')
{
//fájlba írás
if ( $fa = fopen(''users.dat'', ''a'')) //r- olvasás, w - írás, a - hozzáfuzés (''a'' helyére)
{
fwrite( $fa, $nev.''\r\n''); //''/r/n'' sor vége jel
fwrite( $fa, $jelszo1.''\r\n'');
fwrite( $fa, $jog.''\r\n'');
fclose($fa);
}
else
{
print(''nem sikerult megnyitni a fájlt<br>'');
}
}
else
{
//ha van ilyen név
print (''<a href=reg.html>Már van ilyen név</a>'');
}
}
?>
viszont ha még most tanulod ezt figyelj oda pár dologra. a fileok nagyon könnyen feladják hatalmas forgalom esetén. a jogokat helyettesitsd számokkal, pl 0 - vendék 1 - felhasználo 2 - operátor 3 - RG, a jelszavakat kodolva tárold, jo lenne egy md5, bár az elég sok adat megint. rakj be ellenörzőket, jelszo, név hosszra szerintem, figyelj oda hogy ugyanazt a változot használd pl nev és name ugyanaz nálad, azért tettem egyenlővé. a register globals t meg állitsd off ra biztonsági okokbol. tilts le pár karaktert, pl a < jelet, és konvertáld át a html kodjára. és pl amikor leveszed a sor vége jelet az lehet egyszerübb lenne egy str_replace el. csak pár tipp:) sok sikert hozzá
[Szerkesztve]
Aktív témák
- Xiaomi Redmi Note 14 Pro 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- LG UltraWide 29WQ60A-B LED IPS Monitor! sRGB 99% / 5ms / 100Hz / FreeSync
- Honor 400 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- LG UltraWide 34WR50QC-B Monitor! VA 3440x1440 / 100Hz / FreeSync
- FÓLIÁS! LG 32MR50C-B ívelt VA Monitor! 100Hz / FreeSync / 5ms
- AKCIÓ! MSI B450M R7 5700X 16GB DDR4 512GB SSD RX 5700 XT 8GB Rampage SHIVA Zalman 600W
- BESZÁMÍTÁS! ASRock B250 i5 7400 16GB DDR4 512GB SSD GTX 1660 SUPER 6GB Rampage Everest 500W
- LG 48C2 - 48" OLED EVO - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - A9 Gen5 CPU
- Telefon felváráslás!! Samsung Galaxy S22/Samsung Galaxy S22+/Samsung Galaxy S22 Ultra
- BESZÁMÍTÁS! Asus A520 R5 3600 16GB DDR4 500GB SSD RTX 2060 8GB Rampage SHIVA CoolerMaster 700W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged