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

Csakany97 képe

Köszönöm a segítséget.

Esetleg még annyit kérdezhetnék, hogy hogyan kell lekérni a user avatarját?
Ez is abba a fórumba lenne, amiről előzőleg kérdeztem.

Rimelek képe

Lesd ki az adatlapból! Hatékony persze nem lesz, ha minden üzenetnél külön lekérdezed a felhasználót. De azt hiszem, esetedben a hatékonyság még másodlagos. És ha már működik valahogy, tanulhatsz és feljavíthatod.

Igazából nem kell feltétlenül a user objektum az avatarhoz. Mert gravatar és mkavatar van beépítve. Amikhez csak az emailcíme kell a felhasználónak. De ha egy rendezést nem ismersz, akkor nem mennék bele a táblák összekapcsolásába.

Szóval

$user = new User($userid);
echo $user->avatar(120);

A felhasználó azonosítóját viszont tudnod kell hozzá. Nem csak a nevet.

Csakany97 képe

És hogy kaphatom meg a userid-t? Mert próbáltam $userid = System::$user->userid;, de nem volt jó, nem engedte elküldeni az üzenetet.

Rimelek képe

A userid pont egy olyan mező, ami a loginnak két táblájában is benne van. A users-ben és a profiles-ban. És ezért nem lehet rá simán userid néven hivatkozni. Hanem meg kell adni, hogy melyik tábla userid mezője kell. Így:

$userid = System::$user->T_users_userid;
Csakany97 képe

És a MySQL táblában hogy kellene létrehoznom a kép adatait tároló mezőt?
Hogy kellene, hogy kinézzen a szerkezete, hova mit kellene írni?

Rimelek képe

Miért kéne a kép adatait tárolnod? Userid kell és abból leszeded az avatart. Ahogy írtam.

Csakany97 képe

Oké. Most már értem.
Köszönöm.

Dual képe

Hali Rimmelek :))

Azon agyalok napok óta mint pl a php-fusionnál, Rangok külön színben.
Azzaz: Pl
owner = piros ( owner )
admin = zöld (admin )
hogy tudnám megoldni , ehhez valami ötlet - vagy elindulási segítség?

Előre is köszi
Au

Rimelek képe

Helló. Megkeresed azt, ahol ki van írva a rang és beteszed az if-et, hogy ha owner, akkor piros legyen.

Dual képe

Hali
Akkor vhogy így?

<td><span class="koszon">Rangod:</span></td>
    <td><span class="rang"><?php
    echo System::$user->rankName();
        ?></span></td>
if([owner]) {
     [color: #C30;]
  } elseif([admin]) {
     [color: #3F6]
  } elseif([user]) {
     [color: #CCC]
  }
    else {
  }

Ha jól értelmezem ....

Rimelek képe

Nem tudom, hogy érted az idézett kódot. Szintaktikailag teljesen rossz, de sejtem, hogy csak minta. De az if rossz helyen is van. A kiírás előtt kérdezd le a felhasználó rangját. Itt a blogbejegyzés elején láthatod a linket az oldalra, ahol ennek módját kirészleteztem. És az alapján vagy adj egy class-t html-ben a span-nek, amiben a rangot kiírod és a class-t css-ben formázod, vagy egyből egy style attribútumban beállítod a színt. De a színt vagy a class-t a kiírás előtt töltsd egy változóba. És akkor a kiírásnál csak ennyi a dolgod:

<span class="rang" style="color: <?php echo $color ?>;"><?php
    echo System::$user->rankName();
        ?></span>

vagy

<span class="rang <?php echo $rank ?>"><?php
    echo System::$user->rankName();
        ?></span>

Akkor css-ben így formázod:

.rang.owner {
     color: red;
}
.rang.admin {
    color: green;
}
.rang.user {
   color: black;
}
Dual képe

Hali :))

Köszi a gyors reagálást :)) Megpróbáltam ezek szerint ... Ugyan úgy fekete maradt a szöveg ...
A másik amit nem értek:

De a színt vagy a class-t a kiírás előtt töltsd egy változóba

Miféle változóba? Ennél akadtam el egy picit :/

Rimelek képe

Ez az a szint, amit nem tudok tovább egyszerűsíteni. Fogalmam sincs, hogy mondjam másképp. Mintha azt kérdeznéd, hogy értem, hogy kettő meg kettő.

A változó fogalmát nyilván ismered. Beletölteni valamit annyit jelent, hogy értéket adni neki. A kiírásra példát is írtam. Változókkal. Azoknak kell megfelelő értéket adnod. Nyilván, ha ezt a kiírás után teszed meg, nem érsz vele semmit.

Ennél egyszerűen nem tudom világosabban fogalmazni.

Dual képe

közben néztem egy két példát és megpróbáltam így kiíratni de semmi:

<td><?php
$kiirando_szoveg = "<?php echo $rank ?>";
$owner1 = '<font color="red"><b>';
$owner2 = '</b></font>';
$admin1 = '<font color="green"><b>';
$admin2 = '</b></font>';
print $owner1;
print $kiirando_szoveg;
print $owner2;
print $admin1;
print $admin2;
?></td>
Rimelek képe

Kedves Dual!

Hát te olyan messze vagy a megoldástól, hogy eltévedésből doktorálhatnál.

Miért csinálsz teljesen mást, mint amit én javaslok? Mi ez az $owner1, $owner2 és $admin1, $admin2 ? utóbbi kettő között nincs is semmi.

Miért írsz php nyitó és záró címkét egy php-ban deklarált stringben? Nem kell az a $kiirando_szoveg változó, hisz a $rank -ot akarod kiírni, ami maga is egy változó.

Lekérdezted egyáltalán a $rank értékét? Megnézted a linket, amit én javasoltam neked, hogy ott leírtam a rangok lekérdezését?

Végiggondolod, hogy mi az, ami történik a scriptben, vagy csak találsz valahol egy egész másra kitalált kódrészletet és bemásolod magadhoz?

Abból indulj ki kérlek, amit én tanácsoltam neked, mivel biztos lehetsz benne, hogy nem írok hülyeségeket.

Egyetlen egy darab if elágazást kellett volna írnod, amiben a $color változónak értéket adsz. És beleteszel egy színkódot. ( Ha a színkódos verziót választod a megoldások közül )

Csak azért nem írom le a konkrét megoldást, mert hiszek benne, hogy meg tudod magad is csinálni. Elvégre ha egy if elágazás megírása nem megy, akkor nincs semmi értelme php scriptek módosításával foglalkozni. És ha leírom a megoldást, majd egy újabb kérdéssel fordulsz hozzám ugyanilyen szintű tudással, akkor igen hosszan írhatom helyetted a személyedre szabott vadiúj loginrendszert vagy portált. Ezt pedig nem szeretném.

Próbáld tehát újra azt, amit én javasoltam. Ha nem megy, azt mutasd meg itt idézve, hogy azzal mire jutottál. Minden beírt változónál azt is mutasd meg, honnan kapott értéket! Hogy lássam, nem csak bemásoltad valahonnan. És feleslegesen ne említsem meg hibaként, ha amúgy létezik és van is értéke.

furminka képe

Üdvözletem !
Elsőnek szeretném megköszönni hogy ennyit segítesz mindenkinek és hogy elénk raktál egy ilyen jó dolgot mint ez a meghívós loginrendszer!
Másodszor pedig a problémám az lenne hogy sehogy sem engedi nekem a kinézetet az oldal formáját változtatni! Nem vagyok valami nagy programozó sőt inkább nem is értek hozzá de van 1 haverom aki nagyon ért hozzá és leírta nekem még a kódot is és el mondta hogy mit hová rakjak meg írjak de még úgy sem sikerült elérni azt amit akartam úgy hogy ez ügyben szeretném a segítségedet kérni. egy hátteret szeretnék adni az egésznek hogy tehetem meg ? Válaszodat előre is köszönöm !

Rimelek képe

Kedves furminka!

Egyszerűen CSS-ből. A login csak egy beléptetőrendszer. Picit kinőtte ugyan magát, de a lényege ugyanaz maradt. Adtam egy alapértelmezett sablont azoknak, akik nehéznek tartják beállítani saját igényeik szerint vagy csak kipróbálnák. Abba én tettem css-t is. Kettőt is. A design mappában van eg relogin.css, amiben a loginrendszer fájljaiban levő részeket formáztam. És egy style.css, amiben az oldal részeit, amibe a logint beillesztettem. Ezek ugye azok a fájlok, amit elvileg mindenkinek magának kellene létrehozni. Így olyan html elemek és osztályok, id-k vannak benne, amiket ő kitalál.

Hogy hátteret hogyan adsz, az attól függ, hova akarod beállítani. Ha csak simán az egész oldalnak, akkor azt a "body" formázásával tudod megtenni css-ben. Az alap sablonban a design/style.css -ben
Ezt átírhatod:

body
{
    text-align: center;
}

Erre:

body
{
    text-align: center;
    background: url('ide a kép url-je');
}

Csak az url helyes megadására kell figyelned. Ha berakod a design mappában levő img mappába a képedet hatter.jpg néven, akkor így kell írnod:

body
{
    text-align: center;
    background: url('img/hatter.jpg');
}
furminka képe

Köszönöm a válaszod !! idő közben rájöttem hogy csúnyán elnéztem a dolgokat !
a következő kérdésem lenne hogy hova illesszem be a vendég könyvemet hogy csak az lássa aki be van jelentkezve ?

Rimelek képe

Erre a kérdésedre ennek az oldalnak az elején levő "Kapcsolódó oldalak" közt megtalálod a választ. Egy link van, így nem fogod eltéveszteni :)

A Hova kérdésre nem tudom megadni a választ. Ahova akarod. A hogyanra megadja a leírás a jogokról. Ha nem értesz valamit benne, akkor ott kérdezz kérlek hozzászólásban.

Dual képe

Heyho :)

Közben egy kis segítséggel kezdem megérteni a class- részét.
Viszont mindent az első "szín csoportba" tesz:

<?php
$result=mysql_query("SELECT * FROM relogin_users");
  while($rec=mysql_fetch_assoc($result))
  {
   switch($rec['rank'])
  {
     case 1:
      $user_rank_color = '1';
    break;
     case 2:
      $user_rank_color = '2';
    break;
     case 3:
      $user_rank_color = '3';
    break;
     case 4:
         $user_rank_color = '4';
   break;
    }
print('<span class="rank'.$user_rank_color.'">'.$rec['username'].'</span>');
}
?>

Valamit elronthattam? :S

Rimelek képe

Megnézted, hogy a span-ben levő class-ba mi kerül be? Mindig az 1-es? Az csak az oldal tulajdonosánál lehet. A kódodban nincs igazán hiba. Szerintem csak a css-t ronthattad el. Ha az osztály is hibás, akkor nálad valamiért minden user tulajdonos rangú.

Viszont teljesen felesleges erre switch elágazást írni.

  while($rec=mysql_fetch_assoc($result))
  {
     print('<span class="rank'.$rec['rank'].'">'.$rec['username'].'</span>');
  }
Dual képe

A swtich elágazás bolondította meg :D Köszi szépen xDDD Már jól írja ki teljesen :)

Dual képe

Viszont a szűkítés nem ad vissza eredményt:

<?php
$result=mysql_query("SELECT * FROM relogin_users WHERE lower(`rank`) LIKE '%1%'";
 while($rec=mysql_fetch_assoc($result))
  {
     print('<span class="rank'.$rec['rank'].'">'.$rec['username'].'</span>');
  }
?>
Dual képe

sorry, ha tudod akkor légyszi töröld az előző commentet, nem raktam a végére ")" jelet :D

Rimelek képe

Tudom törölni, de nem tettem, mert még reagálnék rá. A zárójel lehagyása egy dolog. Attól szintaktikai hibát kapsz és észreveszed. Viszont a rank egy szám. Egy egész szám. Miért használod a lower függvényt rá? A számoknak nincsen kisbetűs alakja. Illetve a számokat nem like-kal szűrjük, hanem egyenlőség jellel. A like szintén stringekre való. A stringként kezeled, akkor fura eredményeket kaphatsz. például megkapod az összes olyan számot, amiben van 1-es. Vagy ez volt a cél? Tettél bele más rangokat is azon kívül, amik benne voltak?

Dual képe

Igen tettem :))) összesen 9 rangom van, szóval pont jól szűrte le az egészet :) Csak a profile.php-nél nem tudom a színt kiíratni :S De még agyalok rajta hogy is lehet megoldani :D Majd lassacskán rájövök xD :D

Viszont kijavítottam úgy ahogy Te is írtad, a "like" - lower-t levettem :D

Dual képe

Hát nem tudom a megfejtést :S
Mindent sikerül classal- alkalmaznom, viszont az adatlap linket nem tudom hogy lehetne kirakni :S

Akárhogy próbálom nem megy :S Valami ötleted? :S

<?php
$result=mysql_query("SELECT * FROM relogin_users WHERE (`rank`) = '1'");
 while($rec=mysql_fetch_assoc($result))
  {
     print('<img src="../design/usericon/fejleszto.gif" width="16" height="16" border="0" align="bottom" title="Fejleszto"/><span class="rank'.$rec['rank'].'">'.$rec['username'].'<br></span>');
  }
?>

Előre is köszi

Rimelek képe

Hol van itt a próbálkozás? Úgy értem a link próbálkozása? Ha megnézel néhány adatlapot, akkor abból megfejtheted, hogy néz ki. És úgy beleteheted az id-t ugyanolyan formában.

Azt mondjuk nem értem, ha ilyen felhasználólistát írsz, akkor miért nem a userlistát másolod. De te tudod. Ot viszont minden adott. Még a rang lekérdezése is.

Lecso-System Hosting képe

az a helyzet hogy nekem olyan problémám lenne hogy felraktam a login rendszert aztán amikor beszeretem volna lépni a chapta-ba akármit irtam nem fogadta el. kiszedtem belöle a chapta részt igy már betudtam lépni most olyan problémám van, hogy ha belépek és rékatintok pl az admin menüre kilép a rendszerből és újra be kell lépnem

Tárhely adatok:

  • PHP használata--> Engedélyezve
  • PHP beállítások használata--> Letiltva
  • CGI használata--> Letiltva
  • Egyéni DNS rekordok--> Engedélyezve
  • Szoftvertelepítő--> Letiltva
  • Webes statisztika (AWStats)--> Engedélyezve
  • Adatmentés--> Letiltva

(láttam hogy ásnak is volt hasonló problémája énis letötöltem mindent a szerveröl ugysejó elméletileg a session_atosart is off on van )

Rimelek képe

A hiba pedig a sessionnel lesz. HA gondolod, te is elküldheted nekem a php beállításaidat emailben (<?php phpinfo(); ?> ). És akkor tudok okosabbat mondani.

Dual képe

Heyho :)

Megint gondom van :D Saját ID-émet írja ki minden nickhez:

<td><a href="./profile.php?uid=<?php echo System::$user->T_users_userid ?>"><?php
$result=mysql_query("SELECT * FROM relogin_users WHERE (`rank`) = '1'");
 while($rec=mysql_fetch_assoc($result))
  {
     print('<img src="../img/users/szobaop.gif" width="16" height="16" border="0" align="bottom" title="Fejleszto"/><span class="rank'.$rec['rank'].'">'.$rec['username'].'<br></span>');
  }
?></a></td>

Netán nem jól írom? :S

Rimelek képe

Persze, mert a System::$user az az éppen belépett felhasználó. azaz te magad. Pont, ahogyan ezt írtam a jogokról szóló bejegyzés végén: LINK

Ahol már párszor jártál elvileg. Nemde? :)

Dual képe

Értem én :D Viszont ha a profil.php-n iratom ki akkor minden usernek a saját ID-jét adja vissza, ott így van kiiratva:

<?php echo  $user->T_users_userid ?>

Viszont ahol a szín claszt alkalmazza ott erre nem reagál :S
Ezért nem is értem az egészet :S

Rimelek képe

Ha értenéd, nem csinálnád hibásan. A System::$user bárhol elérhető, de az épp belépett usert adja, és neked nem ez kell.

A $user a profilban elérhető és ott kénytelen jól működni.

Ha te egyedileg kérdezed le a felhasználókat, akkor meg nyilván hiába nyúlsz bármelyik változóhoz. Nem fognak olyant taralmazni, amit egész máshonnan szerzel meg.

Ha annak a felhasználónak az id-je kell, amit te magad lekérdeztél a users táblából és színesen írtad ki a nevüket, akkor ott nem meglepő módon az id-t is onnan kell venni.
$rec['userid']
ahogy te a változódat elnevezted. És persze a ciklusban kell.

Ezek a lehetőségek vannak az id lekérdezésére.

Dual képe

Nagyon figyelmetlen voltam :S Köszönöm szépen :)))

Anonymous képe

Üdv, rimelek nem tudnád elküldeni csak a meghívó scriptet bele szeretném építeni a weboldalamba, köszönöm

Rimelek képe

Kedves Anonymous!

Nincs olyan, hogy csak meghívó szkript. Email-t lehet küldeni mindentől függetlenül, de ahhoz nem kell neked ez a login rendszer. Sem annak a meghívós része. Amit nem tudok neked külön kiemelni. Email küldésére a PHPMailer-t használtam. Azt a következő oldalról beszerezheted: LINK

Emailt küldhetsz ezzel, de az még nincs megoldva, hogy csak az regisztrálhasson, akit meghívtál. Ahhoz el kell tárolni a meghívás pillanatában, hogy milyen e-mail címmel hívtál meg valakit. Generálni kell neki egy linket, amivel azt a meghívást visszaigazolhatja és te letárolhatod, hogy a meghívás sikeres volt. Ő pedig beregisztrálhat azzal a címmel. De ez mindig az adott rendszerhez kötődik, így nem tudom csak azt elküldeni.

Anonymous képe

És ha elküldöm a motort privátba amibe bele szeretném építeni, esetleg ha volan szabadidőd bele tudnád rakni?

Rimelek képe

Sajnálom, de erre egészen biztos, hogy nincsen szabadidőm.

Dual képe

Hali :))
Olyan gondba/tudás hiányosságába ütköztem hogy:
logot már megtudok jeleníteni emailben.
Viszont formázni nem tudom :/

Eddig itt tartok:

private static function send($id, $email, $code)
{
   $link = self::createLink($id, $code);
   $body =
      "<img src='http:// aurelweb.hu/images/logo.png' width='185' height='65' /><br /> <dfn>Kedves Vendég</dfn> <br /> Az új jelszavad a következő linkre kattintva állíthatod be: <br />".PHP_EOL.
      "<a href='$link'>Új jelszó</a>";
      System::sendEmail($email, 'Elfelejtett jelszó', $body);
}

Próbáltam ennek adni egy lekerekített div-et viszont nem megy :S Valami ötlet lenne?
Előre is köszi
D.

Rimelek képe

E-mailekben nem lehet minden html formázást ugyanúgy használni. Inkább kerüld el! Ha mindenképp kell kerekítés, megoldhatod középre igazított háttérképpel. Na meg nem látom, hogy próbálkoztál, de helyben add meg a css-t is, ne külön style tag-ben, vagy css linkkel.

BenikeHUN képe

Szia, nekem nem jó a captcha képe. Miért ?

Rimelek képe

Szia. Egészen biztosan azért, mert fogalmam sincs. Ami azért lehet, mert semmilyen infóval nem szolgáltál a problémáról. Olvasd el, amit a captcha lehetséges hibájáról írtam a bejegyzésben. Írd meg, milyen tárhelyed van, miket próbáltál ki és mi lett az eredménye, stb. Megnézheted, mit válaszoltam másoknak erre a kérdésre, ha türelmes vagy és átlapozod az eddigi hozzászólások egy részét legalább. De szerintem többet senkinek se válaszoltam, mint ami a bejegyzés vége felé írva van. Hibás url beállításból adódik a legtöbb hiba. Elvétve előfordulhat GD modul hiánya. De gyakorlatban még nem találkoztam ilyennel.

BenikeHUN képe

hát ez KVA jó :) csak atw-n nem megy ki az email :( azt meglehet valahogy csinálni ? :D

Rimelek képe

ATW-n limitált, hogy egy nap hány emailt lehet küldeni. Bár ezt gondolom, hogy nem lépted még át. De ha nem megy ki az email, akkor lehet, hogy csak SPAM mappába kerül. Vagy addig se jut el, mert a postafiókodba kerülés előtt megfogja a szolgáltató szűrője. Vagy beállítottad az SMTP-t, de rosszul és így nem tudja a leveleket elküldeni. Bár ilyenkor lenne látható jele elvileg a regisztrációkor.

Dual képe

Szeva :)

Olyan dologba ütköztem bele, hogy felraktam egy hmtlarea-t az üzenetekhez.
Viszont, íráskor szépen alkalmazkodik is, majd olvasásnál csak a kódsorokat kapom vissza, formázatlanul. Az miért lehet?

Előre is köszi :)

Rimelek képe

Azért, mert nem lehet html-t beírni. Ha lehetne, tönkre lehetne tenni az oldalt egy privát üzenettel. Legalábbis az azt olvasó személy számára. Ami programokban engedélyezett a html bevitel, az egy plusz, extra lehetőség, extra óvintézkedésekkel. És privát üzeneteknél meg aztán pláne nem jellemző. Maximum BB kódok használata.

Dual képe

Ééééééééértem :)

Köszönöm szépen, akkor nem is próbálkozok vele :D

Dual képe

Hali ...

Az miért van, hogy kilistázom a legújabb tagokat:

<?php
require_once 'inc/connect.php';
?>
<?php

$query="SELECT * FROM new_users ORDER BY userid DESC";
if(isset($where) AND count($where)>0)
$query .=" WHERE " . implode(" OR " , $where) ;

$result=mysql_query($query);
$num = mysql_num_rows ($result);
$row_per_page=10;
if ($num > 0 ) {
?>
<table border="0" cellpadding="1" cellspacing="1">
<?php
       echo "<tr>";
for($b=0; $a=mysql_fetch_assoc($result); $b++)
{
                echo "<td><a href='../adatlap.php?uid=".$a["userid"]."'><img style='width: 90px; height: 90px;' src='img/users/avatar/".$a["avatar"].".png' title='".$a["username"]." adatlapja'></img></a></td>";             
       
       
 
        if($b%2)  echo "</tr><tr>";
}
echo "</tr>";
echo "</table>";

}
else
?>

és behívom a footerbe

 <?
                require_once 'ujtag.php';
?>

az index.php-n megjlenik, viszont ha pl a regisztrációra megyek, akkor eltünteti a táblázatot :S

Előre is köszi

Rimelek képe

Nem tudom. Javaslom a html validátorok használatát, hogy elkerüld legalább a hibás html-ből adódó problémákat. CSS-ben is lehet hibázni és akár a php-ben is. De a kódod ezen részében nem látok ilyen hibát.

De pl ne kapcsolódj kétszer az adatbázishoz. Ja és nézd a hibanaplókat, ha hibaüzenet nem is jelenik meg. Saját gépeden is kell lennie és fizetett tárhelyeken is szokott lenni.