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
- R.E. Login 2.0 -tól oldalak megtekintésének korlátozása és jogok (rangok)
Rangok és "belépett" állapot ellenőrzése.
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:
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:
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:
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/
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
{
return self::$errors;
}
kell lecserélni erre
{
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:
{
$_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:
Hozzászólások
Ha a header include után
Ha a header include után rakod a megoldásod, ez nem meglepő. Tedd elé!
re
bent volt az ini és header közt is ugy sem ment csak részben van mikor beolvasa a headert aztán pl adminbol semmi az ini ben is volt nagy fehérség fogadott lehet a tár miatt is? itt nem kapok se levelet se reginél az automatikus kodgenerátort sem az avatárok nem futnak bár utobi három alapból na szóval akkor mit rakjak hova? lang rész az ini mellet class megint . még van 3 tippem a mapoa elérés jó mert a fótert nem ismerné fel ha rosz lenne
smarty
a legegyszerűben bővíthető akkor lenne ha smartyt használnám de a fügvényei megírása még nagy munka számomra a másik megoldás xml ez valamivel egyszerűb lenne de a php az aminél döntötem ez miatt föleg hogy kezdő vagyok még a témában
Facebook
Szia, megszeretném kérdezni, hogy meg lehet oldani benne a Facebook-kal való regisztráció lehetőségét?
Nem csináltam még facebookos
Nem csináltam még facebookos logint.
Volna még kérdésem, a
Volna még kérdésem, a felhasználó listát kicsit át szerkesztettem úgy hogy avatárral együtt jelenjen meg a felhasználó lista. 5 sorba és 3 oszloppal oldottam meg, de hiába írtam át ezt:
$pageLinks = $users->pageLinks(15);
szóval 10 helyett 15-re írtam át még is 10-essével jeleníti meg.
hol kell még át írni, hogy jó legyen?
A pageLinks metódussal nem az
A pageLinks metódussal nem az egy oldalon megjelenő elemek számát adhatod meg, hanem a lapozó linkek számát.
A page metódus állítaná az egy oldalon megjelenők számát, de azt betettem a UserList osztályba. A classes/UserList.class.php -ben a konstruktorban.
És tényleg. :D
És tényleg. :D
Külön, hogy lehet lekérdezni a Nőket és a Férfiakat? Kiíratni hány nő és hány férfi van?
A nők és férfiak számlálása
A nők és férfiak számlálása volt a legutóbbi módosításom pont a loginban, amit már nem nagyon reklámoztam. De itt megtalálod a metódusokat:
UserList.class.php
Ha pedig külön listát akarsz belőlük, akkor azt a UserFilter felhasználásával tudod megoldani:
$userFilter->addEqualFilter('sex', 'm'); //m, mint male, azaz férfi. "f" a female azaz nő.
$users = new UserList(null, $userFilter);
htaccess
Azt szeretném megkérdezni, hogy a htaccess az működik ezzel a login rendszerrel?
A htaccess az Apache szerver
A htaccess az Apache szerver beállításaitól függ. De feltételezem, neked az a kérdésed inkább, hogy azokat a bizonyos "szép url-eket" meg tudod-e oldani a loginnal.
Sosem próbáltam ki úgy. Nem készítettem fel a htaccess-szel manipulált url-ekre. Elvben a login telepítésénél, ahol fájlokat kell megadni, megadhatnád az új url-eket is. De gyakorlatban könnyen lehet, hogy nem fog működni.
Ha meg kódba kell nyúlni hozzá, akkor mivel minden linket és php kódból történő átirányítást ki kellene cserélned, ezért nem javaslom, hogy ennek nekiállj.
Szia,
Szia,
Tudom nem ide tartozik, de a csibusz féle rendszer hol található meg?
Nem tudom
Szia. Arról nekem fogalmam sincs. Próbáld valamilyen fórumon megkeresni csibuszt és kérdezd meg tőle. Volt codenet.hu -n is. Nem tudom, most olvassa-e.
Fejlesztés
Szia , még a fejlesztéseknek nem értem a végére.
Amint megvagyok a Szerzővel tudatom (bemutatom) neki "Rím Elek"-nek azután publikálom.
Jelezni fogom itt is majd .
Várhatóan Februárban tudom befejezni.
Köszönöm még egyszer Rím Elek munkáját .
Profilkép az üzenetbe
Üdv Rimelek!
Azt szeretném kérdezni, hogy hogyan lehetne a megnyitott üzenetbe a küldő mellé beépíteni a küldő profilképét.
Arra a részre gondolok, amikor már olvassa az adott üzenet tartalmát, nem amikor kilistázza az üzeneteket (csak hogy félre értés ne essék).
Ha lehet, kódot is csatolhatnál, mert a logikai alapra volna elképzelésem, de a kódot nem tudom megírni.
Előre is köszönöm:
Krisztián
Üdv. A profilban így van az
Üdv. A profilban így van az avatar megjelenítése:
Egy $user objektumra lesz szükséged az üzeneteknél is. És akkor a fenti kód működik. A user objektumhoz egy felhasználó azonosító kell. És akkor így tudod elkészíteni:
A $userid nálad az üzenet feladója lesz, amit a relogin2/msgread.php fájlban $msgUserId néven találsz meg. Ez alapján van a profilurl generálása is. Tehát valahogy így tudod megjeleníteni a képet:
<img src="<?php print $sender->avatar(120); ?>" alt="gravatar" />
Profilkép az üzenetben
Nahát, ez felett átsiklottam. Nem vettem észre ott azt a $msgUserId-t csak a $msgUserName-t.
Próbáltam leképezni a küldő id-je alapján, de nem sikerült.
Az általad mutatott megoldással már működik.
Köszönöm!
Kijelentkezés
Sziasztok. Sikerült megcsinálni a weboldalam egy ingyenes tárhelyen. (atw.hu)
http://kepfeltoltes.hu/140111/kijelentkezes_www.kepfeltoltes.hu_.jpg
De viszont lenne olyan problémám, hogy amikor ki szeretnék jelentkezni akkor eldob egy üres oldalra és utána ha frissítem ugyanúgy bevagyok jelentkezve
http://kepfeltoltes.hu/140111/atw_www.kepfeltoltes.hu_.jpg
Melyik fájl-ban lehet a probléma? És micsoda?
Megoldás a beállítások
Szia. Pont ezen az oldalon a bejegyzés vége felé van ennek a megoldása. Keress rá az "atw" kifejezésre a böngészőben, ha nem találod meg. (CTRL+F)
kódolás
Köszönöm szépen az előbb sikerült megoldanom a problémát! Már csak azt nemtudom, hogy a jelszó milyen kódolásban van (pl.HEX)
A Login.class.php-ben van a
A Login.class.php-ben van a getPasswordHash metódus. Abból kilesheted a módszert. LINK
Ma már talán más megoldást választanék. Ha úgy látod jónak, te is átírhatod. Csak a meglévő felhasználók jelszavát kell újragenerálni akkor.
mappa
Hello!
lenne egy olyan problémám hogy van egy mappa és azt szeretném hogy amik benne vannak (képek, fájlok) nelehessen csak úgy megnyitni hogy PL: weboldalad.hu/design/img/kep.png
Ha a tárhelyeden lehet
Üdv. Ha a tárhelyeden lehet htaccess-t használni, akkor letilthatod az elérést. De olyankor csak php-ból olvashatod be a képet és küldheted ki a böngészőnek.
".htaccess" fájl a design/img mappába:
Deny from all
De ezt csak olyan mappákba tedd be, ahol tutira nincs olyan kép, amit a külvilág felé engedélyezned kell.
Avatar
Üdv!
Azt szeretném kérdezni, hogy az alábbi kód alapján miért nem jelenik meg az avatár a lekérésben, hibás képnek jelöli:
$sms_data = mysql_query("SELECT * FROM `tema_teszt` order by `date` DESC");
while($row = mysql_fetch_assoc($sms_data))
{
echo "
<table width='100%' style='min-height:250px; border-top: 2px solid #2a4b69;' border='0' cellspacing='0' cellpadding='0' class='torzs'>
<tr>
<td rowspan='2' width='120' align='center' valign='top'><img src='".$row['avatar']."' alt='gravatar' style='width: 120px; height:120px; border: 5px solid #2a4b69;'></td>
<td valign='top' align='left' height='25' class='focim' style='padding-left: 5px;'>".$row['irta']."</td>
<td width='150' align='right' valign='bottom' class='lablec'>".$row['date']."</td>
</tr>
<tr>
<td colspan='2' align='left' valign='top' style='border-top: 1px solid #2a4b69; padding-left: 5px; padding-top: 5px;'>".nl2br($row['uzenet'])."<br /></td>
</tr>
</table> ";
}
?>
<?php
if(isset($_POST['submit'])) {
$uzenet = $_POST['uzenet'];
$irta = System::$user->username;
$userid = System::$user->T_users_userid;
$user = new User($userid);
$avatar = $user->avatar(120);
if($uzenet == null){
echo 'Nem írtál üzenetet!';
} else {
$query="INSERT INTO tema_teszt (uzenet, irta, avatar, date) VALUES ('".$uzenet."', '".$irta."', '".$avatar."', NOW())";
mysql_query($query);
header("Location: ".$_SERVER['PHP_SELF']);
}}
?>
<div class="torzs" style="border-top: 2px solid #2a4b69;">
<div class="focim">Szólj hozzá</div>
<form method="post" action="" class="torzs">
<textarea name="uzenet" title="Szólj hozzá..."></textarea>
<br /><br />
<div align="center"><input name="submit" type="submit" class="buttom" value="Hozzászólok" /></div>
</form>
</div>
Régebben még működött, egy másik weblapban, most átraktam az adott lapba, és nem jelenik meg a kép. Pedig a rendszer ugyan az.
Hogy az avatar miért nem
Hogy az avatar miért nem jelenik meg, nem tudom. Nézd meg a hibás kép url-jét. Akár a kép új oldalon való megnyitásával. Jobb egérgombbal eléred a menüből. Abból kiderül, hogy hol próbálja keresni. Abból pedig a hiba oka.
Viszont ez helyett:
$irta = System::$user->username;
$userid = System::$user->T_users_userid;
$user = new User($userid);
$avatar = $user->avatar(120);
inkább ezt írd:
$irta = System::$user->username;
$avatar = System::$user->avatar(120);
A System-ben levő $user ugyanolyan, mint amit egyébként létrehoznál.
Avatar
http://hunmtsts.funpic.de/relogin2/0 - ezen az URL-en szerepel.
A mysql táblázatban a Típus INT(11), és ennyi.
Most néztem meg alaposabban
Most néztem meg alaposabban az üzeneted (nem rég értem haza) és látom, hogy beszúrod az avatar url-t egy másik táblába. Gondolom, ott adtál neki akkor rossz mezőtípust. Ha egész számnak adod meg, akkor nem fog belekerülni a szöveges tartalom.
Ha így csinálod, még ha át is írod a mező típusát varchar(200) -ra például, ha változik az avatarja valakinek, az üzenetben még a régi kép lesz, ami talán már nem is létezik. Inkább a felhasználó azonosítóját mentsd a táblába és az alapján hagyományos módon jelenítsd meg az avatart userid alapján.
Avatar
Az túl macerás a lekérési megoldásommal.
Inkább akkor kihagyom az avatar-t. Bár nem lesz olyan mutatós, de megfelel így is.
Köszönöm a segítséget.
Miért macerás? Csak a
Miért macerás? Csak a ciklusba kell betenned ugyanazt, ami cikluson kívül már működik. Tény, hogy annyira nem hatékony hozzászólásonként lekérdezni a felhasználókat újra és újra. De ha például elmented őket egy tömbbe, amit a saját userid-jükkel indexelsz, akkor valahogy így nézne ki, hogy maximum egyszer kérdezz le egy avatart:
while (...) {
$user = isset($usersCache[$userid]) ? $usersCache[$userid] : new User($userid);
$avatar = $user->avatar(120);
// többi kód
}
Tovább is lehetne optimalizálni, hogy ne kelljen egyenként lekérdezni. Az annyiból macerásabb, hogy be kellene gyűjtened az összes userid-t, amire szükséged lehet. Tehát az összes hozzászólást kellene tömbbe menteni ideiglenesen és közben gyűjteni az id-ket egy másikba. Majd az alapján az összes usert lekérdezni (van egy UserFilter osztály is erre. Ha minden igaz, használható erre) ugyanúgy a $usersCache tömbbe például. És a kiírás hasonló lenne, mint az első példában, csak nem kellene már ott példányosítani a usert sosem. És nem while-t használnál, hanem foerach ciklust.
De ha ennek nem akarsz nekiugrani, az első verzió is használható szerintem.
Miért nem jelenik meg a favicon a címsorban?
Az alapkönyvtárban az include/header.php-be illesztem bele az alábbi kódot:
<link rel="icon" href="favicon.ico" type="image/ico" />
Mert egyébként sincs ott a
Mert egyébként sincs ott a fájl. Mindig azt nézd meg előbb, hogy ami nem jelenik meg ott, ahol kéne, annak milyen a hivatkozása és meg tudod-e nyitni böngészőből.
Betetted az includes könyvtárba a header.php mellé. A főkönyvtárba tedd, ha arra hivatkozol a html-ben. Nem számít, hányszázadik almappában van a php fájl, amiben a html forrást írtad. Csak az, hogy az a fájl hol van, amit közvetlenül a böngészőből futtatsz és megjeleníti a weblapot. (pontosabban nem a fájl fizikai helye a lényeg, hanem az url, de htaccess nélkül ez ugyanaz)
Illetve ne tedd be többször ugyanazt a css hivatkozást és a content-type meta fejlécet. De ez az ikontól független, csak tanács.
Köszönöm
Köszönöm.
Ezt eddig nem tudtam, hogy figyelni kell arra, h mit néz. :O
Nem működik.
Sziasztok!
Mindent meg csináltam (legalább is úgy gondolom) amit írtatok. De nekem ahova feltelepítettem egy nagy fehérség van. :(
Ezt hogyan lehet megoldani?
A válaszaitokat előre is köszönöm:
Ádám
Több infó kellene
Üdv. Mindenek előtt több infó kellene. A nagy fehérség elnyomott hibaüzenetre utal. Hibaüzenet nélkül vakon tapogatózik mindenki. Tudni kellene, milyen tárhelyed van. Ha van hibanapló a szolgáltatódnál, akkor azt meg kellene nézned. PHP verzió is lényeges.
De a hibaüzenetek megszerzése lenne a leghasznosabb.
Szia,
Szia,
Azt hogyan lehet, hogy ha egy új user regisztrál, akkor mysql-be ne csak azokat az adatokat töltse ki, hogy username,password,email stb.stb. étre hoztam egy új táblát, van benne egy id meg fa sor. Ha regisztrál akkor a fa értéke 0 legyen.
Illetve a másik kérdésem, hogy ha bejelentkezik egy tag, akkor a rendszer honnan tudja, hogy melyik tagról van szó? Mert minden tagnak más lenne a fa értéke, és akkor nem akarom xy-nak a vw fa értékét ki iratni. Ez mind egy általam újonnan létrehozot php-ban.
A tartalma:
include('header.php');
require_once 'init.php';
System::protectedSite();
?>
<div class="menu_simple">
<ul>
<li><a id="relogin-logout" href="<?php print System::logoutLink() ?>">Kijelentkezés</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
</div><?php
include('footer.php');
?>
Köszönöm!
tipp
Szia. Ha nem kell több rekordot is a felhasználóhoz rendelni az új tábládból, én azt javasolnám, hogy vagy a users, vagy a profiles táblába tedd inkább az új mezőt. A profiles táblába olyanokat tettem, ami plusz információ a felhasználóról, de más szerepe nincs. Míg a users táblába olyanokat, amiknek a login működése szempontjából is szerepe van. Ha default értéknek a "fa" mezőhöz "0" értéket rendelsz mysql-ben, akkor ehhez plusz kódot sem kell majd írni.
Ha viszont olyant is szeretnél, ami nem automatikusan jön létre, hanem a regisztráló tölti ki, ahhoz már kell programozni. De akkor is sokkal egyszerűbb a helyzet, ha nem új táblával csinálod. Persze a relogin2/classes/Register.class.php-ben levő request metódusban egyedi adatbáziskezeléssel bármit megoldhatsz. Ez után tudnád beírni a saját kódod, ahol a $userid változó a regisztrált felhasználó id-je, amit felhasználhatsz az összekapcsoláshoz:
{
if (!self::isValidInput(($user = self::createUser()))) {
return false;
}
$userid = self::addUser($user);
//Ha az email aktiválás ki van kapcsolva, nem küldi ki az aktiváló emailt
//de akkor sem, ha admin regisztrált
Van még pár hely, ahova írni kéne akkor is, ha regisztrációnál kitöltendő adatot akarsz, de most nincs időm kifejteni. Sokszor volt kérdés, de ose készült róla konkrét dokumentáció, mert nem gondoltam, hogy még használjátok.
Annyi biztos, hogy a Register osztályban a getRecord metódusban is fel kéne venni az új mezők neveit. Az relogin2/includes/register.php-ban is van egy $data tömb, amit bővíteni kellene. Illetve az includes/changeprofile.php, changeprofile.php és ChangeProfile.class.php is változtatásra szorulna.ott is egy $data tömböt kell bővíteni és a request metódusban a $post-ból átadni a user objektumnak az adatokat a többihez hasonlóan. És még a profile.php is ott van. Szóval van sok hely.
Egyébként az aktuális felhasználót a
-ből tudod kivenni. A profil.php-ben pedig simán csak $user-ként írva éred el azt, akinek a profilját nézed.
Köszi a választ.
Köszi a választ.
De a felhasználónevet nem akarja ki írni.
A kód:
require_once 'header.php';
require_once 'init.php';
System::protectedSite();
System::$user
?>
<div id="tartalom">
<?php echo $user;?>
</div>
<div class="menu_simple">
<ul>
<li><a href="jatek.php">Város</a></li>
<li><a id="relogin-logout" href="<?php print System::logoutLink() ?>">Kijelentkezés</a></li>
<li><a id="relogin-inbox" href="msginbox.php">Üzenetek (<?php
$stat = System::msgStat();
print $stat['inbox'].'/'.$stat['unread'];
?>)</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
</div>
<?php
include('footer.php');
?>
lehet azért van, mert nem a te általad készített header és footer.php-kat használom?
username tulajdonság
A header, footer teljesen mindegy. Az init.php számít, a többi csak design. Csak elfelejtettem írni korábban, hogy a System::$user és a $user is objektum. Tehát így tudod a felhasználónevet kivenni belőle:
Nem tudom mi van vele, de még
Nem tudom mi van vele, de még mindig nem akarja kiírni a felhasználó nevet.
require_once 'header.php';
require_once 'init.php';
System::$user;
System::protectedSite();
?>
<div id="tartalom">
<?php echo $user->username;?>
</div>
<div class="menu_simple">
<ul>
<li><a href="jatek.php">Város</a></li>
<li><a id="relogin-logout" href="<?php print System::logoutLink() ?>">Kijelentkezés</a></li>
<li><a id="relogin-inbox" href="msginbox.php">Üzenetek (<?php
$stat = System::msgStat();
print $stat['inbox'].'/'.$stat['unread'];
?>)</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
</div>
<?php
include('footer.php');
?>
Én már összezavarodtam, hogy
Én már összezavarodtam, hogy kinek a nevét akarod kiírni. Mint mondtam, a $user változó csak a profilban elérhető. máshol System::$user van. De ez nem egy névtér. Azzal, hogy a fájl elején beírod, hogy
Nem lesz sima $user változód is. A hosszú verzióval kell használnod. Ez a System nevű osztály statikus tulajdonsága.
Amúgy az init.php-t minden előtt kellene beilleszteni. Utána jöhetne a header. Az init-nek úgysincs kimenete, de másképp a header fájlod nem fog tudni a loginról.
Annak a nevét akarom kiíratni
Annak a nevét akarom kiíratni, aki be van jelentkezve.
Akkor az utolsó példám jó
Akkor az utolsó példám jó lesz neked.
Köszönöm szépen! :)
Köszönöm szépen! :)
Rendszerüzenet
Szia!
Hogyan lehet azt megoldani, hogy rendszerüzenetet tudjunk küldeni.
Tehát nem az a szokásos írja be a nevet,tárgyat üzenetet stílus, hanem ha megnyom egy gombot, akkor kap a felhasználó (aki megnyomta a gombot) egy üzenetet.
Az üzenet tartalmát pedig PHP-ban tudjuk megadni, legyen most a tárgy: Teszt üzenet a tárgy, a tartalom pedig: Teszt tartalom.
Illetve még az kéne, hogy erre az üzenetre ne lehessen álaszolni, ez miféle képen oldható meg?
Üdv. Üzenetet így lehet
Üdv. Üzenetet így lehet küldeni:
A belépett felhasználó neve pedig így kérhető le:
System::$user->username
Vagyis így küldhetsz üzenetet neki:
Hogy a tárgyat és az üzenetet hol és hogyan állítod be, az már rajtad áll. A gombnyomásra pedig csak egy gombot kell kitenned valahova. rendszeruzenet1 néven mondjuk
<input type="submit" name="rendszeruzenet1" value="Gomb szövege" />
</form>
Persze ezt olyan helyre tedd, ahol nincs még form.
És a gombnyomást így tudod figyelni:
Messages::sendRequest(System::$user->username, $targy, $uzenet);
}
Köszönöm szépen :)
Köszönöm szépen :)
Sajnos nem működik, pedig még
Sajnos nem működik, pedig még működött. Lehet valamit töröltem.
Letudnád írni, hogy fájlok szükségesek a működéshez?
Üdv.
Ha valamit törölhettél,
Ha valamit törölhettél, másold vissza a fájlokat. Nem tudom leírni, milyen fájlok szükségesek a működéshez. Mindegyik. Illetve bármelyik. Hibaüzenet nélkül nem tudok okosabbat mondani.
Ha attól félsz, hogy felülírod az eredeti fájlokkal a módosításaidat, akkor mentsd le előbb az összes fájlod. Másold fel a login eredeti fájljait és másold vissza az előzőleg lementetteket. Akkor maximum visszaáll eredetire az, amit véletlenül töröltél.
Szia,
Szia,
A regisztrációból hogyan lehet kivenni az E-mail kezelés,Nemed,Születési idő és a captcha pontokat?
Üdv.
Szia. Most ennek nem tudok
Szia. Most ennek nem tudok utánanézni, de ezek szerint gyakorlatilag mindent kivennél a felhasználónevet és jelszót kivéve. Az email viszont a visszaigazoló levél miatt is lényeges. Ha nincs email, akkor minden azzal kapcsolatos dolgot is át kéne írni a loginban. Nem biztos, hogy ez a login kell neked. Pláne, hogy sajnos ezt is elhanyagoltam, mint az előző verzióját, mielőtt ez elkészült. De újra belemélyedni, hogy egy ilyen változtatáshoz összeszedjem az infókat, most nem tudok bevállalni.