Pozdrav svima, posebno Dudeu, koji ovo najviše i gleda(hvala na tome što pomažeš).
Radim jednu web aplikaciju zbog treninga da nauÄim i da mogu kasnije samostalno izraÄ'ivati aplikacije. Naravno prije nego Å¡to sma poÄeo sam proÄitao dosta literature, obiÅ¡ao 90% w3schools.com vezano za oblast koja me zanima. Radio sam dosta web aplikacija tokom toga i naiÅ¡ao sam na problem kad sam poÄeo da izraÄ'ujem login formu.
Ukoliko napravim login formu bez Äuvanja sesije ona radi, meÄ'utim da nebi svako mogao i ko nije ulogovan otici na mojdomen.com/index.php/ bez da se uloguje naravno napravio sam sesiju koja provjerava na svakoj stranici da li je sesija "loggedin" postojeća, ukoliko nije da prebaci na login.php. MeÄ'utim, to ne radi.Dole je detaljniji kod:
U index.php kod je sljedeći:
if(!isset($_SESSION['loggedin']))
{
header('Location: login.php');
}
else echo " ..... "
U login.php fileu kod:
if(isset($_SESSION['loggedin']))
{
header("Location: index.php");
}
TakoÄ'e u login.php fileu se nalazi kod gdje je sesija zapravo "daje". Ovaj dole kod je unutar if(mysql_num_rows($result)) ... nakon Å¡to uzme podatke sa passwordom i usernameom, naravno strogo zaÅ¡tićene od SQL Injectiona.
$_SESSION['loggedin'] = 1;
E sad, nakon Å¡to sam malo radio debugging i breakpoint shvatio sam gdje ustvari problem. To jest otprilike. Ako se ode na mojdomen.com/index.php on vam ga neće prikazati to je sigurno, mislim na stranicu, i to je super Å¡to neće, ali on neće prikazati ni ako se ulogujem. Ako stavim prvi kod, iz index.php filea koji sam priložio u komentar /* ... */, on će pokazati, znaÄi da se na login stranici prebacivanje izvrÅ¡ava, password je taÄan i sliÄno. TakoÄ'e u login formi ne radi provjera koja obavlja funkciju da ukoliko je sesija pokrenuta odmah prebaci korisnika na index.php bez logovanja. Nakon Å¡to sam to otkrio, uradio sam echo moje sesije, tj.
echo "My session is" . $_SESSION['loggedin']
prilikom Äega je kao rezultat ispalo sljedeće "My session is ". Sesija uopÅ¡te kao da ne postoji, kako to treba meni nije jasno, iako sam pokuÅ¡ao da rijeÅ¡im ovaj problem gledao mnogo oko sesija i na php.net i na w3schoools.com i na stackoverflowu probleme da li ima sliÄnih(oko 20 sam pogledao zajedno sa rjeÅ¡enjima) i nisam niÅ¡ta naÅ¡ao, tako da molim Vas za pomoć :)
moras prvo sto radis u php kodu session_start(); da ga pokrenes, pobrini se da to bude prije html-a i prije ikakvog php koda
Citat: Dude poslato Avgust 24, 2013, 00:34:48 PRE PODNE
moras prvo sto radis u php kodu session_start(); da ga pokrenes, pobrini se da to bude prije html-a i prije ikakvog php koda
To sam i uradio, nalazi se iznad ostalog koda, odma u
<?php session_start(); .. ostali kod ..?>
Ne radi, nije do toga, mislim da je do ovoga $_SESSION postavljanje ili nešto u provjerama, ugl. kad na chromeu u Inspec element(F12) u resource pogledam cookies za domen postoji cookie sa nameom PHPSESSID i nekim server uklonjen!ID kao Value i ostalim elementima.
moras imat pokrenut session u svakoj skript gdje ga koristis, ne samo u jednoj... to ti je problem...
ako ne znas posalji mi kod u pastebinu pa cu ti ja provjerit
Kako mislis u svakoj skripti? Koristim u index.php i login.php sesiju i u ta dva filea imam na vrhu session start
Treba li to jos negdje poslqcu ti kod ?
Citat: V_More poslato Avgust 26, 2013, 12:11:42 POSLE PODNE
Kako mislis u svakoj skripti? Koristim u index.php i login.php sesiju i u ta dva filea imam na vrhu session start
Treba li to jos negdje poslqcu ti kod ?
ajde stavi kod na pastebin i posalji mi u pm link...
Hahaha Dude, jesam [cenzura] :D
Otkrio sam šta je i popravio :D
Tamo gdje bila forma(polje za username, password i button) pisalo je na vrhu form action="index.php" method="post" i kad bi ti kliknuo na login dugme on bi te prebacio odmah u index.php, a nije uopÅ¡te iÅ¡ao na isset provjeru posta za username polje i password polje, gdje se ustvari sa mysql_query i mysql_num_rows provjerava i tu postavlja sesija, Å¡to znaÄi da sesija nije ni postavljena :D Moja netrpeljivost u debuggingu me navela da rjeÅ¡avam neÅ¡to gdje nema buga i napravim ih joÅ¡, sad sam sve popravio, trebao sam samo izbrisati action="index.php" hvala ti u svakom sluÄaju :-*
btw. Kako npr. kad se izlogujem da unsetujem sesiju ?
Citat: V_More poslato Avgust 26, 2013, 15:08:15 POSLE PODNE
Hahaha Dude, jesam [cenzura] :D
Otkrio sam šta je i popravio :D
Tamo gdje bila forma(polje za username, password i button) pisalo je na vrhu form action="index.php" method="post" i kad bi ti kliknuo na login dugme on bi te prebacio odmah u index.php, a nije uopÅ¡te iÅ¡ao na isset provjeru posta za username polje i password polje, gdje se ustvari sa mysql_query i mysql_num_rows provjerava i tu postavlja sesija, Å¡to znaÄi da sesija nije ni postavljena :D Moja netrpeljivost u debuggingu me navela da rjeÅ¡avam neÅ¡to gdje nema buga i napravim ih joÅ¡, sad sam sve popravio, trebao sam samo izbrisati action="index.php" hvala ti u svakom sluÄaju :-*
btw. Kako npr. kad se izlogujem da unsetujem sesiju ?
sam si dao odgovor, unset...
Hvala Dude mnogo, rešio sam to, sad mi trebaju dve stvari:
Kako da npr. imam recimo tabelu itema, ima kolone item id, itemname, itemprice. I u html imam dizajniranu tabelu gdje na vrhu piÅ¡e naziv kolone, a dole bi trebale da se pojavi novi red za svaki item. Tabela je u MySQL napravljena, sad mene zanima, kako da ovo ja napravim, da bude brzo. Ja sam napravio sa for petljom da idem do item id i uzmem iz njega podatke stavim u echo novi red i sve tako redom i to ispadne sve super, meÄ'utim, ako bude recimo 5000 itema, plus joÅ¡ Å¡to nije svaki id u tabeli, to je veoma sporo i loÅ¡e optimizovano, pa na koji naÄin to da rijeÅ¡im, da bude brzo ? Druga stvar kad mi samo na ovo odg. daÅ¡, poÅ¡to to je samo napisati dve tri reÄenice .. :D
Neću da otvaram više tema pa zato...
napravis paginaciju u html-u za stranice, prikazujes npr 100 po stranici... inace takav upit radu u slq-u sa offsetom, znaci ako npr prikazujes 100 po stranici i zelis drugu stranicu, napravis upit u sql-u sljedeci:
slektiraj sve iz tablice te i te ako je recimo id veci od nule i kreni od 101(offset) i limitiraj na 100.
To ce ti povuci sve od 101 do 200. I onda prikazes te...
Prvo nauci dobro SQL sintaksu da bi takve stvari mogao raditi.
Citat: Dude poslato Avgust 26, 2013, 23:39:58 POSLE PODNE
napravis paginaciju u html-u za stranice, prikazujes npr 100 po stranici... inace takav upit radu u slq-u sa offsetom, znaci ako npr prikazujes 100 po stranici i zelis drugu stranicu, napravis upit u sql-u sljedeci:
slektiraj sve iz tablice te i te ako je recimo id veci od nule i kreni od 101(offset) i limitiraj na 100.
To ce ti povuci sve od 101 do 200. I onda prikazes te...
Prvo nauci dobro SQL sintaksu da bi takve stvari mogao raditi.
Da ali je problem ako je for petlja i ako nije svaki id prisutan, ako recimo je neki sellan i nema ga u tablici dostupnih itema, tako da sam skontao ovako neÅ¡to, da radi kao na faceu, da for petlja ide od $i do 50 i kad scrollaÅ¡ do kraja on ti pokaže joÅ¡, i ide od 51 do sto znaÄi od $i+1 do $i+50, Å¡to je po meni najbolje rjeÅ¡enje, a kao da neki poslovan Äovjek će se zamarati da radi sad i broji dal' tu ima pedeset il' ne....
Drugo pitanje je sljedće, ja iznad te tabele mislio sam da stavim search polje, za svaku kolonu, e sada, ja znam napraviti search sa jednom kolonom, sa SELECT * FROM mojatabela WHERE Kolonakojutražim=onoštaukucam e sada, šta ako se popuni više polja ? Ne znam da li će ako na ovaj moj kod dodam AND Where Mojadrugakolona=onodrugoštakucam i ako npr, tu se ne ukuca ništa rezultat biti isti, nisam siguran, e sada kako to da napravim ? Razmišljao sam da radim sa isset i onda sve moguće kombinacije, ali tu bi bilo preko 100 kombinacija, što je stvarno mnogo, a puta još 5 tabela npr. pa kako to da uradim ?
Citat: V_More poslato Avgust 26, 2013, 23:53:00 POSLE PODNE
Citat: Dude poslato Avgust 26, 2013, 23:39:58 POSLE PODNE
napravis paginaciju u html-u za stranice, prikazujes npr 100 po stranici... inace takav upit radu u slq-u sa offsetom, znaci ako npr prikazujes 100 po stranici i zelis drugu stranicu, napravis upit u sql-u sljedeci:
slektiraj sve iz tablice te i te ako je recimo id veci od nule i kreni od 101(offset) i limitiraj na 100.
To ce ti povuci sve od 101 do 200. I onda prikazes te...
Prvo nauci dobro SQL sintaksu da bi takve stvari mogao raditi.
Da ali je problem ako je for petlja i ako nije svaki id prisutan, ako recimo je neki sellan i nema ga u tablici dostupnih itema, tako da sam skontao ovako neÅ¡to, da radi kao na faceu, da for petlja ide od $i do 50 i kad scrollaÅ¡ do kraja on ti pokaže joÅ¡, i ide od 51 do sto znaÄi od $i+1 do $i+50, Å¡to je po meni najbolje rjeÅ¡enje, a kao da neki poslovan Äovjek će se zamarati da radi sad i broji dal' tu ima pedeset il' ne....
Drugo pitanje je sljedće, ja iznad te tabele mislio sam da stavim search polje, za svaku kolonu, e sada, ja znam napraviti search sa jednom kolonom, sa SELECT * FROM mojatabela WHERE Kolonakojutražim=onoštaukucam e sada, šta ako se popuni više polja ? Ne znam da li će ako na ovaj moj kod dodam AND Where Mojadrugakolona=onodrugoštakucam i ako npr, tu se ne ukuca ništa rezultat biti isti, nisam siguran, e sada kako to da napravim ? Razmišljao sam da radim sa isset i onda sve moguće kombinacije, ali tu bi bilo preko 100 kombinacija, što je stvarno mnogo, a puta još 5 tabela npr. pa kako to da uradim ?
na upitu ogranicis sta povlaci, prouci sql sintaksu, vidim da lupas bezveze... inace for petlju php-u ne koristis za to, vec foreach...
za drugo pitanje, provuces ono sto trazis u GET i provjeravas ako postoji i ako je string length veci od nula onda dodajes sql upitu: polje LIKE %onostosiupisao%
Citat: Dude poslato Avgust 27, 2013, 00:20:33 PRE PODNE
Citat: V_More poslato Avgust 26, 2013, 23:53:00 POSLE PODNE
Citat: Dude poslato Avgust 26, 2013, 23:39:58 POSLE PODNE
napravis paginaciju u html-u za stranice, prikazujes npr 100 po stranici... inace takav upit radu u slq-u sa offsetom, znaci ako npr prikazujes 100 po stranici i zelis drugu stranicu, napravis upit u sql-u sljedeci:
slektiraj sve iz tablice te i te ako je recimo id veci od nule i kreni od 101(offset) i limitiraj na 100.
To ce ti povuci sve od 101 do 200. I onda prikazes te...
Prvo nauci dobro SQL sintaksu da bi takve stvari mogao raditi.
Da ali je problem ako je for petlja i ako nije svaki id prisutan, ako recimo je neki sellan i nema ga u tablici dostupnih itema, tako da sam skontao ovako neÅ¡to, da radi kao na faceu, da for petlja ide od $i do 50 i kad scrollaÅ¡ do kraja on ti pokaže joÅ¡, i ide od 51 do sto znaÄi od $i+1 do $i+50, Å¡to je po meni najbolje rjeÅ¡enje, a kao da neki poslovan Äovjek će se zamarati da radi sad i broji dal' tu ima pedeset il' ne....
Drugo pitanje je sljedće, ja iznad te tabele mislio sam da stavim search polje, za svaku kolonu, e sada, ja znam napraviti search sa jednom kolonom, sa SELECT * FROM mojatabela WHERE Kolonakojutražim=onoštaukucam e sada, šta ako se popuni više polja ? Ne znam da li će ako na ovaj moj kod dodam AND Where Mojadrugakolona=onodrugoštakucam i ako npr, tu se ne ukuca ništa rezultat biti isti, nisam siguran, e sada kako to da napravim ? Razmišljao sam da radim sa isset i onda sve moguće kombinacije, ali tu bi bilo preko 100 kombinacija, što je stvarno mnogo, a puta još 5 tabela npr. pa kako to da uradim ?
na upitu ogranicis sta povlaci, prouci sql sintaksu, vidim da lupas bezveze... inace for petlju php-u ne koristis za to, vec foreach...
za drugo pitanje, provuces ono sto trazis u GET i provjeravas ako postoji i ako je string length veci od nula onda dodajes sql upitu: polje LIKE %onostosiupisao%
Tako otprilike sma i ja nešto mislio, može jedan primjer upita ? Npr. sa dva, a da ne znaš šta je kucano ? Problem je što ja ne znam šta će ukuccati, npr. itemprice i itemname ukuca, da li ja u sql upitu ne bitno šta je ukucao radim LIKE za svaku kolonu, ili samo za onu koja je popunjena, ako je samo za onu koja je popunjena kako da saznam i pridružim upitu ?
if(isset($_GET['nazivkolone']) && strlen($_GET['nazivkolone'])>0) {
$query .= dalje ide upit sa LIKE - dodajes query upitu
}
a to isto sa str dodajem, kako već sa substr ?