Riječ je o sljedećem, svi hintovi su dobrodošli.
Ovako, imam jednu stranicu u PHP, sadržaj guram u div pomoću include, id ovi su u arrayu i to radi odlično.No dobivam link tipa http://127.0.0.1/page/default.php?id=o_nama, a želim nešto tipa page/o-nama.
Znači vuče statičan sadržaj, tako da trebam pravilo pisati za svaki link.
RewriteEngine On
RewriteRule ^default.php?id=kontakt?$ kontakt.php [L]
Ovo sam stavio u .htaccess, file je editiran u notepad++ tako da bi trebalo sve raditi, nalazi se u rootu gdje je i stranica, no ne događa se ništa.U stavki apache handler pod loaded modules vidim da je mod_rewrite enabled.
Koliko sam skužio(nisam, mbaksa je zucnuo hint) trebalo bi prvo isprobati da li mod_rewrite uopće radi.Cijela priča se odvija na localhostu, XAMPP-u tako da ne bi trebalo biti problema većih.
Koliko sam skužio(nisam, mbaksa je zucnuo hint) trebalo bi prvo isprobati da li mod_rewrite uopće radi.Cijela priča se odvija na localhostu, XAMPP-u tako da ne bi trebalo biti problema većih.
Neka ti .htaccess sadržava nešto poput ovog:
RewriteEngine On
RewriteRule test.html test01.php [L]
Znači, imaš skriptu test01.php u kojoj ćeš napraviti recimo nešto tipa echo "Uspješna redirekcija!";. I onda probaš radi li localhost/test.html - ako ti se ispiše "Uspješna redirekcija!", onda znači da rewrite engine radi kako treba, i onda je problem u tome što si loše napisao regularni izraz. Za to, rekoh, posluži se programima poput
http://www.snapfiles.com/get/expresso.html
istestiraj da li ti ti regularni izrazi daju odgovarajući URL. Nisi mi odgovorio jesi li to uopće istestirao, ili za regularni izraz uopće nisi provjerio radi li.
Ti trebas 'dispatcher'. Progooglaj malo taj pojam. Uglavnom, koristis regularne ekspresije(preg_match) da bi dobio id, ili sta vec. Daj mi malo vremena, imam napisan kod sebe kod vec.
Mbaksa, istina, nisam ni pravo isprobao da li mi url rewriting zaista radi.Potrošio sam cijelu vječnost na zaštitu foldera-neuspješno, odnosno nekakva onovna HTTP zaštita.Kasnije ću isprobati.
Ako sam te shvatio, do sučelja za administriranje možeš doći upisivanjem adres, bez logiranja.
To lako rješiš, tako da provjeriš na toj (i svakoj drugoj) stranici dali je korisnik ulogiran i ako nije redirect na login, ako je nastavi dalje.
Iako je ovo trivijalno pa pretpostavljam da sam krivo shvatio :P
trebalo bi raditi sa sessionima, znam jer sam ja tako radio davno prije. vjerojatno imaš neku malu glupu grešku negdje
evo ovako je to izgledalo meni
if ($_SESSION['korisnik'] && $_SESSION['zaporka']){ //ako session postoji provjeri podatke u sessionu
$tmpKorisnik=mysql_real_escape_string($_SESSION['korisnik']);
$tmpZaporka=mysql_real_escape_string($_SESSION['zaporka']);
$getUser=$loginDb->query("SELECT * FROM korisnici WHERE korisnik='".$tmpKorisnik."' AND zaporka='".$tmpZaporka."' AND grupaID <= ".$grupa." AND blokiran='ne'");
I jos koda koji nije bitan.
Napravi nekakav security.php di ces provjeravat jel postoji session sa podacima koje bi autorizirani korisnik trebao imati i to inkludaj u svaki file koji zelis zastititi.
Cookies nikad ne koristi za security. Mozes ih koristit npr za kosarice i ostale stvari o kojima ne ovisi security.
Cookies ostaje na racunalu. Session ne. Znam da hashiras i tko zna sta, ali svejedno.
Žuti marker: zato ja volim .Net :) C# sintaksa i VS su the most programmer friendly solucija :)
A mozes imat i keylogger na racunalu :)
Riješio, ovo sad već idem u treći offtopic u ovoj temi.Znači radi se o sljedećem:
Imam sljedeću liniju koda, sadržaj je dinamičan, vuče se iz baze, link vodi na story.php koji po id-u vuče sadržaj.Slatko.ID se prosljeđuje u url, a title iz baze je naslov članka, sad trebam sljdedeće, nakon klika na link da mi se sadržaj ne otvara posebno nego da se includa u istu stranicu, logika mo govori da bi ovakava konstrukcija bila u redu, no ne radi.
<a href="inc/article.php?id=<?php echo $row->id; ?>"><?php echo $row->title; ?></a>
Ja to pokušavam riješiti na ovakav način:
if ($_GET['id'] == 'id') {
include 'article.php?id=<?php echo $row->id; ?>;
}
if ($_GET['id'] == 'id') {
include 'article.php?id=<?php echo $row->id; ?>;
}
Stavio si PHP kôd unutar PHP kôda!
djeco idite spavat, dosta posla za danas
Riješio, ovo sad već idem u treći offtopic u ovoj temi.Znači radi se o sljedećem:
Imam sljedeću liniju koda, sadržaj je dinamičan, vuče se iz baze, link vodi na story.php koji po id-u vuče sadržaj.Slatko.ID se prosljeđuje u url, a title iz baze je naslov članka, sad trebam sljdedeće, nakon klika na link da mi se sadržaj ne otvara posebno nego da se includa u istu stranicu, logika mo govori da bi ovakava konstrukcija bila u redu, no ne radi.
<a href="inc/article.php?id=<?php echo $row->id; ?>"><?php echo $row->title; ?></a>
Ja to pokušavam riješiti na ovakav način:
if ($_GET['id'] == 'id') {
include 'article.php?id=<?php echo $row->id; ?>;
}
Za prvo probaj $row['id'] ako radiš preko mysql_fetch_array()
drugo mi nije jasno sto pjesnik zeli postici :)
Ako sa drugim zelis ispis teksta iz baze, morati ćeš obaviti sql upit sa id-em koji ti je prosljeđen i onda ispisati to van. Ako sam dobro shvatio <.<
@mbaksa, kasno je i sintaksa me ubija u pojam, a i kava mi se davno, davno ohladila.
@dr.Zoidberg, da koristim podatke iz baze, i imam neznam kako da nazovem article.php stranicu/skriptu kojoj se u url prosljeđuje id, i onda ta funkcija iz toga id dok se učita izvuče sadržaj prema tom id-u, taj id je primary key. i onda sa mysql_fetch_array izvučem sadržaj i kroz echo ga ispišem van i to radi savršeno.
Ono što ja hoću dok se klikne na link koji u href parametra prima id u url, da mi taj članka ne otvara u novoj stranici , nego da se ispituje uvjet i da taj sadržaj includa u isti page.
Sad sam na poslu, i mogu kasnije postati taj dio koda ili nekom na pp/skype da ne spamamo ovdje toliko.
@mbaksa, kasno je i sintaksa me ubija u pojam, a i kava mi se davno, davno ohladila.
@dr.Zoidberg, da koristim podatke iz baze, i imam neznam kako da nazovem article.php stranicu/skriptu kojoj se u url prosljeđuje id, i onda ta funkcija iz toga id dok se učita izvuče sadržaj prema tom id-u, taj id je primary key. i onda sa mysql_fetch_array izvučem sadržaj i kroz echo ga ispišem van i to radi savršeno.
Ono što ja hoću dok se klikne na link koji u href parametra prima id u url, da mi taj članka ne otvara u novoj stranici , nego da se ispituje uvjet i da taj sadržaj includa u isti page.
Sad sam na poslu, i mogu kasnije postati taj dio koda ili nekom na pp/skype da ne spamamo ovdje toliko.
2 dana jako malo spavam pa ako ovo zvuci besmisleno upotrjebiti ću to za svoju obranu :P
Ako sam shvatio tebi treba stranica article.php koja na negdje ima provjeru isset($_POST['id']) i ako je postavljen id ispisuje article, ako nije onda neš drugo.
Znaci ako dođeš na link preko article.php dobijes jedno, a ako dođeš preko article.php?id=3 aktivira se uvjet gdje je $_POST['id'] postavljen i ispisuješ članak
Ja sam za login napravio sve u samo PHP-u, bez koristenja SQL-a. STvar je u tome da se prilikom ukucavanja tocne kombinacije username/password vrsi $_POST MD5 Hasha u admin.php, sto je potrebno da se executa admin.php, ako se pokusa pristupiti direct, izbaci "Access Denied! - You must login first."
Ja sam za login napravio sve u samo PHP-u, bez koristenja SQL-a. STvar je u tome da se prilikom ukucavanja tocne kombinacije username/password vrsi $_POST MD5 Hasha u admin.php, sto je potrebno da se executa admin.php, ako se pokusa pristupiti direct, izbaci "Access Denied! - You must login first."
Pa mora odnegdi vuc aktivne korisnike. Osim ako ne hardkodas jednog jedinog usera. Sto je glupo.
Riješio, ovo sad već idem u treći offtopic u ovoj temi.Znači radi se o sljedećem:
Imam sljedeću liniju koda, sadržaj je dinamičan, vuče se iz baze, link vodi na story.php koji po id-u vuče sadržaj.Slatko.ID se prosljeđuje u url, a title iz baze je naslov članka, sad trebam sljdedeće, nakon klika na link da mi se sadržaj ne otvara posebno nego da se includa u istu stranicu, logika mo govori da bi ovakava konstrukcija bila u redu, no ne radi.
<a href="inc/article.php?id=<?php echo $row->id; ?>"><?php echo $row->title; ?></a>
Ja to pokušavam riješiti na ovakav način:
if ($_GET['id'] == 'id') {
include 'article.php?id=<?php echo $row->id; ?>;
}
Nemoze tako.
Probaj ovako:
if ($_GET['id'] == 'id') {
// Ovakav kod se koristi ako zelis koristiti $_GET ili $_POST u include funkciji.
$_GET['id']="1";
include 'article.php';
}
Nemozes koristiti $_GET u include.
Primjer: include 'article.php?id=1';
- nevalja
MOras postaviti $_GET prije include kako sam gore i napisao...
Probaj to, i usput kombiniraj u to ono svoje za $row
Ja sam za login napravio sve u samo PHP-u, bez koristenja SQL-a. STvar je u tome da se prilikom ukucavanja tocne kombinacije username/password vrsi $_POST MD5 Hasha u admin.php, sto je potrebno da se executa admin.php, ako se pokusa pristupiti direct, izbaci "Access Denied! - You must login first."
Pa mora odnegdi vuc aktivne korisnike. Osim ako ne hardkodas jednog jedinog usera. Sto je glupo.
Ma u redu je to da koristi SQL, samo pokusavam reci kako moze zastititi admina od neovlastenog pristupa.
@xZero, hvala za sad isprobat ću, trebao sam uploadati taj folder negdje na web, tako da mogu odmah isprobati.U biti probat ću napraviti example bez SQL samo da vidim da li to funkcionira na taj način.
@tnakir, koristim SQL trenutno samo za jednog korisnika, no postojeći sustav ću nadograditi i koristiti kasnije za više korisnika, s time da sam napravio formu koja omogućava dodavanje korisnika i samo admin joj može pristupiti.Svi podaci se skupljaju sa $_POST i upucavaju u query i to radi savršeno
.
@xZero, hvala za sad isprobat ću, trebao sam uploadati taj folder negdje na web, tako da mogu odmah isprobati.U biti probat ću napraviti example bez SQL samo da vidim da li to funkcionira na taj način.
@tnakir, koristim SQL trenutno samo za jednog korisnika, no postojeći sustav ću nadograditi i koristiti kasnije za više korisnika, s time da sam napravio formu koja omogućava dodavanje korisnika i samo admin joj može pristupiti.Svi podaci se skupljaju sa $_POST i upucavaju u query i to radi savršeno
.
Naravno, to je za ocekivati i kad vec pises, najbolje odmah napraviti pripremu za buducnost.
@xZero, hvala za sad isprobat ću, trebao sam uploadati taj folder negdje na web, tako da mogu odmah isprobati.U biti probat ću napraviti example bez SQL samo da vidim da li to funkcionira na taj način.
@tnakir, koristim SQL trenutno samo za jednog korisnika, no postojeći sustav ću nadograditi i koristiti kasnije za više korisnika, s time da sam napravio formu koja omogućava dodavanje korisnika i samo admin joj može pristupiti.Svi podaci se skupljaju sa $_POST i upucavaju u query i to radi savršeno
.
i? si sta uspio?
@xZero, almost, preskočio sam neke bitne dijelove u učenju PHP-a, pa mi se događaju takvi problemi.
@xZero, almost, preskočio sam neke bitne dijelove u učenju PHP-a, pa mi se događaju takvi problemi.
Pocetnicke greske
- VRati se na te dijelove i uci 
@xZero, almost, preskočio sam neke bitne dijelove u učenju PHP-a, pa mi se događaju takvi problemi.
Uciti uciti i samo uciti jedino tako mozes razluciti... Kazu da je kruh pomoraca sa 7 kora. Programerski ima bar jos toliko. Nikad nisi u toku. Uvijek moras uciti. Ako nesto preskocis moras se hebat. Moras poznavat osim osnovne tehnologije (npr PHP) bar jos 2 (html/css + SQL) i za kraj od drugih ljudi dobivas komentare "Pa ti se samo igras na kompjuteru, nes ti, sidis i malo tipkas... Kako se od toga mos umorit".

