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

Rimelek képe

Valami nem stimmel. Ennek a hozzászólásomnak nem itt kellene lennie. A hozzászólás az alábbira válasz:
http://rimelek.hu/comment/1152#comment-1152

Nem említettél semmit a php studióról. De meg kell mondjam, a problémád megértésében nem segít a helyesírásod és fogalmazásod. A $HTTP_* változókat nem érdemes célszerű. a $_SERVER['HTTP_*'] változókat inkább helyettük. A csillag helyett értelemszerűen a megfelelő név folytatódik. Ráadásul az ACCEPT_LANGUAGE nem csak egy nyelvet tartalmazhat. Tehát szimplán egyenlőséggel nem elég vizsgálni.

A $hu_welcome, $de_welcome nem tudom, mit tartalmaz. De ennek ilyen formán nem látom értelmét.

Annyi tippet adhatok, hogy válaszd a lang/hu/valami.php -s verziót. Jobban el tudod különíteni a nyelveket.

Viszont ennek a témának valóban semmi köze sincs a loginhoz. Ha már ismered a codenet fórumot, és nem szeretnél más fórumon kérdezősködni, akkor javaslom, tedd fel a kérdést a codeneten (egykori phpstudio)

Nagyon kevés az időm mostanában. Azért sincsen semmiféle új bejegyzés a blogban sem. Így nem garantálom, hogy én válaszolok. De ha jól megfogalmazod a kérdést, akkor más fog.

Gaborka képe

Hello Rimelek! Egy ideje nem volt problémám, mert ugye a loginsys-t használtam...de:
most visszatértem újból a re login-hoz, és azt szeretném megkérdzeni, hogy hogyan kell beállítani egy oldalra, hogy azt csak belépés/regisztráció után lehessen megtekinteni? (pl. gondolok itt arra, hogy mondjuk csinálok egy letöltés oldalt, és azt a lapot csak a regisztrált felhasználók nézhetik meg.)
köszi előre is! :)

Rimelek képe

Éppen előtted is fel lett már téve ez a kérdés és linkeltem egy megoldást. De mivel sokan kérdezik ezt és már rég terveztem, erről külön cikket írni, most megtettem:
Itt olvasható

bence képe

Kedves Rimelek! Olyan problémám lenne hogy a 000webhost tárhelyen vagyok és fölraktam ezt a loginrendszert és tetszik is csak a kijelentkezésnél folyamatosan ezt a linket kapom www.valami.com/public_html/login/logout.php?relogin_logout=1 holott ezt kéne http://naruto-fanatic.webege.com/login/logout.php?relogin_logout=1 ! próbálgattam módosítgatni keresni rá megoldást de nem ment kérlek szépen segíts nekem!

Rimelek képe

Kedves Bence!

Eredetileg rossz helyen tetted fel a kérdést, így ide helyeztem. A kérdésedre a válasz a bejegyzésben van, de azért idézem is:

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.

flooded9 képe

Üdv ismét RimElek.

Sikerült a Captcha-t megoldanom , leszedtem a javított verziót , a regisztrációs megerősítés viszont sosem jött meg. Nem lehet valahogy a megerősítést kiszedni a kódból? Előre is köszönöm a választ!

Rimelek képe

Van rá mód. Annyira, hogy telepítésnél megadható, kell-e email aktiváció :)
De utólag a relogin2/classes/Config.class.php -ben is:

/*Email aktiváció szükséges*/
EMAIL_ACTIVATION = true,

Itt a true-t kell false -ra átírni.
Viszont ha nem érkeznek meg az emailek, akkor vagy spam mappába érkeznek, ahol nem nézed, vagy hibás adatokat adtál meg. Pl nincs smtp használati lehetőséged, de bekapcsoltad. Azt is telepítésnél lehet állítani. De utólag is. Vagy néha az is gond, ha nem azonos domainhez tartozó e-mail címet használsz feladóként, mint amin a tárhelyed van.

Dual képe

Halle :) Olyat vettem észre, hogy én pl más felhasználó jelszavát nem tudom átírni :/ Ugye új jelszó megadásához is kéri a felhasználó régi jelszavát :/ Ez megoldható hogy user szerkesztésnél tudjam változtatni? :)

Rimelek képe

Ez egy bug, ami eddig fel sem tűnt. Még a jelszó változtatást ki lehetett volna trükközni adatbázis közvetlen módosítása nélkül is, de minden adat módosításához kell az előző jelszó. Amit még admin sem tudhat. Ha minden jól megy, ezt hétvégén megjavítom. Addig azt tudom javasolni, hogy relogin2/classes/Login.class.php -ben levő Login::getPasswordHash metódust felhasználva írass ki magadnak egy másik jelszót. Persze lehetőleg nem publikus oldalon :) És azt másold be a users táblában a userpass mezőbe az adott usernek. Vagy szintén phpmyadminnal, de változtasd meg a saját jelszavad ( vagy használhatsz tesz felhasználót ), másold át a saját jelszó hash-ed a másik userhez, és módosítsd vissza a jelszavad.

De majd kijavítom hamarosan.

Dual képe

Hali :))) Huh ez magas :DDDD

Am átírtam a mail címet :D Hátha most tudsz majd értesíteni :)

Rimelek képe

Ha magas, akkor várj pár napot a javításig. Amúgy ha tudnád is a felhasználó jelszavát, akkor se lenne jó, mert kidobna téged utána.

Dual képe

Hali :)))

Persze h várok :D
Nem a felhasználó jelszavát akarom tudni, csak hogy szerkeszteni tudja admin ill owner a felhasználó profilt.

Rimelek képe

Tudom, csak egy újabb, az előzővel összefüggő bugra hívtam fel a figyelmet :)

Dual képe

Okés okés :)))))

Viszont megint elakadtam :////

Ugye felvettem egy új mezőt a profilhoz. Szerkesztettem hozzá mind a 2 szükséges php-t + sql-t Működik is. Már csak a profile.php-n a kiíratásnál nem vágom h hogyan írja ki :/
Az other sort lekérdezi profilba :/ De viszont amit én raktam hozzá azt már nem :S

else if($var == 'nick')
{
        $value = ($user->nick);
}
Rimelek képe

Ahol most próbálkoztál, ott csak akkor kell belenyúlni, ha nem jó az eredeti érték a táblából. Ha új adatot akarsz kiíratni automatikusan, akkor még egy mappaszinttel beljebb kell keresni egy profile.php -t. A relogin2/includes/profile.php -t. Abban van az elején egy tömbben, hogy mi kerüljön kiírásra
$titles = array(
És a benne levőkhöz hasonlóan vedd fel indexként a mezőnevet, értékként pedig azt, ami az új infó címe lesz. Pl 'nick' => 'Becenév',

Dual képe

Köszönöm szépen :))) Ez sikerült :)))

Rimelek képe

Amit korábban írtam, hogy bug, nem bug. Azaz a jelszó a profilmódosításnál mindig a belépett felhasználóé, nem azé, akinek a profilját módosítják. Tehát csak a sajátodat kell tudnod, nem a másikét. A jelszó változtatásnál történő kidobás viszont valószínű valós hiba. Azt nem sokára nézem.

Megnéztem. Hiba volt. Javítva.

Dual képe

Szia :))

Egyik sem bug, csak voltam olyan láma h nem próbáltam ki :) Lehet szerkeszteni a profilt, igen a saját jelszavaddal.
A jelszó átírás is megy szal azzal sincs problem :)

Viszont lenne egy olyan kérdésem hogy csináltam egy csoportot sql ben, és beszeretném rakni adminba, hogy ne sql ben keljen szrakodni az átiratásával.

Ugye előre megvannak adva a csoportok paraméterei:
Ha users_admin.php ban megpróbálom úgy megoldani mint a rank /szal átírom a táblákat/ Akkor az nagy baromság?

Rimelek képe

A jelszó átírás is megy szal azzal sincs problem :)

Nem az átírással volt probléma, hanem azzal, hogy utána kivágott. És ez valós hiba volt. Talán csak nem tűnt fel, hogy miért dobott ki.

Ha users_admin.php ban megpróbálom úgy megoldani mint a rank /szal átírom a táblákat/ Akkor az nagy baromság?

Ha csoportból is csak egy lehet egy személyhez, akkor másolhatod a rangok megoldását, de akkor nem biztos, hogy van értelme a csoportoknak. De ha neked elég, akkor megteheted.

Hullmann Béla képe

Helló!!
A /relogin2/install-nál ezt a hibát írja ki atw.hu-n: Warning: require_once(Config_tpl.class.php) [function.require-once]: failed to open stream: No such file or directory in /relogin2/install/init.php on line 23

Fatal error: require_once() [function.require]: Failed opening required 'Config_tpl.class.php' (include_path='.:/usr/local/lib/php') in /relogin2/install/init.php on line 23

Köszönöm segítségedet előre is!

Rimelek képe

Helló,

ellenőrizd, hogy az ftp kliensed nem alakítja-e át a fájlokat kisbetűssé feltöltéskor. Mert lényeges, hogy megmaradjanak a nagy kezdőbetűk az osztályoknál.

Nézd meg, milyen fájlok vannak a relogin2/install mappában. És ha kisbetűsek mind, akkor töröld a logint és próbáld újra feltölteni a fájlokat.

Total Commanderben a kisbetűssé alakításról a következő linken olvashatsz:
http://ingyenweblapok.hu/kezdeti_lepesek.php

Hullmann Béla képe

Köszi!!
Még van egy hiba...
a Regisztrációnál az ellenőrző képet nem jeleníti meg... Köszönöm!

Rimelek képe

A bejegyzésben megtalálod a megoldást. Leírtam pár tárhelyet, hol hogyan kell helyesen beállítani. ITT

De a legújabb login verziót használd!

izzsi képe

Hali!
Nekem a regisztrációnál (mindegy hogy sima vagy meghívóval) nem fogadja el sehogy sem az ellenőrző kódot. "Érvénytelen ellenőrzőkód!". Mit kell megnéznem, hogy működjön. 1-2hete akkor még tökéletes volt.

Rimelek képe

Úgy érted, 1-2 hete tökéletes volt, és aztán látszólag magától elromlott? Vagy változtattál valamit rajta közben?

Az ellenőrzőkódhoz nem kell semmi extra. Ha a kép megjelenik és használhatsz session-öket ( ha a süti engedélyezve van), akkor összehasonlítja az elküldött kódot az előtte session-ben letárolttal.

A karakterkódokkal sem lehet baj, mert ékezetes karaktereket nem tartalmaz az eredmény. És a kis/nagy betűk különbsége sem számít. Csak a session hibájára tudok gondolni.

Belépni be tudsz már regisztrált taggal? Minden böngészőben ugyanaz a hiba?

izzsi képe

nem változtattam, de tegnap amikor írtam azután néztem az adatbázist és csak 2 sor volt a session táblában (nem lehetett elérni a tárhelyet meg a db-t sem tegnap 000webhost). A hét elején meg több mint 30 sor volt.
De ha simán megnyitom a böngészőben a register.php-t akkor jó, de ha behívom az oldalba akkor nem fogadja el a kódott. A meglévő felhasználókkal belehet jelentkezni, sütik engedélyezve vannak. FF8 és IE8 alatt is ez van.

Rimelek képe

A sessions tábla tartalma folyamatosan változik. Időnként törlődnek belőle a rekordok, amik nem lettek megjegyzésre jelölve.

izzsi képe

Megoldódott most néztem, hogy miket is változtattam, az oldal legelején volt egy stílus választó session.

<?php
session_start();

if (isset($_GET['style']) && intval($_GET['style'])>0 && intval($_GET['style'])<3)
    {
    $_SESSION['style']=intval($_GET['style']);
    }
if (!isset($_SESSION['style']))
    {
    $_SESSION['style']=1;
    }
?>

Ezt kiszedtem, most már jó. ez kavart be.

Rimelek képe

Hogy ez miért kavart be, nem tudom. A captcha nem használ ilyen változókat. Talán a session_start() volt kétszer meghívva, mivel a login is meghívja egyszer. Ilyenkor azért szokott hibaüzenet lenni, de lehet, csak újragenerálta a session id-t és az elmentett session törlődött.

A stílusválasztó többi része szerintem nem okozhatott problémát.

Dual képe

Hali :))))

Nagyon alakulgat az oldal :D De viszont megint hibába ütköztem :S

A Te alap login css-eddel kezdtem és átalakítottam már, de olyan gondom lenne hogy:

jobb oldali menű alatt tudok többet is csinálni.

viszont ha baloldalra szeretnék rakni ugyan oda ahol jobb oldalt van akkor szétcsúszik az egész oldal :/
Ez miért lehet?

Rimelek képe

Őszintén szólva nem is egészen értem a problémát. És inkább általános css és/vagy html ismeret kérdése, de demo oldal, kép és forrás nélkül nagyjából semmit nem tudok hozzászólni. Legjobb a demo oldal.

Dual képe

Addig értem is csak azt nem vágom hogy miért ugrik lejjebb a bal menű? :S Mutatom:

http://c-sz-b.weboldala.net/teszt/panel1.png
http://c-sz-b.weboldala.net/teszt/panel2.png

A 2 nál ha behívja a tartalmat akkor leugrik a menű :/

Rimelek képe

Az a helyzet, amit elsőre is mondtam. Ez általános css és html ismeret kérdése. Már hozzá sem teszem a "vagy" -ot az "és" mellé, mert mindkettőt rosszul használod. De nem szeretnék itt áttérni html és css témára. A weblap blokkjainak elrendezése az alap logintémában div-ekkel és css float -tal történik. Ha nem tudsz velük megbirkózni, áttérhetsz a táblázatra. Nem szép megoldás, de neked talán elég, hogyha működik.

3 left-side -od van, pedig az id-nek egyedinek kell lennie. És mind a három a right-side után... Valami nem létező float típussal próbálod floatolni ( left, right, none van. left-top -ról nem tudok ). A favicon hivatkozás és a title tag a body-n belül van. Mindkettő a head -be kell. Valamint figyelj a blokkok méreteire. Ha nagyobb a mérete az egyiknek, mint amennyi elfér, akkor egymás alá kerülnek.

Ezek összességében bármelyik, vagy egyszerre mindegyik okozhatja az elcsúszást.

Dual képe

Nah szal ....

Kivettem a head cuccost ...
Egy side-t hagytam benne, annak csináltam külön css-t és máshogy neveztem el.

Viszont akkor sem akar sikerülni :S

Blokk mérete ugyan akkora mint a jobb oldali :/

css tartalma:

/* bal oldal
*/

#left-side2
{
        float: left;
        width: 170px;
}

/* bal oldal vége
*/

#menu
{
        display: inline;
        margin: 0;
        padding: 0;
}

#menu li
{
        padding-left: 5px;
        list-style-type: none;
}

#menu a
{
        float: left;
        width: auto;
        height: 20px;
        background-image: url('img/menuicon3.gif');
        background-repeat: no-repeat;
        background-position: left center;
        padding-left: 20px;
        padding-right: 5px;
        display: block;
}

#left-menu2
{
        margin: 0;
        padding: 0;
        margin-top: 5px;
       
}

#left-menu2 li
{
        padding-left: 5px;
        list-style-type: none;
}

#left-menu2 a
{
        width: auto;
        height: 20px;
        left: 30px;
        padding-left: 20px;
        padding-right: 5px;
        display: block;
}

#left-menu2 a#relogin-logout
{
        background-image: url('img/sign-out.png');
        background-repeat: no-repeat;
        background-position: left center;
}

#left-menu2 a#relogin-profile
{
        background-image: url('img/user.png');
        background-repeat: no-repeat;
        background-position: left center;
}

#left-menu2 a#relogin-inbox
{
        background-image: url('img/email.png');
        background-repeat: no-repeat;
        background-position: left center;
}
/* bal menu vége
*/

footer.php

<div id="left-side2">
        <?php if(!System::$logged) {
                        require_once 'relogin2/login.php';
        } else { ?>
        <img src="<?php print System::$user->avatar(120); ?>" alt="avatar" />
        <ul id="left-menu2">
                <li><a id="relogin-logout" href="<?php print System::logoutLink() ?>">Kijelentkezés</a></li>
                <li><a id="relogin-profile" href="profile.php">Profil</a></li>
                <li><a id="relogin-inbox" href="msginbox.php">Posta (<?php
                       
                        $stat = System::msgStat();
                        print $stat['inbox'].'/'.$stat['unread'];
                ?>)</a></li>
        </ul>
        <?php } ?>
</div>

Akkor mit cseszek el? :S Mert komolyan nem értem már :(

Dual képe

Re

Rájöttem miért nem ment .... :/ A headerbe <div id="content"><br /> elé kellett berakni és a contentet meg átírni kisebbre :D

Rimelek képe

Bizony. A jobb oldal csak azért került a footer.php-be, mert az a tartalom után következik a forráskódban. Örülök, hogy megoldottad. És örülök, hogy valaki ( többnyire ) helyesen használja a forráskódszínezőt :)

Dual képe

Köszi :D kezdek úgymond rájönni hogy mi merre hány méter xD :DD

A másik ami érdekelne, azt hogy tudom megoldani hogy pl ha kapok üzenetet - és válaszolok rá akkor ne maradjon benne a kapott üzenet?

+ pl akkor villogna a szám (0/0) ha jön egy üzenet.

Rimelek képe

relogin2/includes/msgwrite.php -ban kb 54. sorban ilyet találsz:
$data['body'] = $message->body;
Töröld ki!

A villogás már bonyolultabb. Mert ott javascriptet kell írni. Ahol villogtatod a szöveget, ha az új üzenetek száma több, mint nulla. Az includes/footer.php -ben kezelni ezt javascripttel. Illetve még az relogin2/includes/msgmenu.php-ben is van egy ilyen link, de azt talán felesleges villogtatni.

Dual képe

Hali

Azzal szembesültem, hogy ugye admin rangú nem tudja az ownert le fokozni. Viszont userből admin tud ownert csinálni. Ez bug lenne? Valahogy levédhető?

Rimelek képe

Először is bocsánat a késői válaszért, de egész nap nem voltam itthon. Nem érdektelenségből reagálok későn :)

Nevezhetjük bugnak, mert nem gondoltam rá, hogy le kéne kezelnem, pedig lehetne. De ugyanakkor talán éppen ezért nem is igazán bug. Inkább csak egy nem tervezett lehetőség. A tulajdonosi rang megvonása azért nem lehetséges az adminnak, mert a tulajdonos egy nála magasabb rangot jelent. A nála magasabb rangúak rangját pedig ne vonhassa meg. Ez az alapkoncepció.

Hogy közben tulajdonosi rangot tud adni, az tényleg nem szerencsés, mert beregisztrál egy usert, ad magának tulajdonos rangot, és onnantól akár az admint is felruházhatja tulajdonos ranggal.

Szóval hajlok afelé, hogy bugnak nevezzük, amit majd akkor javítani is fogok. Addig pedig olyannak adjatok admin rangot, aki megbízható, és előreláthatólag nem próbálja kijátszani a rendszert. De jogos a felvetésed, és köszönöm az észrevételt mindenképpen! Örülök, ha vannak. Ebből látszik az érdeklődés és ettől fejlődik, javul egy program.

Dual képe

Hmm hmmm ....

Falba ütköztem megint :S
Leszerettem vna kérdezni a rang csoportokat egy táblázatba ezzel a metódussal:
<?php print $user->T_users_rankName()  ?> és nem sikerült :$
Lehet h én csinálom rosszul? :D

Rimelek képe

Ahogy azt a jogokról írt speciálisabb bejegyzésemben kifejtettem, és ahol szintén kérdeztél egyébként :), a helyes metódushívás a $user->rankName(). A T_users_ prefix a tulajdonságok elé kerülhet. Azoknál is azokhoz, amik egy mezőt jelentenek az adatbázisban. Ez a user objektumnál a users és a profiles tábla mezőire vonatkozik. A rangnak a neve pedig a ranks táblában van. És csak a rang id-je kerül a felhasználó tábla rekordjába rankid néven.

Venci képe

szia, én is probálom beinditani a loginos rendszeredet, de elakadtam. Csak részben értettem meg a leírasokat azt hiszem. Megpróbálom röviden. Az oldalam fájljai a login mappában vannak,(nem a relogin mappában. lehet ez baj?) és elérhetőek loginolás nélkül, pedig includeoltam az oldal elejére a <?php
require_once 'init.php';
?>
vagy ez nem elég?
2 kérdesem, hogy hogyan tudnám kiiratni az user nevet az oldalra?
köszi elore is a választ.

Rimelek képe

Üdv. A védelem csak azokra a fájlokra vonatkozik, amik a login funkciójából adódóan nem tehetők ki a nyilvánosság elé. Például admin felület. Profil módosítás, üzenetküldés stb. A többinél neked kell gondoskodni róla, hogy korlátozd a hozzáférést. Mivel lehet, hogy épp publikussá akarod tenni a felhasználó listát, miközben más oldalakat pedig korlátoznál. És minden esetben kell az init.php.
A jogokról a következő bejegyzésben írtam:
R.E. Login 2.0 -tól oldalak megtekintésének korlátozása és jogok (rangok)

Rimelek képe

Kaptam egy kérdést e-mailben, hogy hol lehet a kiküldött e-mailek szövegét módosítani. Mivel kértem, hogy a publikus kérdéseket itt tegyétek fel, ezért itt válaszolok rá.

Lehet módosítani a szövegeket, de a változók beillesztésére a módosításoknál figyelni kell.

Több funkcióban is van e-mail küldés. Mindegyik a relogin2/classes mappában levő fájlokban történik. Az e-maileket a System::sendEmail() metódussal küldi el a login minden funkciónál. Ennek első paraméterea címzett. Második az e-mail tárgya. Harmadik a tartalom.

A funkciók és fájljaik sorra:

  • Regisztráció aktiválása.
    Ez a Register.class.php-ben található a request() metódusban. A következő részben:

    $body =
            "Kedves ".$user->username."!<br /><br />".PHP_EOL.
            "Valaki regisztrált a nevedben az oldalunkra. ".
            "Amennyiben nem te voltál, nyugodtan hagyd figyelmen kívül a levelet.<br /><br />".PHP_EOL.
            "A következő linkre kattintva aktiválhatod a hozzáférésedet:<br />".PHP_EOL.
            "<a href='$link'>$link</a>";
    System::sendEmail($user->T_profiles_useremail, "Regisztráció", $body);
  • E-mail cím módosítása után a cím aktiválása
    Ez a ChangeProfile.class.php-ben történik. Szintén a request() nevű metódusában.

    $body =
            "Az e-mail címed sikeresen megváltoztattad.".PHP_EOL.
            "Kattints az alábbi linkre az aktiválásához: <br />".PHP_EOL.
            "<a href='".$link."'>".$link."</a>";
    System::sendEmail($email, "E-mail cím aktiválás", $body);
  • Meghívó küldés
    Az Invites.class.php -ben a send() metódusban a következő rész:

    $body =
            "Kedves címzett!<br /><br />".PHP_EOL.
            "Weboldalunk (<a href='$site'>$site</a>) <br />".PHP_EOL.
            "egy felhasználója (".System::$user->username.") meghívót küldött neked.<br />".PHP_EOL.
            "Az alábbi linkre kattintva létrehozhatod saját profilodat.<br />".PHP_EOL.
            "<a href='$reglink'>$reglink</a>";
    if (isset($_POST['invite']['message']))
    {
            $body
                    .= "<br /><br />".PHP_EOL.
                    System::$user->username." üzenete: <br />".PHP_EOL.
                    nl2br(htmlspecialchars($_POST['invite']['message']));
    }
    System::sendEmail($email, 'Meghívó', $body);

    Ez kicsit hosszabb, mert amikor a meghívónál a meghívó személy is ír egy megjegyzést, az is hozzáadódik az e-mail tartalmához.

  • Elfelejtett jelszó
    A ForgotPass.class.php-ben a send() metódusban:

    $body =
            "Az új jelszavad a következő linkre kattintva állíthatod be: <br />".PHP_EOL.
            "<a href='$link'>$link</a>";
    System::sendEmail($email, 'Elfelejtett jelszó', $body);

    Még ez a legrövidebb.

Ha további kérdés van ezzel kapcsolatban, azt is itt tegyétek majd fel. Köszönöm!

None-user képe

Szia, Nekem az a bajom, hogy rossz az egész, mert már eleve nem tudom install-ozni, mert ezt írja ki:
Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$' in /mnt/ultraweb/s/sh/shareserver/relogin2/install/index.php on line 37

Remélem tudsz valamit kitalálni. Az emailomra írj lécci, mert azt többször nézem. Ha akarod, megadom a jelszavam emailba, és megcsinálhatnád.. :$ Na írj! :)

Rimelek képe

Szia

Válassz másik tárhelyet. Sajnos sorra zárnak be az értelmes ingyenesek. De az uw az már sok éve nem értelmes, hiába ingyenes. Még egy nagyon régi ( 4-es ) php verzióval futnak. A login pedig minimum az 5.2 -t igényli. És egyébként már az 5.2 is nagyon régi.

Nemo képe

Azzal a kérdéssel fordulok hozzád, hogy ha belépek a login rendszer admin menübe, és ott a beállítások, vagy a többi három menüpontra kattintok, 404-es oldal jelenik meg. Ha ráviszem az egérmutatót akkor kiderül, hogy a gyökér könyvtár nevét kihagyja.
Ezt írja ki: users.atw.hu/admin?admact=config,
de ezt kéne kiírnia: users.atw.hu/gyökér/admin?admact=config.
Az előzőekben leírtak szerint a Config.class.php fáljban a PATH_BASE ='/gyökér' átírtam.
Még esetleg hol kell a gyökér könyvtár nevét beírni, hogy működjön.

Válaszod előre is köszönöm.

Rimelek képe

Üdv. Ha elolvasod a fenti cikket, megtalálod a megoldást. 3 tárhely speciális beállításáról írtam. Köztük az atw-ről is. ITT

Nemo képe

Amire a linkel hivatkozol lépést már, mint írtam megtettem még mielőtt neked írtam volna, ennek ellenére az adminon belül a beállítások, rangok kezelése, meghívók kezelése, és a felhasználók menüket (a sablonodat használom ez bal oldalt található) nem lehet használni, mert itt kihagyja a gyökér könyvtárat. Egyéb lépéseknél működik minden.

Config.class.php
PATH_BASE = '/gyökérkönyvtár';
ezt még az elején átírtam.