Autor | Zpráva | ||
---|---|---|---|
barneby Profil |
#1 · Zasláno: 25. 9. 2013, 17:20:16
Dobrý den,
Chci se zeptat jak udělám když mám např tento link: stranka.cz/index.php?id=5 Aby vypadal nějak takhle: stranka.cz/clanek/15 Předem děkuji za všechny odpovědi :). |
||
Slark Profil * |
#2 · Zasláno: 25. 9. 2013, 17:29:52
použij rewrite v .htaccess
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^clanek(.*) index.php?clanek=$1 |
||
barneby Profil |
#3 · Zasláno: 25. 9. 2013, 17:30:52
A nešlo by to nějak pomocí PHP?
|
||
juriad Profil |
#4 · Zasláno: 25. 9. 2013, 17:34:15
barneby:
Ne. PHP té pěkné adrese nerozumí. Musíš použít nějaký nástroj (modrewrite), který ty adresy přepíše dříve než se dostanou k PHP. |
||
Amunak Profil |
#5 · Zasláno: 25. 9. 2013, 17:34:30
barneby:
Nešlo, potřebuješ, aby ti server přepisoval požadavky. |
||
barneby Profil |
#6 · Zasláno: 25. 9. 2013, 17:38:28
Aha ale to pomocí .htaccess je také dobrej způsob, Děkuji.
|
||
Davex Profil |
barneby:
„A nešlo by to nějak pomocí PHP?“ I v PHP by to šlo třeba takto: • http://www.example.com/clanek.php/15 a číslo si ve skriptu clanek.php vytáhneš z proměnné $_SERVER["PATH_INFO"]
• http://www.example.com/?15 a číslo si ve skriptu index.php přečteš z proměnné $_SERVER["QUERY_STRING"]
|
||
Časová prodleva: 17 dní
|
|||
barneby Profil |
#8 · Zasláno: 12. 10. 2013, 20:05:51
Slark:
> použij rewrite v .htaccess > > > 1 > 2 > 3 > 4 > 5RewriteEngine On > RewriteBase / > RewriteCond %{REQUEST_FILENAME} !-d > RewriteCond %{REQUEST_FILENAME} !-f > RewriteRule ^clanek(.*) index.php?clanek=$1 To nefunguje :( |
||
Rfilip Profil |
#9 · Zasláno: 12. 10. 2013, 20:15:18
Nefunguje znamená co?
|
||
barneby Profil |
#10 · Zasláno: 12. 10. 2013, 20:20:02
Když do jdu na stranka.cz/clanek/15 tak mi to napíše že stránka neexistuje.
|
||
Rfilip Profil |
#11 · Zasláno: 12. 10. 2013, 20:24:38
Opravdu máte v .htaccess v document rootu webu toto:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^clanek(.*) index.php?clanek=$1 Máte možnost zobrazit logy serveru? |
||
barneby Profil |
#12 · Zasláno: 12. 10. 2013, 20:37:12 · Upravil/a: barneby
Rfilip:
„Máte možnost zobrazit logy serveru?“ Bohužel ne :( „Opravdu máte v .htaccess v document rootu webu toto:“ Ano mám Už my to jde ale nejdou my vyčíst hodnoty. |
||
han5vk Profil |
#13 · Zasláno: 12. 10. 2013, 21:03:41
„nejdou my vyčíst hodnoty“
Ako nejdú? Nie je definovaná premenná $_GET['clanek'] , je prázdna alebo ako? Čo vypíše var_dump($_GET) ?
|
||
barneby Profil |
#14 · Zasláno: 12. 10. 2013, 21:08:31
Mám to takhle:
if (isset($_GET['clanek'])){ $id=(int)$_GET['clanek']; $read = $db->query("SELECT * FROM `clanky` WHERE `id`='$id' LIMIT 1") or die (mysql_error()); if(mysql_num_rows($read)) { while($p = mysql_fetch_assoc($read)) { echo "<div class='new-obsah'>\n"; echo "<h2>".$p['nazev']."</h2>\n"; echo "<div class='new-hl'>".$p['clanek']."</div>\n"; echo "</div>\n"; }}else{ $bl="index.php?Alert=1"; header("location: $bl"); } } |
||
han5vk Profil |
Kde ti to zlyháva, vypíše to nejakú hlášku? Máš zapnuté zobrazovanie chýb?
V $db máš predpokladám objekt MySQLi(prípadne iný DB objekt), na ktoré potom voláš MySQL (procedurálne, nie objektové) funkcie. |
||
barneby Profil |
#16 · Zasláno: 12. 10. 2013, 21:30:24
Vše v php funguje správně hlášky mám zaplí a nepíše to nic.
|
||
han5vk Profil |
#17 · Zasláno: 12. 10. 2013, 21:46:17
No, a čo vlastne nefunguje? Nevytiahnu sa tie články, alebo ako? Keď ti „nejdou my vyčíst hodnoty“ ?
|
||
barneby Profil |
#18 · Zasláno: 12. 10. 2013, 21:50:54
No tak hodnota $_GET['clanek'] se nevyčte
|
||
Kubo2 Profil |
#19 · Zasláno: 12. 10. 2013, 22:08:30
barneby:
„No tak hodnota $_GET['clanek'] se nevyčte.“ Tak si daj vypísať var_dump($_GET); a ten skript zavolaj explicitne s parametrom ?clanek=11 a potom pomocou "hezkej url" - tj. server.cz/clanek/11 a porovnaj výstupy. Obidva by ti mali vypísať to isté:
Array(1) { "clanek" => string(2) "11" } Ak sa ti nevypíše niečo takéto, tak je zrejme problém v rewrite module. |
||
Časová prodleva: 11 let
|
0