Přátelské url nefunguje jak má – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Přátelské url nefunguje jak má – PHP – Fórum – Programujte.comPřátelské url nefunguje jak má – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Zuben0
Stálý člen
3. 10. 2011   #1
-
0
-

Dobrý den,

už nějaký den se pokouším zprovoznit přátelské url, bohužel nefunguje úplně jak má, funguje jen když dám př.

localhost/czm/novinky

ale když chci jít na samotnou novinku

localhost/czm/novinka/219/

kde 219 je id, tak se mi to buď nevypíše, nebo vypíše ale s bílým pozadí a jakoby bez celého CSS.

v .htaccess mám

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1&id$2 [L,QSA]

v obsah.php

$route = explode("/", trim($_GET['page'], "/"));
            $controller = ucfirst($route[0]) . ".php";       
            $soubor= $controller;
            echo $_GET['id'];
              //$soubor=$_GET['page'];
              $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/".$soubor."";
           
              if(file_exists($soubor2))
              {           
                include $soubor2;          
              }
              else
              {
                include "error404.php";
              }        

a v novinka.php

$route = explode("/", trim($_GET['page'], "/"));
$query="SELECT * FROM novinky WHERE `ID`=",$route[1];

nevíte proč mi to nefunguje ? Chtěl bych aspon dostáhnout tohoto výsledku: 

 localhost/czm/novinka/219/

nebo tohoto:

localhost/czm/novinka-219/

Díky předem za odpověď

Nahlásit jako SPAM
IP: 90.178.23.–
Reklama
Reklama
Paja2
~ Moderátor
+2
Věrný člen
3. 10. 2011   #2
-
+2
-
Zajímavé

#1 Zuben
V případě že máš 2 proměnné tak je nutné použít níže uvedený zápis

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ ?page=$1&stranka=$2

V případě bílého pozad je nutné doplnit do zápisu lomítka

href="/style.css", img src="/obrazky/picture.jpg"
Nahlásit jako SPAM
IP: 178.20.137.–
Curo
~ Šéfredaktor
+8
Hero
3. 10. 2011   #3
-
+2
-
Zajímavé

#1 Zuben, #2 Paja2
A ještě lépe, druhý

([^/]+)

nahradit za číselný

([0-9]+)
Nahlásit jako SPAM
IP: 90.180.158.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
Zuben0
Stálý člen
3. 10. 2011   #4
-
0
-

Děkuji mockrát, hodně mi to pomohlo, jen mi stále nenačítá to CSS.

přidal jsem tam lomítko, ale .htaccess  to stále přepisuje :)

<link type="text/css" href="/schema/<?php echo $schema; ?>/styl.css" rel="stylesheet">
Nahlásit jako SPAM
IP: 90.178.23.–
Curo
~ Šéfredaktor
+8
Hero
3. 10. 2011   #5
-
+1
-
Zajímavé

#4 Zuben
hoď sem URL, kde je CSS ve skutečnosti a CSS, který se volá (co ti vyplivne prohlížeč).

Nahlásit jako SPAM
IP: 90.180.158.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
Zuben0
Stálý člen
3. 10. 2011   #6
-
0
-

#5 Curo
ve skutečnosti 

localhost/czm/schema/newgeneration/styl.css

a otevírá to

localhost/czm/novinka/schema/newgeneration/styl.css


EDIT: ještě jsem odkaz upravil na ../schema a vyplivlo mi toto:

localhost/czm/schema/newgeneration/styl.css

EDIT2: v htaccess jsem tam nechal stary kod aby mi fungovalo i jenom localhost/czm/kontakt , jakmile ho odstranim tak schema funguje, ale zase mi nejde zobrazit ten kontakt

EDIT3: Vyřešeno, já blbec tam na konec zapoměl dát / :D

Nahlásit jako SPAM
IP: 90.178.23.–
Curo
~ Šéfredaktor
+8
Hero
3. 10. 2011   #7
-
+1
-
Zajímavé

#6 Zuben
Pak tedy zkus místo

RewriteRule ^([^/]+)/([0-9]+)?/?$ ?page=$1

dát

RewriteRule ^novinka/([0-9]+)?/?$ ?page=$1

Samozřejmě ti pěkné adresy teď budou fungovat jen pro NOVINKA/15/ a pokud bys chtěli jinou URL adresu,musel bys ji takto zapsat znovu, např. pro CLANEK/15/

RewriteRule ^clanek/([0-9]+)?/?$ ?page=$1

Výsledek tam může (i se stránkováním) vypadat:

RewriteRule ^novinka/([0-9]+)/([0-9]+)?/?$ ?page=$1&stranka=$2
Nahlásit jako SPAM
IP: 90.180.158.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
Zuben0
Stálý člen
3. 10. 2011   #8
-
0
-

a bylo by možné to udělat tak že to bude fungovat pro všechny, ale jakmile tam bude třeba novinky/2 tak to bude jinak ?

Nějak takhle ? (dohromady to nefunguje, funguje vždy to nahoře.)

RewriteRule ^novinky/([0-9]+)?$ index.php?page=novinky&strana=$1 [L,QSA] //tento na novinkovac

RewriteRule ^([^/]+)/([0-9]+)?/?$ index.php?page=$1&id=$2 [L,QSA] //tento na zbytek

EDIT: Tak vyřešeno :D, nvm ale jakmile semka napíšu tak mi to začne mnohem víc šrotit v hlavě :D

Nahlásit jako SPAM
IP: 90.178.23.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 70 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý