Autor | Zpráva | ||
---|---|---|---|
doby92 Profil * |
#1 · Zasláno: 18. 4. 2012, 20:14:42
Dobrý den
Nevím si rady jak sloučit 2 kódy do jednoho. Klasické načítání php soborů (url index.php?page="hlavni") <?php if (isset($_GET["page"]) && substr_count($_GET["page"], "/") < 1) $page = $_GET["page"]; else $page = "hlavni.php"; $soubor = "$page.php"; if (file_exists($soubor)) include $soubor; else include "404.php"; ?> Načítání obsahu (článků) z databáze <?php if ($_GET["url"] == "") { $row = mysql_query('SELECT * FROM article'); echo $row; } else { $url = mysql_real_escape_string($_GET["url"]); $row = mysql_fetch_assoc(mysql_query(" SELECT * FROM article WHERE url = '$url' ")); echo $row; if (!$row) { echo "Tento článek neexistuje."; } } ?> Upravil jsem i .htaccess, kvůli přepisu na přátelské URL RewriteEngine on Options +FollowSymlinks RewriteCond %{REQUEST_URI} ^(.*) RewriteRule ^(.*) index.php?page=$1 [nc,L,QSA] Moje celková představa jak by to mělo fungovat je taková, že v hlavním menu budou odkazy zapsány stylem <a href="/neco"></a> však se tam budou objevovat i odkazy na články a ty by měli mít odkaz formou <a href="/clanky/nejake-url-ziskane-treba-z-nadpisu"> Snad mě chápete, předem děkuji za reakci :)) |
||
peta Profil |
#2 · Zasláno: 19. 4. 2012, 10:31:20
V cem vidis problem?
V pripade, ze soubor neexistuje, tak se pokusis najit clanek. Nebo opacne. Pokud neexistuje clanek, pokusis se otevrit soubor. |
||
Tori Profil |
#3 · Zasláno: 19. 4. 2012, 10:46:40
doby92:
Můžete si URL požadavku rozdělit na jednolivé části, a pak s nimi pracovat jak potřebujete: // index.php $url = explode('/', trim($_GET['page'], ' /')); if (empty($url)) { $soubor = 'hlavni.php'; } else { $soubor = $url[0].'.php'; } if (file_exists($soubor)) { include $soubor; } else { include "404.php"; } // clanky.php if (empty($url[1])) { // .. všechny články } else { // .. url článku je pod $url[1] } |
||
doby92 Profil * |
#4 · Zasláno: 19. 4. 2012, 13:53:04
Tori:
index.php funguje dobře jen ze to píše varovnou hlášku Undefined index: page in C:\ComplexWebServer\http_docs\www\index.php on line 2 a ještě jedna věc, když upravím .htaccess tak mi to přestane includovat hlavni.php předpokládám, že je to tím, že jsem změnil vlastnosti adresáře. Co s tím? |
||
Tori Profil |
doby92:
„Undefined index: page“ Nevím, jak máte teď udělaný .htaccess. $_GET['page'] jsem použila kvůli tomuto: RewriteRule ^(.*) index.php?page=$1 [nc,L,QSA] , jestli máte teď ten parametr pojmenovaný jinak, přepište si to v kódu ode mne.
„když upravím .htaccess“ Jak? |
||
doby92 Profil * |
#6 · Zasláno: 19. 4. 2012, 19:37:56
je to úplně stejný jako předtím
RewriteEngine on Options +FollowSymlinks RewriteCond %{REQUEST_URI} ^(.*) RewriteRule ^(.*) index.php?page=$1 [nc,L,QSA] |
||
Tori Profil |
#7 · Zasláno: 19. 4. 2012, 19:48:17
Aha, tak asi takhle:
$url = empty($_GET['page']) ? array() : explode('/', trim($_GET['page'], ' /')); |
||
doby92 Profil * |
#8 · Zasláno: 19. 4. 2012, 20:03:23
Perfektní šlape to parádně :) mockrát děkuji :) jen mám ještě otázku co myslíš tímhle komentářem
// .. url článku je pod $url[1] |
||
Tori Profil |
#9 · Zasláno: 19. 4. 2012, 20:10:18
Když chcete mít adresu článku takovouhle:
/clanky/nejake-url-ziskane-treba-z-nadpisu , tak se rozebere na pole
array( [0] => clanky [1] => nejake-url-ziskane-treba-z-nadpisu ) |
||
doby92 Profil * |
#10 · Zasláno: 19. 4. 2012, 20:29:09
paráda, už tomu plně rozumím :) děkuji mnohokrát :)
|
||
Časová prodleva: 12 let
|
0