» »

login v phpju?

login v phpju?

cahahopie ::

Me zanima, kako nardim, da se lahko logirajo na stran, da imajo nato uporabniki možnost pisanja komentarjev, sodelovanje na forumu, itd... podobno kot na tej strani?
Neki sem gledu kako je to nareto per xmbju.
Ko sem dau SELECT password FROM xmb_members;
mi je spisal dve gesli, ko sem dal username dva usernejma, ko sem dal uid , dva id numberja, ker mam 2 registrirana uporabnika. Ko sem nato ofnu strani member.php in misc.php pa sem se dobesedno zgubo v nakracani kodi. Zato mi prosim povejte, kako to nardit, malo na kratko, če pa je cel esej znanja pa vsaj kakšen link do tutotriala, če pa še to ne... pač... google?:D

darh ::

cahahopie: zacnes lahko iskati na php.resourceindex.com

klede select stavka... itak da ti je izpisu 2 usernejma ce mas 2 vnosa v tabelo... ce bi dal pa tkole:

SELECT uid, username FROM xmb_members WHERE username = "cahahopie"

bi mogoce dobi tist kr rabs a ? :))

je pa ta stavk nekej na cemer lahko gradis svojo login skriptico :)
Excuses are useless! Results are priceless!

cahahopie ::

Ne, sj ni šlo za to, da iščem kaj, sam sprobavlo sem kam xmb vpisuje te usernejme pa passworde itd... kako izgleda sama tabela me je zanimal.
Hvala za link!

cahahopie ::

Ok... ok. Sj vem, da že presneto težim.
Toda... ma kdo kak določen link? Ker na tej strani (ki je precej dobra), sem se zgubo. Fora je v tem, če vpišem v google ne vem kaj naj vpišem? In potem vpisujem npr. login php/mysql al pa login tutotrial , itd.. in najde.. včasih prav smešne stvari (npr. Login here! This page uses php an mysql database! itd..).

Moj cilj je sicer narediti takšen portal (malo visoki cilji res):
Ko bi pršu na stran bi te na sredino pozdravilan današnje novice, na desni strani bi imel okence za login (podobno kot tule), na levi pa povezave (kaj novega!). Ko bi se logiro bi se logiro na pejđ in imel dostop do pisanja sporočil na forumu in komentiranja novic in podobnega. Tisti, ki pa bli adimini bi pa imeli hkrati dostop do pisanja novic in urejanja foruma, tako, da bi imeli nekateri passwordi večjo vrednost od drugih (to je že sicer bilo videno). Takšno stran že imam zapisano v glavi, samo tole z loginom/omejitve dostopa me zanima.

darh ::

pgolej kako drugi to delajo... zdownlowdej si phpNuke... jest ga sicer ne maram, ker se mi zdi da je mal smotan narjen, ampak za zacet je dobr....
Excuses are useless! Results are priceless!

cahahopie ::

Eee... to ni poante... uporabit neki že narejenga. Pa sicer niti jaz ge ne marama preveč...
Bo že kako.... :\

darh ::

ja... jest sm ti sam dal primer kje pogledat kako je narjen.... noben ni reku da ne smes sam napisat... :D:D:D
Excuses are useless! Results are priceless!

rc-car ::

cahahopie: najlazje bos naredil, ce nastimal phpnuke in potem gledas kako ima on narejeno...
tko sem se jest velik stvari naucu (sam ne s phpnukom ;)
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

cahahopie ::

Trenutno so mi so mi na glavo padle 3 ideje:
1. Tale post-nuke (bolji je od php-nuke samo zato ker ima avtomatsko inštalacijo baze) predelam totalka, a kolkr gledam je cel mau glup. Zelo se bo treba poglobit v samo kodo in preuredit, da mi bo vsaj malo všeč. Od teme, ki so zopet glupe (vzeu sem temo ExtraLite pa se tud okenc v katerem se prikaže novica obarvo z barvo, ki jo določiš v theme.php za glavno barvo strani.
2. Nardit pejđ, ki bo samo prikazoval novice, nanj se ne bo potrebno logirat in nato vzeti samo en Xmb kot forum. Najlažji možni način.
3. Pogledat res močno v kdo postnuke-a in to znanje prenset na svoj pejđ.

Nekako bo že.:D

cahahopie ::

Zdownloadu sem si enkup portalnih sistemov zdaj pa bom mau pogledu mal v njihove kode.

Sam per Geek-logu mam en blem...

Kaj misli tip s temle oz. kam misli, da naj to vpišem (pa še Perl omenja??!). Tabele pa sem že nardil... tole je za security.

Create the GeekLog MySQL user and permissions (this requires Perl). You can also set permissions manually or not at all. But for security's sake set your permissions!
/path/to/mysql/setpermissions

darh ::

ne, ne rabs perla za to malenkost.. lohka tud na roke nardis.. ampak ce mas stvar samo za testirat, se ti res ne splaca ukvarjat s securetijam in uporabi lepo admin password za mysql server pa je..
Excuses are useless! Results are priceless!

cahahopie ::

Neki pacam skupi... pa mi povejte kaj bi blo tule narobe?
Ime, priimek, username in geslo bi mogl vnest v tebelo members v datbazi rajsnegel.
začetek phpja...
$ime;
$priimek;
$username;
$geslo;
$regeslo;
if($geslo != $regeslo)
{
echo("Gesli se ne ujemata!");
}
else
{
echo("Včlanili ste se kot ");
echo($ime);
echo(" ");
echo($priimek);
echo(" z username-om ");
echo($username);
}

$dbcnx = @mysql_connect("localhost", "MojUser", "mojegeslo10");
if(!$dbcnx)
{
echo("

Ni se bilo mogoče povezati s MYSQL baznim serverjem

");
exit();
}

if (! @mysql_select_db("rajsnegel") )
{
echo("

Ni bilo mogoče najti baze podatkov

");
exit();
}
if ($submituser == "SUBMIT")
{
$sql = "INSERT INTO members SET
ime = $ime,
priimek = $priimek,
username = $username,
usergeslo = $geslo,
registerdatum = CURDATE()";
if (@mysql_query($sql))
{
echo("

Vaš račun je bil ustvarjen

");
}
else
{
echo("

Ni bilo mogoče ustvariti računa

");
}
}
?>

Haa??...o joj!:D

cahahopie ::

Aja... da vam povem...kaj noče nardit.
Ta stvar noče spravit teh podatkov v mojo bazo, tako da napiše samo...

Včalnili ste se kot Janez Kranjski z username-om JaNEZ

Ni bilo mogoče ustvariti računa

Torej mora biti napak pri tem qery-ju. A joj...:'(

cahahopie ::

Eeee....pozabte!!!
DELUJE!!!!!!|O:P
Ehh... banalna napaka.
pri $sql= bi mogu da vse te spremenljivke ($ime, $priimek, itd..) med znaka ' in '. Tako, da bi pol blo npr. '$ime' ... Hehe!!

cahahopie ::

Heh...
Mal sem že res tečen, a ne?;)

En problemčič je še vedno, če nekdo napiše različni geslo ($geslo je prvič ko vpišemo, $regeslo pa drugič, da potrdimo)... še vedno naredi račun. Nekaj sem razmišljal, da bi nekako noter vnsel funkcijo mysql_close takoj za mysql_connect, toda do zdaj mi še ni uspelo. Je mogoče kako druga to nardit? Tako, da se sploh ne bo konektal na bazo, če bota geslo različni? Je kakšna takšna funkcija, da preprosto server neha brat naprej php kodo?

rc-car ::

echo("Gesli se ne ujemata!");
}
else
{
echo("Včlanili ste se kot ");
echo($ime);
echo(" ");
echo($priimek);
echo(" z username-om ");
echo($username);
----
sem noter vkljucis vnos podatkov v bazo in naj bi delalo to kar si vprasaj v zadnjem postu. Ce slucajno ne dela je to zato, ker se je malo tezko znajt iz kode, ker nisi podpisoval tko kot se ponavadi podpisuje...
----
}

aja, pa glede tega:
echo("Včlanili ste se kot ");
echo($ime);
echo(" ");
echo($priimek);
echo(" z username-om ");
echo($username);

Zakaj ne napises to:
echo 'Vclanili ste se kot'.$ime.' '.$priimek.'z username-om'.$username;
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

darh ::

al pa še lažje s še manj kompliciranja:

echo "Vclanili ste se kot $ime $priimek z username-om $username";
Excuses are useless! Results are priceless!

cahahopie ::

Eh, tisto glede izpisa besedila, sem tako nardil, ker se nism spomnu kako morš še prav napisat (tista pika pred spremenljivko).
Mene zanima glede gesel. Kaj da bi nardil? rc-car, ne vem če je to tisto kar jaz iščem. Želim namreč, če bi obiskovalec napisal (pri delanju novega accounta) prvič pravilno geslo, drugič pa ko bi mogu potrdit pa narobe, da nebi nardil accounta, ker zdaj mi npr. napiše: Gesli se ne ujemata! Vaš račun je bil ustvarjen!...
To me moti. Če pač ne bo šlo bo pač user sam eno geslo vtipkal .. brez potrditve.:\

rc-car ::

Zdaj te pa ne razumem cist dobro...
Poglej mojo kodo, na 1. strani vpises username, password1 in password2, name, surname. Skripta pogleda, da kero polje ni bilo prazno, potem pa primerja passworda in, ce je vse ok, pol vpise v bazo, drugace ne.


// Password check
if ($password1 AND $password2 != "" AND $username != "" AND $name != "" AND $surname != "") {
if ($password1 == $password2) {

// Insert into database
require("settings.inc");

$sql = "INSERT INTO users (username, password, name, surname) VALUES ('$username','$password1','$name','$surname')";

if (($result = mysql_query($sql)) === FALSE) {
echo "MySQL Error: ".mysql_error()."
\n";
die();
};

echo 'Uspešno prijavljen!
Nazaj!
';

} else {
echo 'Prvo geslo ni enako drugemu, prosimo vnesite ju ponovno!';
};
} else {
echo 'Niste vnesli vseh podatkov!';
};

?>
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

cahahopie ::

o.k. Jao.. kak se nism gor pršu, kaj pa če niso vsa polja vpisana... jao!:\
O.k. sam kaj misliš s tistim require(seeting.inc);, kaj to je fajl v katerem naj bi bil zapisan konekt na bazo, ki bi se vključo noter? In tisto z Nazaj!; si mislil povezavo nazaj oz. redirect nazaj na začetno stran ali kaj druzga?
Veš... meni moraš malo bolj pojasnit, ker v moji glavi ... trenutno vlada zmeda...8-O

rc-car ::

Ce niso vsa polja vpisana, pol, hmm, nekaj javi, se mi zdi...
ja v settings.inc se mi konekta na bazo.

Nazaj je pa redirekt ali gumb za nazaj kamor pac hoces, ko se uspesno prijavis...
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

cahahopie ::

No... tako dolgo bom tukajle dokler ne bo Perfekta Mente! al kako že...:D
Ja, vprašu bi rad, če je sploh potreben tale require? Zdaj mam skor vse pošlihtan in nism uporabo require ampak je vse v enem fajlu. (Ma nekaj me je zafrkaval, pa sm se odloču, da uporabim malo svojga znanju in mojo "tehniko" pisanja:D). Torej...če napišem različni gesli... ne zapiše v bazo in če ne izpolnem vseh okenc tudi ne zapiše v bazo, če pa je vse lepo in prav pa zapiše.
Sam a je to iz security perspektive o.k? Ker... v tvojem primeru je vse skupaj razdeljeno in če en del manjka... se lahko zdolgočaseni kreker rit obriše (no.. ne mislim na tiste, ki že znaju vdirat na bančne račune:D). Nekaj sem bral v PHP Manualu na www.php.net... pa me zato mal zanima.

rc-car ::

Kaj to mislis?
Zakaj, ce bi en del manjkal (zakaj bi se to sploh zgodilo?) bi blo to unsecure? Z vkljucevanjem drugih datotek se izognes vekratnemu ponavljanju iste kode, temu se rece stukturirano programiranje...
Aja, pa lahko naredis brez require, preprosto kodo, ki je v tistem file pastas na tisto mesto kjer je require...
_____________________-
Torej...če napišem različni gesli... ne zapiše v bazo in če ne izpolnem vseh okenc tudi ne zapiše v bazo, če pa je vse lepo in prav pa zapiše.
Am, ja! :>
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

cahahopie ::

ŠEEE... pa
vedno obstaja hudik! To bi sicer moral vpisati pod thread charset.
Torej.. še veno me zajbava charset. Če torej vpišem ime Doris Dragovič in nato selectam v bazi select priimek from members where ime="doris"; mi napiše DragoviŔ, kar NI cool, ker če selectaš v kontra smeri.. torej select geslo from members where priimek="Dragovič" napiše: Empty set (torej ... nič, zero, null, nichts pod tem priimekom apak samo pod priimekom DragoviŔ ....AAaa!! Šajze!:\).
_________________________________________
...ok. rc-car, sam prepričat sem se hotel (ker nisem preveč pozorno bral). In kaj si mislil z Ahm, ja :> ?? Normalno, da dela. Ehh.. pozab.. točno strukturirano! Aja a v tem je bistvena fora tegale. Ehh...:)

rc-car ::

z Ahm, ja mislim to kar si ti predvideval :>

Glede charseta pa si ga nastavi v headerju na windows-1250...
Meni to ni delalo nikoli tezav... razen v Netscapu :8)
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

darh ::

windows charset no good, iso good ! :D
Excuses are useless! Results are priceless!

cahahopie ::

Saj imam nastavljen. Poskuso se kot s iso-8859-2 in win-1250 pa še vseeno ne dela.
Hmm...zlo čudn.
Ker kot sem že poprej napisal...
Besedilo v HTML kodi se izpiše normalno (s šumniki), besedilo v php kodi (npr. echo "Zrele češnje že še jem.";) se tudi izpiše normalno... vso besedilo, ki pa ima karkoli opravko z bazo pa ne prikaže šumnikov. (če izpiše npr. besedilo iz baze...so črke brez šumnikov, če insertaš v bazo besedilo, so v bazi črke brez šumnikov, torej ... en šajze.):\

rc-car ::

windows-1250 dela boljs v winsih, in ker je ze tam napisal da mu iso ne dela, pol pac to ostane :/

Drugace pa to pomeni, da je problem v bazi, probaj v bazi to spremenit al pa kej.. S tem nimam izkusenj, ker je zmerej ok delalo :>
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

darh ::

ja, verjetno maš v bazi z drugačnim charsetom text shranjen.. .anyway... poskusi malo poexperimentirat z PHP funkcijo recode, (v manualu dobis use potrebne podatke), sam te morm opozorit, da mors php skompajlat skupej z tem, da dela... ko dela.. pa dela cudeze :))
Excuses are useless! Results are priceless!

cahahopie ::

Ahm..:D
O.k. gledu sem in gledu, toda.. bi mi kdo podal primer v praksi? Samo majhen primercek... ker sem nekaj poskušal pa ni šlo ... probu sem tudi s funkcijo str_replace, ki pa mi je ni uspelo zorganizirat, da bi mi zamenjala vse tri kakrakterje.... toda, tudi sem mi zdi, da ni praktična in učinkovita z delo z bazo.. Torej... zanima me recorde, toda malo praktičnega primera ne bi škodilo.

... in upam, da nisem spet kaj kiksno...:D

cahahopie ::

No... pa še nekaj. Sedaj sem spacal skupi ta registracijski del strani (razen težav s charsetom nisem odpravil). Zdaj pa me zanima kako naj zlgeda ta login del strani?? Nimam niti predstave! Če bom imel prestavo bo veliko lažje. Torej kako naj sploh zgleda ta del, recimo kot na tej strani.
Se zahvaljujem za nadaljno pomoč in se opravičujem za morebitno jezo, če vam prevč... khm.. težim?;)

Loki ::

kaj pa recimo tako kot na s-t ali pa samo link Moj račun, ker bos lahko naredil vse:
nov racun;
prijava;
pozabljeno geslo;
nastavitve...
I left my wallet in El Segundo

cahahopie ::

Ja.. sj o vsem tem se razmišljal ... samo jaz bi hotel vedet bolj natančno.:D
Recimo... da se boš logiral in da boš naenkrat meu dostop do vseh strani do katerih po prej nisi imel? Ima to kaj opravka s piškotki? ...tistimi slastnimi s cimetom posutimi?:D

rc-car ::

Ja, ta lahko nardis s keksi, sam bos vidu, da niso sladki, ampak bolj grenki...
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

cahahopie ::

Hmm... vidm ja (premetavam kodo enega narejenega portal sistema...lepo urejeno spisano... samo delno je v turščini:D).
Obstaja še kakšna druga možnost, ki pa je seveda tudi varnostno učinkovita? Če ne... pač.. gremo žret..oops... delat.

rc-car ::

Ja, lahko nardis s sessioni, mislim, da je tut ta forum tko narjen...
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

darh ::

kuky way:

daš možnost logina, torej 2 polji, za username & password
ob posalnih podatkih preveriš avtentičnost, torej poiščeš v bazi uporabnika z uporabniškim imenom in geslom k jih je user najdu
recimo, da uporabnik obstaja in je vnesel pravo geslo, torej gga lahko logiramo. Uporabniku pošlješ en piškotek z enim naključnim stringom kakih 32 karakterjev dolgim, ki ima dvojčka v bazi.

Ko uporabnik vstopi na stran, skripta pogleda če ima kak cookie, pogleda vrednost in jo primerja z bazom ... če v bazi obstaja, potem je user logiran, drugače ne...


mater... sj ni tolk težko...
Excuses are useless! Results are priceless!

rc-car ::

Sej to ni tezko, sam problem je pol k ti ne dela zarad headerjev: Headers have already been sent by... >:D
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

darh ::

to je pa res najmanjsi problem...
vcash sm se jest mal pazu in delou strukturo tko, da me ni oviral, zdj pa lohka headerje poslem tud cist na koncu updejta... kje je fora ??

oglejte si tele funkcije:

flush — Flush the output buffer
ob_start — Turn on output buffering
ob_get_contents — Return the contents of the output buffer
ob_get_length — Return the length of the output buffer
ob_gzhandler — ob_start callback function to gzip output buffer
ob_end_flush — Flush (send) the output buffer and turn off output buffering
ob_end_clean — Clean (erase) the output buffer and turn off output buffering
ob_implicit_flush — Turn implicit flush on/off

pa še primer delovanja:



ob_start();
echo "Hello\n";

setcookie ("cookiename", "cookiedata");

ob_end_flush();



kje je trik ? output se ne outputa, ampak samo shranjuje v en buffer, k ga lahko na koncu tud pobrišemo, sformaturamo oz karkoli lahko počnemo z njim...
kaj zdj nardit ?

lepo naštimaš tole na začetku in koncu skripte in to je to....


seveda se da tud brez tega... sam pazt je treba kako postavs uso zadevo ipd...

lp,x
Excuses are useless! Results are priceless!

cahahopie ::

Ahm.. thnx! Če bo kaj zaštekal.. boste še naprošeni.:D

darh ::

jah.. sj lihtega se jest bojim... ej cahahopie... a ti sploh kej pogledas u kak manual al pa kje po netu, al kuj tukej zacnes tezit ? >:D
Excuses are useless! Results are priceless!

rc-car ::

xbite: cool :)
jest sem tut na strukturo pazu, sam pol k sem ene 10 fajlov za pazit se mi pa ni dal vec >:D
Tole z bufferjem bom pa absolutno probu!

Samo, kot pise v manualu je to mal od browserja odvisn, ker si Netscape in Explorer oba mal po svoje razlagata te stvari...
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

darh ::

to nebi smel bit nec od browserja odvisn, ker se use na serverju dogaja !!!
Excuses are useless! Results are priceless!

rc-car ::

Pa nekej pise, da lahko pride do napak...
Sej stestiras pa je ok!
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

darh ::

kje pise da pride do napak ?

jest ne najdem...
Excuses are useless! Results are priceless!

rc-car ::

http://www.php.net/manual/en/function.f...
[Dokler admini ne popravijo JavaScript gumba Link (tko, da bo delal na Netscapu) strajkam in ne pisem vec na roke linkov noter >:D ]



Some versions of Microsoft Internet Explorer will only start to display the page after they have received 256 bytes of output, so you may need to send extra whitespace before flushing to get those browsers to display the page.

User Contributed Notes
On my NS the above example doesn't work without the break tag. Interesting.


Dober, niso glih errorji, sam je potrebno bit mal pazljiv...
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

darh ::

Dober, niso glih errorji, sam je potrebno bit mal pazljiv...
:D
Excuses are useless! Results are priceless!

rc-car ::

>:D
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Začetniški php problem

Oddelek: Programiranje
141905 (1722) Lion29
»

povezovanje strani z tabelo

Oddelek: Programiranje
141045 (912) iggy
»

[PHP] Iskanje/brisanje iz baze (telefonskega imenika)

Oddelek: Programiranje
121778 (1560) Good Guy
»

sessions

Oddelek: Izdelava spletišč
151486 (1348) multiplayer
»

kak se na slohostingu postav forum in katerega?

Oddelek: Izdelava spletišč
392244 (1888) Klemenn

Več podobnih tem