Meghívós loginrendszer - R.E. Login v2.0

R.E. Login v2.0

Az R.E. Login újabb verziója, vadi új objektum orientált motorral. Megőrizve az elődje funkcióit, de némileg kibővítve azt, és lehetőséget biztosítva további fejlesztések egyszerűbb elvégzésére. Ebből kifolyólag valószínű lesz is folytatás. Addig is köszöntsük szeretettel új barátunkat, az R.E. Login v2.0 -át.
R.E. Login v2.0.3 letöltése
Kövesd a projektet és keresd a legfrissebb verziókat a:
https://sourceforge.net/projects/relogin/ oldalon.


Figyelem: Ez a rendszer már elavult. Hibákat tartalmazhat és az új PHP verziókkal nem teljesen kompatibilis. Az init.php-be beillesztve az alább írt sorok egyikét a hibaüzenetek eltüntethetők, de a login használata csak saját felelősségre javasolt.

error_reporting(E_ALL | E_STRICT); // E_STRICT hibaüzenetek elrejtése
vagy
error_reporting(0); //minden hibaüzenet elrejtése

Kapcsolódó oldalak

Szerkesztve: 2010.04.04. 23:02
A loginban sikerült felfedezni pár hibát. Ezek javítva lettek. A hibák a következők voltak:

  • Profil módosítás fájl kimaradt a beállításokból, így csak changeprofile.php néven működött
  • Ugyanezen okból adminnak más profiljában is a saját profiljára mutató link volt.
  • Apró elírás a telepítőben. STMP volt SMTP helyett az egyik megjegyzésben
  • A telepítő nem ellenőrizte, hogy az SMTP host és port meg van-e adva. Sem az e-mail címeket.

Továbbá egy kiegészítés:

  • Most már opcionális az SMTP használat is. ha netán valakinek nem lenne semmilyen SMTP szerver használatára lehetősége, akkor SMTP nélkül küldi a leveleket.

Más nem változott. Ha bárki hibát észlel, kérem szóljon.
Köszönet tbence-nek az észrevételeiért és hibajelentésért.

A Login funkciói nagy vonalakban:

  • Regisztráció ( Opcionális meghívó mód, regisztráció blokkolása )
  • Beléptetés
  • Meghívó küldés
  • Privát üzenet küldés ( Kimenő, bejövő postafiók, Hír küldés )
  • Felhasználói profil
  • Gravatar és MKAvatar használat
  • Admin felület ( Tulajdonos és Admin rangot megkülönböztetve )
  • Bővíthető ranglista
  • Felhasználó lista
  • Online lista
  • Felhasználó keresése usernév szerint
  • Elfelejtett jelszó funkció

Figyelem! Ez nem egy portálrendszer, hanem loginrendszer. Bármily sokat is tud.
Így a PHP alapszintű ismerete elengedhetetlen a használatához.
Vagy legalább a kellő kitartás és hajlandóság a tanulásra.

R.E. Login v2.0 - Rendszerigény
Mindenképpen szükség van egy webszerverre, amin lehetőség van
PHP 5.0, valamint MySQL 5.0 használatára.
PHP GD támogatás szükséges
SMTP szerver ( Internetszolgáltató, vagy a tárhelyszolgáltató adja )

Ma már az ingyenes tárhelyek is átálltak 5 -ös verzióra.
Minden esetre, akinek fontos, hogy tárhelyével minél kevesebb
probléma legyen, az ruházzon be egy fizetett tárhelybe.
Azokon már szinte mindenhol PHP 5 vagy annál magasabb verzió van.

R.E. Login v2.0 - Telepítési útmutató

  • Tömörítsd ki az RELogin-v2.0.zip -et.

  • A tartalmát másold fel a webtárhelyedre!

  • Nyisd meg böngészőben a "relogin2" mappában levő "install" mappát.
    Töltsd ki az adatokat, majd kattints alul a küldés gombra.
    Megjegyzés: UTF8 karakterkódoláson kívül más is megadható a telepítőben,
    Ekkor viszont minden fájlt külön el kell menteni a megadott
    karakterkódolással. Így ajánlott hagyni UTF8 -nak, és
    a weboldalon is mindenhol ezt használni.

  • Ha mindent jól csináltál, a telepítés sikeres volt.

R.E. Login v2.0 - Használatba vétel
Hozz létre egy "init.php" nevű fájlt a "relogin2" mappa mellett

Írd bele a következőt:

<?php
ob_start();

require_once('relogin2/classes/System.class.php');
$system = System::getInstance();
header('Content-type: text/html; charset='.Config::DBCHARSET);
?>

A fenti kódrészletet közvetlenül a fájl elejére írd. Se szóköz,
se újsor ne legyen előtte.

Az összes olyan fájlban, amiben a login bármely modulját használni szeretnéd,
ezt az "init.php" -t kell beilleszteni a következő módon szintén a fájl elejére:

<?php
require_once 'init.php';
?>

Ehhez hasonlóan kell a modulokat is beilleszteni, de már bárhova lehet
a fenti kód után. Ezek már a relogin2 mappában lesznek.
Tehát így fog kinézni a kód:

<?php
require_once 'relogin2/login.php';
?>

A fenti kód hatására megjelenik a beléptető űrlap.
Minden szükséges modul a relogin2 mappában található.
Egyik fájl sem érhető el közvetlenül. Csak az imént leírt módon beillesztve
a fájlokat egy új .php fájlba, ahol előtte be volt illesztve az init.php

További modulok helye, és funkciója:

  • relogin2/admin.php - Adminisztrációs felület
  • relogin2/changeprofile.php - Profil módosítás
  • relogin2/forgotpass.php - Elfelejtett jelszó funkció
  • relogin2/invite.php - Meghívó küldés
  • relogin2/login.php - Bejelentkező űrlap
  • relogin2/logout.php - Kijelentkező
  • relogin2/msginbox.php - Bejövő üzenetek
  • relogin2/msgoutbox.php - Kimenő üzenetek
  • relogin2/msgread.php - Üzenet olvasás
  • relogin2/msgwrite.php - Új üzenet írása
  • relogin2/news.php - Hírek listája
  • relogin2/onlinelist.php - Online lista
  • relogin2/profile.php - Profil megtekintése
  • relogin2/register.php - Regisztrációs űrlap
  • relogin2/search.php - Felhasználó kereső ( Még csak usernévre )
  • relogin2/userlist.php - Felhasználó lista

A login támogatja a gravatar és mkavatar használatát. Ha nem tudod mi az,
nézd meg az alábbi két weboldalt:
http://en.gravatar.com/
http://www.mkavatar.hu/

Sreenshotok:
Profil módosításBejövő üzenetekProfilRegisztrációUserlistaAdmin


További ismertető későbbiekben még lehet, hogy várható. Addig is a felmerülő kérdéseket szívesen megválaszolom.



Szerkesztve: 2010.06.27. 16:20
Találtam egy hibát a loginban. Mégpedig a relogin2/classes/ForgotPass.class.php végén az errors metódusnál duplán volt deklarálva a metódus static tulajdonsága. Ez nem tűnt fel eddig, de most átnéztem a logint, és hibát adott az elfelejtett jelszó funkciónál. Lehet, hogy nem mindenhol ad hibaüzenetet, habár szintaktikai hiba. Ezért javaslom a javítását. Feltöltöttem a módosított logint, de nyilván nem akar ezért senki letölteni újra mindent. Tehát a fent említett fájlban a következő kódot

        public static static function errors()
        {
                return self::$errors;
        }

kell lecserélni erre

        public static function errors()
        {
                return self::$errors;
        }

Szerkesztve: 2011. május 14.23:36
Gyakori probléma a captcha kép ( ellenőrző kód ) megjelenésének hibája ingyenes tárhelyeken. Ha valaki szembekerül ezzel, akkor javaslom elolvasni a következő hozzászólásomat: Link
Így a captcha kiszedhető. Csökkentett biztonsággal, de működhet a login.

Szerkesztve: 2011. június 7. 21:10
Letölthető a R.E. Login v2.0.1. ez egy javított változat csak, ami a különböző ingyenes tárhelyeken hibásan kiszámított url-ekre ad helyesebb és rugalmasabb megoldást. Mostantól működik a Captcha is atw.hu-n, freeweb.hu-n és 000webhost.com-on is. Ami hibájának oka egy részt az útvonalszámítás volt. Kivéve freewebet, ahol más jellegű probléma volt, de addig is, amíg azt megoldják ( ha sikerül ), sikeresen áthidaltam a hibát. Javítottam továbbá az e-mail aktiváltság ellenőrzést is. Ami valóban hibás volt. Így soha nem kellett aktiválni az emaileket akkor sem, ha az be volt állítva. A fent említett 3 tárhelyen teszteltem is a logint. Ezeken a tárhelyeken az url-t illető helyes beállítás a következő:

Minden esetben a telepítőben „weblap gyökérre” ( vagy a relogin2/classes/Config.class.php-ben levő PATH_BASE konstansra) vonatkoznak a beállítások, ami 4 féle képpen adható meg:

  • Üresen hagyva: Ekkor automatikusan számítja a login az url-t, ha tudja. Pl. freeweben működik.

  • / jellel kezdve, weblap gyökérkönyvtárától számítva a loginra épülő weblap url-je. Pl.: /weblapom ( Ez az ajánlott )

  • http-vel vagy https-el kezdve. Pl.: https://domain.hu/weblapom

  • / jel nélkül kezdve. Pl.: weblapom
    Ebben az esetben az automatikusan számolt útvonal megmarad. Csak az útvonal elé téve a megadott mappát, korrigálja azt. ( pl. atw.hu -n használható így )

Az említett 3 tárhelyen a beállítások:

  • atw.hu: userneved.atw.hu esetén vagy csak "userneved" -et írod be per jel nélkül, vagy per jellel "/userneved". Ha nem a fő könyvtárba tetted a logint, akkor a mappa neve is kell mögé. "userneved/weblapmappa" vagy "/userneved/weblapmappa"

  • freeweb.hu ( fw.hu ): Itt üresen lehet hagyni.

  • 000webhost.com: Itt meg kell adni az útvonalat. Ami gyökérkönyvtárba telepített rendszernél egyszerűen "/" jel. Vagy megadható http-vel is, ahogy fentebbi módszerekben írtam. Üresen hagyva nem működik, mert beteszi a public_html mappát is az útvonalba. Ami nem kell.

Ha nem elég érthető a leírás, jelezzetek vissza, és érthetőbbé teszem.

Szerkesztve: 2011. augusztus 11. 22:48
A relogin2/classes/Login.class.php -ben a logout metódusból hiányzott az onlinestatus mező módosítása után az adatbázisba feltöltés. Ezt javítottam. Egyetlen sor változott. De idézem az egész metódust:

public static function logout()
{
        $_SESSION['s'.self::$userNameVar]='';
        $_SESSION['s'.self::$userPassVar]='';
        if (System::$logged)
        {
                System::$user->onlinestatus = 0;
                System::$user->update(); //ezt a sort kell beszúrni!!
        }
        Session::getInstance()->setLifetime(0);
}

Ez egy nagyon apró javítás. Ezért nagyon apró verziószám változással, de feltöltöttem az R.E. Login 2.0.2 -es verzióját. A 2.0.1 sourceforge-ról továbbra is elérhető. Bár letölteni ezek után azt a verziót nincs értelme.

Szerkesztve: 2011. november 05. 17:30
Újabb hibajavító verzió került fel a loginból. Két hibát javít. Egy részt ha egy admin megváltoztatta egy felhasználó jelszavát a profil módosításnál, kiléptette az admint. Más részt a telepítőben megjelenhetett néhány undefined index hibaüzenet. Eddigi szokásomhoz híven ez a kisebb hibajavítás is csak kis verziószám változást jelent. Így most letölthető a R.E. Login v2.0.3

Akik megkímélnék magukat a teljes csomag letöltésétől, a következő linkeken megnézhetik, pontosan mi a két változtatás:

Kategóriák: 
Megosztás/Mentés

Hozzászólások

Lala képe

Én azt szeretném megkérdezni, hogy hogyan lehet megadni profilképet?

Lala képe

Rendben minden, bocsánat, nem kérdeztem semmit, szerveren megy, csak localhoston volt gond, gratulálok a munkádhoz.

Rimelek képe

A profilkép az email címtől függ. És az mkavatar.hu -n vagy a gravatar.com-on kell regisztrálni hozzá az email címet, és feltölteni a képet. Elvileg localhoston is ugyanúgy mennie kellene. De lényeg, hogy élesben működik neked is.

Maneg képe

hali
otthoni appservet használok amibe a következők vannak:
* Apache 2.2.8
* PHP 5.2.6
* MySQL 5.0.51b
* phpMyAdmin-2.10.3
(a php gdről fogalmam sincs h micsoda igazából:D..viszont rendszerkövetelmény ha jól olvastam) nah most akkor..
volt egy hibaüzenetem telepítés közben.. a relogin2\classes\System.class.php-ba volt problémája ezzel:
(azthiszem a 114. sor volt)

if(get_magic_quotes_gpc())
{
 @$akt_temp_str_name = stripslashes(@$akt_temp_str_name);
}

megváltoztattam erre:

if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
{
 @$akt_temp_str_name = stripslashes(@$akt_temp_str_name);
}

sikeres regisztráció ezek után

ezek után megcsináltam az index2.php-t amibe próbaképpen beleraktam a 2 kódot.. vagy is az iniset és a loginosat.. ahogy megnyitottam összeomlott az apache szerver.. rögtön utána újra is indult.. szóval a link megnyitáskor fatal error vagy nem tudom mi ez.. most igazából fogalmam sincs hogy mi lehet a probléma meg nem értek az egészhez túlságosan de szerintem azzal a GD támogatással lehet a gubanc.. be lehet állítani php.inibe? mert csak ennyit találtam benne GD-ről:

[gd]
; Tell the jpeg decode to libjpeg warnings and try to create
; a gd image. The warning will then be displayed as notices
; disabled by default
;gd.jpeg_ignore_warning = 0

előre is köszi a segítséget :)

Rimelek képe

Szia. Olyan tárhelyet szerintem nem nagyon találsz, ahol nincs GD. Esetleg saját gépen telepített szervernél lehet ilyen. És te pont ilyent használsz. Akkor viszont a php.ini -ben extension-öket kell keresni. Sok egymás alatt kikommentelve. És ha a gd is ki lenne kommentelve, akkor ki kell előle venni a pontosvesszőt. ( az a komment. ) És hogy mihez kell. Képmanipulációhoz. Képes ellenőrző kód (captcha) generálásához.

Ami a hibát illeti. Nincs is ilyen a loginban hogy $akt_temp_str_name. Főleg nem használok ennyi kukacot. A System.class.php 369. sora körül van egy metódus, ami a fentihez hasonló működést szolgál. De nem az, amit írtál. Nem tudom mi tudja így leállítani a szervert. De régen már nekem is sikerült valamivel. Ha azzal lenne problémád, ami a 369. sor körül van, és valamiért nem létezik a get_magic_quotes_gpc, akkor a fenti megoldás helyett, amivel soha nem fog lefutni ilyen esetben a függvény, a következőt ajánlom. A System.class.php elejére akár, vagy az init.php-d elejére tedd be a következőt:
http://codepad.org/eEXmHcOK
Nagy valószínűséggel úgyis be lenne kapcsolva az opció, tehát vissza lehet adni true-t. Ha meg kiderülne, hogy nincs bekapcsolva, akkor átírod false-ra a visszatérési értéket. De az eredeti forráskódot ezzel nem rontod el. És eleve vagy true-t vagy false-t adhat vissza. Csak

Maneg képe

jah igen csak ezt akartam beilleszteni: if(get_magic_quotes_gpc()) mert máshonnan néztem ki kódot.. csak telepítéskor kidobta hogy problémája van vele.. de csöppet rosszul is emlékeztem mert a 387. sor volt az.. mindenesetre visszaállítottam az eredetire.. beírtam az ini.php és a System.class.php elejére a code-ot.. nemigazán segített.. így is meghal a szerver
megpróbáltam megnyitni csak az init.phpt és már azzal összeomlott megint.. szóval ott nem tetszik neki valami
megnéztem apachenak meg mysqlnak az error logát és ezt dobta ki:
http://maneg.tk/errorlog.txt
hát én nem értek hozzá de te talán tudsz segíteni vele:D.. és azt megköszönném:D

Rimelek képe

De nem kell beillesztened azt az if-et, mert már benne van eleve a loginban. De te két kódot mutattál. Hogy mit mire írtál át. De már a "mit" se stimmelt. Mindegy. Ezek szerint csak az új kódot csonkítottad vissza a példa kedvéért. Már csak azt nem értem, mi az a sok php6 -os hibaüzenet, ha még csak php 5.2.6 -od van. Szerintem te rossz appserver verziót néztél. És feltetted az appserv fejlesztői verzióját, ahol még se a mysql, se a php nem stabil verzió.
http://www.appservnetwork.com/

Ha így van, tedd fel helyette a 2.5.10 -es appserv-et. Vagy más szervercsomagot. De ne egy még nem kész verzióval dolgozz.

Maneg képe

ezt írtam át:
if(get_magic_quotes_gpc())
erre:
if(function_exists(get_magic_quotes_gpc) && get_magic_quotes_gpc())
csak hogy tisztázzam magam:D(egyébként egyik oldalon találtam ajánlásképpen hogy így is át lehet írni.. és nálam bevált).. én se tudom mért a az ilyen alpha verziót kaptam le.. mindenesetre most lekaptam a stabil verzót.. majd később felpakolom és remélhetőleg e miatt nem működött.. ha ezután se lenne jó akkor már inkább regisztrálok valamelyik tárhelynél.. köszönöm a kitartó segítséget:D

Gerokrisz képe

Hali! Annyit kérdeznék hogy, ugye én regeltem be elsőnek, és én vagyok a tulajdonos, de a meghívóm nekem elfogy. Azt írtad nem kéne elfogynia, mit ronthattam el telepítésnél?

Rimelek képe

Szia. Ha admin vagy, kioszthatsz meghívókat is bárkinek. Vagyis saját magadnak is. Tehát elfogyhat a meghívód, de adhatsz magadnak újra és ismét lesz.

Gerokrisz képe

Hali! Rendben, köszi! Csak azért kérdeztem mert azt hittem hogy valamit elrontottam azért fogy el, de akkor nem. Kösz!

Krisztián képe

Kötve hiszem, hogy van olyan internet szolgáltató ami engedélyezi, hogy más hálozatból használják az SMTP szerverét, úgyhogy szerintem ez egy hiba a bejegyzésben.

Ellenben egy nagyon jó program született és nem kis munka lehet benne. Sok sikert, reméljük sok ember fogja büszkén használni ezt az R.E. "terméket".

Mellesleg köszönjük az ajánlást is. :)

Rimelek képe

Én diginet-es vagyok és hitelesítéssel használhatom az smtp-t. Vagyis kell jelszó és felhasználónév. Ami az internet csatlakozáshoz is. Szóval nem hiba. Régen UPC volt a szolgáltatóm. Ott hitelesítés se kellett. és használtam teszteléskor tárhelyeken.

Krisztián képe

Érdekes, azaz tökéletesen tudnék spammelni bármelyik internet szolgáltatón keresztül?

Rimelek képe

Azért nem egészen. Egy időben nem tudtam upc-ről levelet küldeni. Később kiderült, mások is jártak így, mert feketelistára került az ip-jük. Szóval azért valamit csinálnak, csak nem biztos, hogy jól. De csak erről a két szolgáltatóról tudok véleményt mondani. Viszont ez a blog is az abplusz.hu -n van, akik nem adnak smtp szervert. És azt írják, az smtp szervert a net szolgáltató adja.

Robika képe

Üdv
Nekem az lenne a problémám a R.E login 2.0- al,hogy a weboldalamon regisztrációnál a képen szereplő számokat, illetve betűket nem lehet látni csak a képet, de azon se a betűt se a számot. Localhoston tökéletesen működik.

Honlapom: www.majomfajl.fw.hu

Ha tudsz segíteni, illetve ha leírod,hogyan tudom belőle kiszedni ezt a Captcha-s dolgot akkor kérlek mielőbb válaszolj.

Az én meglátásom szerint a betűtípus nem tetszik neki vagy azzal van baj, mert ha jól értelmezem a kódot akkor az arial.ttf hozza létre a képen lévő számokat illetve betűket

Üdv: Robika

Rimelek képe

Szia. A relogin2/classes/Register.class.php -ben a következőt töröld ki, vagy tedd megjegyzésbe:

if (!isset($_POST['code']) or !isset($_SESSION['captcha_code']) or
                strtolower($_POST['code']) != strtolower($_SESSION['captcha_code']))
{
        self::$errors[] = "Érvénytelen ellenőrzőkód!";
}

És a relogin2/register.php -ben a következő sorokat töröld.

               
<tr>
         <td colspan="2" align="center">
                <img src="<?php print
                                System::getSitedir() . (substr(System::getIncLoginDir(), strlen(System::getIncSiteDir()))) .
                                'includes/captcha.php' ?>" alt="captcha" />
        </td>
</tr>
<tr>
        <td colspan="2" align="center">
                <input type="text" name="code" id="relogin-captcha-input" /><br />
                Írd be a képen látható kódot, vagy a művelet ereményét.
        </td>
</tr>

Akkor nem fog kérni regisztrációnál kódot. Annak oka, hogy freeweben nem működik, hirtelen nem tudom mi lehet. De ha lesz időm, lehet utánanézek, és ha valami hiba van a programban, akkor javítom. Vagy ha csak a freeweben ilyen, akkor leírom, hogy lehet működésre bírni, már ha lehet.

UI: ahogy látom az "eredményét" szót el is írtam a programban.

Robika képe

Nagyon szépen köszi a segítséget.Így sikerült végre regisztrálnom.Kezdő programozóként csak ámulattal nézzem az ilyen összetett programokat mint pl ez és csak gratulálni tudok neked ezekhez a remekművekhez.

Rimelek képe

Köszönöm. És sok sikert a tanuláshoz :)

Béla képe

Szia!
Én is egy kezdő vagyok a témában még csak egy-két dolgot sikerült megcsinálnom, de azok legalább működnek :D. Az lenne a kérdésem hogy, hogy lehet új "cuccokat" megadni a regisztrációnál pl:mi a kedvenc színe.
A mihamarabbi válaszodat előre is köszönöm.

Rimelek képe

A relogin2/changeprofile.php -ben kell felvenned az új inputot. Ehhez lényegében a html-t kell ismerni. És az elküldött űrlap adatait a relogin2/classes/ChangeProfile.class.php -ben feldolgozni. Abban is a request() metódusban kell a megfelelő új adatot átadni a user-nek. Találsz egy ilyen részt:

self::$user->birthdate = $post['bdyear']."-".$post['bdmonth']."-".$post['bdday'];
self::$user->public_mail = $post['public_mail'] == 'yes' ? true : false;

self::$user->sex = $post['sex'] == 'f' ? 'f' : 'm';
self::$user->lastname = $post['lastname'];
self::$user->firstname = $post['firstname'];
self::$user->country = $post['country'];
self::$user->city = $post['city'];
self::$user->website = $post['website'];
self::$user->msn = $post['msn'];
self::$user->skype = $post['skype'];
self::$user->other = $post['other'];
self::$user->avatar = $post['avatar'];

Ez után szúrd be, hogy
self::$user->kedvencszin = $post['kedvencszin'];
Ehhez az kell, hogy a html-ben a kedvenc szín mező „name” tulajdonságát így add meg: name="profile[kedvencszin]"
Tehát mindegyik profile -al kezdődik, majd szögletes zárójelben az új meződ neve.

Ha szeretnéd azt is vizsgálni, hogy helyesen adták-e meg az adatot, azt az isValidInput() metódusban teheted meg. És ha hiba történik, akkor a hibaüzenetek tömbjébe írd azt be. És a profil nem módosul.
self::$errors[] = 'Hiba történt!';
Persze mindezek mellett létre kell hoznod akkor adatbázisban is a kedvencszin nev mezőt megfelelő mezőtípussal.
Ez tehát a menete. De elengedhetetlen a szükséges területek ismerete. html, php, mysql

Gaborka képe

Szia, lenne egy kis problémám...azt az init.php fájlt a relogin2 mappában kell létrehozni vagy azon kívül a többi fájl közé? Mert ugye a relogin2 mappán kívül van egy init.php fájl...ha oda csinálom, akkor csak lecseréli. Ja és ezt:

<?php
require_once 'init.php';
?>

mely mappában lévő fájlokba kell beilleszteni? :S
és ezt:

<?php
require_once 'relogin2/login.php';
?>

Bocs, ha értetlenkedek, de valahogy ez nekem nem 1értelmű, hogy ezeket mely fájlokba kell beilleszteni, és hogy azok a fájlok melyik mappában vannak. Köszi előre is :)

Rimelek képe

Üdv. A most letölthető verzióban már az alap sablon eleve mellékelve van. Gyakorlatilag semmit nem kell tenned már, mert az init.php is benne van. Csak megfelelően meg kell adni az adatokat telepítéskor. Korábban volt külön a login és külön egy sablon. Ha valaki nemakarja az alapot használni, akkor annak létre kell hozni az init.php -t. De ha jó az alap, akkor nem kell. Mert már van.

Könyvtárstruktúra infó:

  • Fő mappa: Itt van többek között az init.php is. És az oldalakhoz tartozó fájlok. Mint admin.php, profile.php, stb... Ezeket kell megnyitni böngészőben és ezekben a fájlokban bármit írhatsz szabadon. Viszont ahol a login bizonyos funkcióit szeretnéd használni, mint például legtriviálisabban belépettség ellenőrzését, vagy akár csak az egyik modult ( bejelentkező űrlap, regisztrációs űrlap megjelenítése, userlista, kereső, stb.... ), ott kell ezekben a fájlokban a
    require_once 'init.php'; sor. A login.php-s nyilván akkor, ha szeretnéd a login űrlapot megjeleníteni. Ott kell használnod, ahol megjelenítenéd. És mindenképp az init.php -s sor után!

    Itt a design és includes mappák csak a design elemeket és az oldal fejlécét és láblécét tartalmazzák. A sablonhoz tartoznak.

  • Fő mappa/relogin2:
    Itt vannak a loginhoz tartozó fájlok és mappák. Közvetlenül a fő mappában megegyező nevű fájlokat találsz. Én a sablonban minden funkciót külön oldalba tettem. ( kivéve a login modult, ami minden oldalon megjelenik ). Azért egyezőek a fájlnevek, hogy ne kelljen keresni, melyiket hol találod. A Fő mappa/profile.php -ban a Fő mappa/relogin2/profile.php -t használja a login és így tovább a többi fájlnál is hasonlóképpen. Ezekben a fájlokban van a megjelenés. Azaz a html, űrlapok. Amik közvetlen a loginhoz szorosan tartoznak funkcionálisan.
  • relogin2/includes:
    relogin2 mappában levő fájlokhoz tartozik a programlogika. Amiket ebben a relogin2/includes mappában találsz. Szintén azonos fájlnevekkel.
  • relogin2/classes:
    A relogin2/includes mappában levő fájlok felhasználják az ebben a mappában levő osztályokat. A hasonló nevű fájlok utalnak arra, hogy mit melyik fájlban használ. CSak itt már nagybetűk is vannak a fájlnévben.
  • relogin2/libs:
    Ebben a mappában olyan eszközök vannak, amiket a classes mappában levő osztályok használnak fel. Ehhez nem kel és nem is nagyon szabad nyúlnod soha. Csak ha nagyon tudod, mit csinálsz.
  • relogin2/admin:
    Nevéből adódóan az adminhoz tartozó fájlok. Hasonló módon működik, mint ahogy elmagyaráztam a relogin2 és a relogin2/includes esetén. Csak mivel az admin több aloldalból áll, ezért ebben a mappában vannak a megjelenítéshez szükséges fájlok. És a relogin2 mappában levő admin.php csak ezeket segít kezelni. És ad egy keretet az adminnak.

A többi mappát nem magyaráznám.

UI: Ha üzenet elküldése után nem jelenik meg az elküldött üzenet, ne ijedjetek meg! Nem lesz elfelejtve. Csak amíg nem engedélyezem, az új rendszer nem mutatja még a feladónak sem az üzenetét. És egyelőre nem kapok értesítést az új hozzászólásokról.

Gaborka képe

Köszönöm a részletes magyarázatot :) Így már érthetőbb, hogy akkor nekem nem is kell egy fájlhoz sem nyúlnom elvileg :) Igen, bocs, hogy kétszer is elküldtem a hsz-t majdnem hasonló szöveggel, csak nem értettem, hogy valamit rosszul írtam be vagy mi történt...most már akkor ezt is értem :) Még egyszer köszi, és ha valami nem megy, akkor írok majd :)

Gaborka képe

Üdv. Nem is gondoltam, hogy ilyen hamar ütközök újabb problémába...na szóval most az a baj, hogy sikerült minden, amit leírtál, regisztráltam is, megkaptam az e-mailt is, de az aktiváló linkre ha rákattintok, akkor nem jön be a várt oldal. http://www.000webhost.com/ -on van a tárhelyem :S mikor rákattintok a linkre, akkor ez jön be: http://error404.000webhost.com/?
Miért?

Rimelek képe

Az url-ek miatt javaslom olvasd el a 2.0.1 verzióhoz készült útmutatót: http://bit.ly/nRPRjG

Ha helyesen állítod be az adatokat, akkor nem lesz gond 000webhost -on sem.

Gaborka képe

Elolvastam, és megakartam keresni a relogin2/classes/Config.class.php-t, de nincs is ilyen fájl :S megakartam nézni, hogy hogy van az beállítva, és átírogatom, ami nem stimmel, de hát ha nincs, akkor nincs is mit átírni :D most akkor mit csináljak?

Rimelek képe

Az csak telepítés után jön létre. Vagy a telepítővel állítsd be a megfelelő útvonalat, vagy telepítés után keresd a Config.class.php -t. De ott kell lennie, mivel abból veszi a beállításokat. Anélkül el sem indulna a login.

Gaborka képe

Sorry, megvan, de én arra gondoltam, hogy ez alapból benne van a rendszerben, és nem gondoltam, hogy csak feltöltés/telepítés után a szerveren jön létre...még jó, hogy ilyen hamar válaszoltál, köszi :)
(u.i.: hát mondtam, hogy bocs, az értetlenkedésem miatt...)

Még egy kérdés, mert ezt nem értettem kristálytisztán (de ha csak nem borítottalak még ki a kérdéseimmel):
Ha egy már meglévő html weblapot ugye php-ba átkonvertálok ( átmentem :D) és oda akarom beilleszteni ezt a login rendszert, akkor egyszerűen csak annyi a dolgom, hogy a relogin2 mappában lévő php részeket beillesztem egy keretbe (vagy táblába?) a honlap egy adott részén?

Rimelek képe

Nem biztos, hogy értem a kérdésed, de azt hiszem, a válasz: igen. A relogin2 mappában levő fájlokat kell felhasználnod. Annyit viszont fontos betartani, hogy azok a fájlok közvetlenül nem nyithatók meg böngészőben. Tehát azt nem teheted meg, hogy a relogin2 mappában levő fájlokat egy iframe keretben nyitod meg. Csak az adott oldalon megfelelő helyen require_once -szal érdemes beilleszteni PHP-ban.

Gaborka képe

Igen, én is úgy értettem, hogy nem csak úgy hipp-hopp beillesztgetem és kész is, a többi mappával együtt tenném szerverre, azok nélkül úgy sem menne, ez egyértelmű :D és a require_once után az init.php-t kell megadni? :S

Rimelek képe

Nézegesd a sablonfájlokat, amiket mellékeltem. Abból pontosan láthatod, hogy hogyan kell használni. Épp csak te máshol fogod adott esetben. A require_once egy php utasítás. Amit mögé írsz fájlnevet útvonallal, azt fogja beilleszteni és futtatni helyben. Az init.php -re is szükség van, de ugyanúgy az egyes modulok fájljainál is kell használni. Pont úgy, ahogy a példákban is írtam.

Béla képe

Szia!
Köszi a gyors választ a kérdésemre. Kipróbáltam és működik, de még valamit nem sikerült megoldanom ezzel kapcsolatban méghozzá azt, hogy az adatbázisban egyjegyű számként tárolom a kedvenc színt az egyszerűség kedvéért csak öt színt (1,2,3,4,5) és nulla az alapértelmezett az adatbázisban és azt szeretném megcsinálni, hogy csak egyszer lehessen megadni a kedvenc színt és utána a változtatás lehetőségét se tegye ki. Valami olyasmire gondoltam, hogyha a mező értéke 0 akkor lehet változtatni, ha 0-nál nagyobb akkor nem. Ebben szeretném a segítségedet kérni.
Előre is köszi.

Rimelek képe

És hogy próbáltad megoldani? Mert hogy a lekérdezett értékmindenhol adott. Csak egy if-et kell írni a ChangeProfile.class.php -ban, hogy ha a self::$user->kedvencszin értéke nulla, csak akkor változtassa a kedvencszin értéket. Ugyanezt a changeprofile.php -ban az űrlapoknál. Hogy a kedvenc színt meg se jelenítse. Vagy legyen a mező attributumai között a readonly="readonly"

Béla képe

Sajnos egyik sem ment nekem az iffel én is próbálkoztam, de ha beraktam akkor semmit sem jelenített meg se akkor, ha a classba raktam be, se akkor, ha a relogin2/changeprofile-ba raktam be, se akkor ,ha mindkettőbe. A readonlival pedig az volt a baj, hogy nem azt jelezte bejelöltnek ami a adatbázisban volt (pl: 4-es helyett 5-öst). Mit ronthattam el?

Rimelek képe

A readonly tulajdonság az értéket nem befolyásolja. Ez biztos. Viszont honnan tudnám, mit rontottál el, ha nem mutatod meg, hogyan próbálkoztál? :)

Rimelek képe

Kedves Józsi!

Bár a kérdést emailben kaptam, itt válaszolok, hogy más is okulhasson belőle.

A kérdés az volt, mit kell beszúrni a relogin2/profile.php -be, hogy az adott profilhoz tartozó, feltöltött avatar kép jelenjen meg. A saját felhasználód valóban a System::$user változóban van. De a profilban, ahogy az összes többi kiírt adatnál is látszik, a System:: előtag nincs. Csak a $user változót kell használod. Vagyis az általad írt:
$mappa= 'kepek/users/avatar/'.System::$user->T_users_userid.'/avatar.jpg';
helyett ezt kell írnod:
$mappa= 'kepek/users/avatar/'.$user->T_users_userid.'/avatar.jpg';
A másik kérdés az volt, hogy mit kell tenni, hogy a privát üzenetekről email értesítést kapj.
A relogin2/classes/Messages.class.php -ben van egy sendRequest() nevű metódus. Abban a végén kell beszúrnod az emailküldést a return true; előtt. Valahogy így:

if (!mysql_error()) {
     System::sendEmail($email_to, $email_subject, $email_body);
}

Az $email_subject és $email_body változók tartalmát szabadon beállíthatód. A body-ban html kódokat írhatsz. Ez az email tartalma. A subject nyilván a tárgya. Az $email_to változóba viszont le kell kérdezned a címzett e-mail címét. Még ugyanebben a metódusban van egy ilyen rész:

$toid = ($result = mysql_fetch_row(mysql_query(
        "select userid from ".Config::DBPREF."users where username = '$toname'"))) ? (int)$result[0] : 0;
if (!$toid)
{
        self::$errors[] = 'Nincs ilyen felhasználó!';
        return false;
}

Ezt cseréld erre:

$toid = ($result = mysql_fetch_row(mysql_query(
        "select userid, useremail from ".Config::DBPREF."users where username = '$toname'"))) ? (int)$result[0] : 0;
if (!$toid)
{
        self::$errors[] = 'Nincs ilyen felhasználó!';
        return false;
}
$email_to = $result[1];

Az email tárgyában a felhasználónevet is felhasználhatod, hogy köszöntsd a címzettet. A $toname változóban lesz a név.
Nem biztos, hogy mindent hibátlanul írtam. De remélem, sikerül megoldanod. A loginhoz tartozó readme-ben azt hiszem jeleztem is, hogy a php ismerete elengedhetetlen a login használatához. A módosításához pedig még inkább.

Kérlek, a további kérdéseid is itt tedd fel.

Rimelek képe

Kedves Gábor!

Szintén e-mailben küldött kérdésedre itt válaszolnék, hisz mindenkit érint az információ.

Úgy tűnik, a telepítő sql-ben idézőjelbe tettem a karakterkódolásokat. Az én mysql verziómnál, és amelyeken teszteltem a logint, ez nem okozott gondot. Ezért nem adok ki egy javított verziót most, de egy javított sql-t adhatok. Amit svn-re már feltöltöttem. Ha lesz folytatása a loginnak, akkor az új verzióval kijön ez is.

A javított sql: install.sql

Ezzel cseréld ki a relogin2/install mappában levő install.sql -t. És próbáld újra telepíteni. Előbb töröld a már telepített táblákat azért. Ha véletlen valamit feltöltött. Vagy adj más prefixet a tábláknak.

Gábor képe

Köszönöm a gyors segítséget!

Sajnos nem működik. Az alábbi hibáüzenetet katam:
A telepítés közben hiba történt:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'Annak a usernek az id-je, aki torolte mar az uzenetet\' , `sendtime` TIMESTA' at line 5 SQL:
CREATE TABLE IF NOT EXISTS `relogin_messages` (
`messageid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`fromid` INT UNSIGNED NOT NULL ,
`toid` INT UNSIGNED NOT NULL ,
`deleted` INT UNSIGNED NOT NULL COMMENT \'Annak a usernek az id-je, aki torolte mar az uzenetet\' ,
`sendtime` TIMESTAMP NULL ,
`readtime` TIMESTAMP NULL ,
`subject` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`body` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY (`messageid`) )
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci

Nem gond ez, mert az sql fájl manuális átírásával, mysql-be történő importálásával - prefix,{charset}, collate paraméterek konstansokra történő kicserélésével ,létre tudom hozni az adatbázis struktúrát.

Ami nekem gondot okoz, hogy mivel nem jön létre a Config.class.php, ezért a system.class.php-ben hibaüzenetet kapok a rendszer indításánál.
Igyekeztem Config_tpl.class.php-t bemásolni a classes kt-ba és átnevezni confog.class.php-re, de az nem vezetett eredményre. Úgy látom, hogy igen hasonló a felépítése az install.class.php config.class-t létrehozó kódja alapján. Futtatva a login rendszert , hibaüzenetet kapok a system.class.php-ben a 283. sorra: $path_base = trim(Config::PATH_BASE);
Amit nem értek: Mit kell beírnom konkrétan const PATH_BASE = ''; sorba az idézőjelekbe , a config_tpl.class.php-ban, hogy működjön a konfiguráció, ha a login rendszer az otthoni webserver-en van egyelőre. Login kt az alábbi útvonalon található: localhost/kt/login

Nagy segítség lenne, ha feltennél egy config.class.php-forrást, vagy feltöltenél egy config fájlt.

Köszönettel,
Gábor

Rimelek képe

Most, hogy jobban megnéztem, szerintem nálad más a baj. Ahogy látom bármilyen idézőjelre kiakad. Már csak egy tippem van, amire eddig nem is gondoltam. Mivel még sosem találkoztam olyan szerverrel, ahol ez be volt kapcsolva. Ez pedig magic_quotes_runtime opció a php.ini -ben. Ami azért felel, hogy ha bekapcsolod, akkor a fájl beolvasásakor az idézőjeleket escapeli. Úgy, mint a magic_quotes opciónál a post és get-ből jövő adatoknál. A telepítő pedig az install.sql-t próbálja beolvasni. Amiben idézőjel van. escapeli, de úgy már nem érvényes az sql szintaktika. Megoldani elvileg azzal tudod, ha az init.php -be beírod ezt:
set_magic_quotes_runtime(false);
Majd jelezz vissza, hogy megoldotta-e.

Gábor képe

Működik!
Köszönöm szépen!
Valóban a php.ini-ben be van kapcsolva ez az opció. Nem emlékszem mikor telepítettem ezt a rendszert, de már elég régen. Lehetséges, h valamihez kellett....az is lehet, h ennél a verziónál ez az alapértelmezett beállítás. Appserv 2.5.10-része
Mégegyszer köszönöm szépen!
Üdvözlettel,
Gábor

Miklós képe

Szia. Nekem olyan gondom lenne, hogy az uw.hu-n az ingyen tárhelynél nem indul el a ******.uw.hu/relogin2/install/ Ez mitől lehet? Ezt írja ki: Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$' in /mnt/ultraweb/m/my/myvalami/relogin2/install/index.php on line 37

Rimelek képe

Szia. UW egy őskövület.

És nem is akar fejlődni. Még php 4.4.7 van rajta azt hiszem. És az már sok éve elavult. Már az 5.2 sem támogatott. És a php fejlesztői javasolják a frissítést 5.3-ra. A loginhoz persze az nem szükséges. De a lényeg, hogy uw-n nem fog működni. De szinte bármelyik másik tárhelyen valószínűleg igen.

Azokra a tárhelyekre írtam segítséget, amelyeken problémás lehet a telepítés. De csak helyes beállítás kérdése. Javaslok egy freeweb-es tárhelyet. Ott egyébként már 5.3 van. Így nagy valószínűséggel sokáig fognak ott működni a programjaid. Feltéve, hogy azok a programok nem régiek. ATW-n 5.2 van. Azt is használhatod. De uw esélytelen :)

PHPMastR képe

Hali!

Azt szeretném megkérdezni, hogy a bejelentkezett user adatait hogy kéred le? Tehát mi a változója?

pl:
$jelenleg bejelentkezett user valtozoja=mysql_query("SELECT * FROM relogin_users where username='$jelenleg bejelentkezett user nevenek valtozojaval'");
$Felhasznalodata=mysql_fetch_assoc($jelenleg bejelentkezett user valtozoja);

Én arra lennék kíváncsi, hogy ezeket milyen változóval kell behelyettesítenem:

$jelenleg bejelentkezett user nevenek valtozojaval
$jelenleg bejelentkezett user valtozoja

Kösz: PHPMastR

Rimelek képe

Helló, van erre objektum.

<?php echo System::$user->username ?>
A többi adat is a System::$user-ben van. A változónevek megegyeznek a users és profiles táblában levő mezőnevekkel.

PHPMastR képe

Oké kösz!

Valamint arra lennék még kíváncsi, hogy a v.1.8-ban hogy vannak ugyan ezek az adatok...

Rimelek képe

Ezt megválaszoltam ott: R.E. Login 1.8.1

gkaroly képe

Szia!

Az érdekelne, hogy, hogyan ellenőrzöm ebben azt, hogy az éppen belépett user melyik csoportban van?

Előre is köszi a választ!
gkaroly.

Rimelek képe

Üdv. Adok egy linket, ahol leírtam. Ha valami nem világos, kérdezhetsz itt újra:
http://bit.ly/pcO1MN

pisti87 képe

nos mint a másik témában is irtam jelenleg a nyelvi megoldásmak a php studió által fejlesztetz language.php részre gondoltam ami végulis egyszerüen tömbként tartalmazza a nyelvi fájlokat ezt viszont ugy gondoltam
hogy ez hejett

$text = array(

// A nyelvekhez megjelenítendõ szövegek. A minta alapján elõre az országkód, utána a szöveg.
"hu" => "Üdvözöllek!",
"en" => "Welcome!",
"de" => "Wilkommen!"

);

// Megejelenítendõ szöveg, ha nincsen az adott nyelvhez definiált szöveg.
$default = "Üdvözöllek! - Welcome! - Wilkommen!";

$lang = $HTTP_ACCEPT_LANGUAGE;
while(list($country, $message) = each($text))
        {
        if($lang == $country)
                {
                $printer = $message;
                break;
                }
        }
if(!isset($printer))
        {
        $printer = $default;
        }
print($printer);

?>

valahogy így nézne ki

$text = array(

// A nyelvekhez megjelenítendõ szövegek. A minta alapján elõre az országkód, utána a szöveg.
"$hu_welcome" => "Üdvözöllek!",
"$en_welcome" => "Welcome!",
"$de_welcome" => "Wilkommen!"

);

ezek pl a lang/hu/main.php ben lennének vagyis a hu mapában lenne a reg.php login.php meg ezek nyelvi része de a lang mapában lenne egy index.php amiben ez lenne

$lang = $HTTP_ACCEPT_LANGUAGE;
és itt szeretném beállítani azt hogy ez alapján válassza ki a hu vagy en mappát és azon belül a fájlokat vagy csak egy fájlt amiben a nyelvek lesznek ez esetben lang/hu/lang.php vagy lang/hu_lang.php lenne még nem találtam ki mejik lenne a jobb és egyszerűbb de már a lehetőségek meg vannak csak a kivitelezés még nem teljesen jó. amugy ha lesz 3as ajánlanám a seditio172 es verzioját van már félkész majdnem teljes kész magyarosításom ezt a http://replikacms.ininet.hu oldalon nézheted meg még finomítgatom de ragaszkodnék a loginodhoz hogy az igazat megvaljam

Új hozzászólás