[PHP] <a href="index.?akce=neco">

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod double_m 20. 7. 2006 10:35

Zdravíčko, lidičky mám 6 odkazů a v každým mám nějakou jinou akci,

stránka najede když $_GET['akce'] == "něco", ale všechno funguje až na jedno... já kliknu třeba na první odkaz stránka najede ale když nic neudělám nikam nekliknu a dám hned druhej odkaz tak stránka je bíla stačí dám F5 (refresh) a najede ta akce kterou jsem klikl, ... kdyz vlezu ale na stránku , kliknu na odkaz najede stránka a pak třeba kliknu někam 2X pod to do prostoru a dám další odkaz všechno běhá good....

Nevíte.. ?


// mbing : Téma přesunuto ● z Programování do Tvorba webových stránek a aplikací.
double_m
Junior

Odeslat příspěvekod Johny[CZ] 20. 7. 2006 10:42

Já používám tohle:

Kód: Vybrat vše
if (isset($_GET[view])) {
   $clanek="pages/".$_GET[view].".php";
   include $clanek;
}
else {
   echo "Úvodní text";
}
[/


Odkazy jsou jako <a href="index.php?view=neco">
Stránky jsou uloženy v adresáři "pages"
Johny[CZ]
Junior
Uživatelský avatar

Odeslat příspěvekod double_m 20. 7. 2006 12:32

Promin ja to napsal spatne, ne ze bych tam includoval stranku, ale vlozim tam jinej obsah pod tech sest odkazu.... Vzdycky je ...x.php?akce=xxx a a kod v ty samy strance je if($_GET['akce']) == "xxx" { a tady je to co se ma vypsat...} :)
double_m
Junior

Odeslat příspěvekod ptimura 20. 7. 2006 12:41

Nevime - co takhle nejakej kod?
jen se ptej ... ;-)
ptimura
Junior

Odeslat příspěvekod Johny[CZ] 20. 7. 2006 12:52

Myslíš takhle?

Kód: Vybrat vše
if ($_GET[akce] == "xxx") {
  echo "Text stránky xxx";
}

elseif ($_GET[akce] == "yyy") {
  echo "Text stránky yyy";
}

else {
   echo "Úvodní text";
}
[/co
Johny[CZ]
Junior
Uživatelský avatar

Odeslat příspěvekod ptimura 20. 7. 2006 13:19

Zkus
Kód: Vybrat vše
if (!isset($_GET[akce])) {
$akce = 'uvod';
} else {
$akce = $_GET[akce];
}
switch ($akce) {
   case 'xxx':
       echo "Strana xxx";
       break;
   case 'yyy':
       echo "Strana yyy";
       break;
   case 'uvod':
       echo "uvodni text";
       break;
   default:
       echo "Stranka neni definovana";
}

dava ti to vyhodu vetsi flexibilnosti pri pridavani dalsich stranek - neni nic horsiho nez pokouset se vyznat v zaplave If / ElseIf / Else.
jen se ptej ... ;-)
ptimura
Junior

Odeslat příspěvekod Mike.M 20. 7. 2006 13:29

Lepsi by bylo, kdybys sem dal cast toho kodu a ne abychom badali jak to mas udelane
Zivot je kurevsky tezky.
Mike.M
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod Johny[CZ] 20. 7. 2006 13:30

No já nevim... Přijde mi to úplně stejné, možná s tím "case" je to korektnější.
Stran té flexibilnosti bych použil ten s tim includem, a i ten kód na vkládání je kratší. A můžeš jednodušeni přidávat další stránky, nemusíš dávat další "case" nebo "elseif".
Johny[CZ]
Junior
Uživatelský avatar

Odeslat příspěvekod ptimura 20. 7. 2006 13:47

Jo jasne, s tim includem je to kratsi, ovsem soubor se strankou MUSI existovat, protoze jinak ti to hodi nepeknou hlasku. Reseni s case je lepsi kdyz chces mit veskerej kod v jednom souboru, pripadne kdyz texty na stranky vybiras z databaze.

//edit: S tim includem : kdyz ti nekdo zada do url zkusmo akce=pokus, tak ti to hodi hlasku ze soubor neexistuje, kdezto s case ti to napise ze stranka neni definovana. Pripadne se to taky da presmerovat na 404.
jen se ptej ... ;-)
ptimura
Junior

Odeslat příspěvekod Mike.M 20. 7. 2006 14:18

co brani pridat
Kód: Vybrat vše
if (isset($_GET[view])) {
   $clanek="pages/".$_GET[view].".php";
  if (File_exists($clanek): include $clanek;
}
else {
   include "uvod.php";
}


//Mývalice: Nepoužívej citaci, když reaguješ na předcházející příspěvek. Je to zbytečné.
Zivot je kurevsky tezky.
Mike.M
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod ptimura 20. 7. 2006 14:38

Mike.M: Jasne, jasne :)
jen se ptej ... ;-)
ptimura
Junior

Odeslat příspěvekod double_m 20. 7. 2006 21:39

ne-e tam jde o to né že by to nefungovalo zhlediska kodu ale ze kdyz dam 2x za sebou nejakej odkaz tak mi ukaze stranku a najede bila stranka a nejde zobrazit ani zdrojovej kod... proste se to sekne pri najizdeni dam F5 a vsechno najede jak ma..
double_m
Junior

Odeslat příspěvekod Mike.M 21. 7. 2006 08:00

tak sem hod kor at ti to muzeme optavit. Ted z tveho vysvetleni kazdy bada a urcite si rika ze to mas prasacky udelano.
Zivot je kurevsky tezky.
Mike.M
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod Johny[CZ] 21. 7. 2006 08:39

[quote="ptimura"]...ovsem soubor se strankou MUSI existovat...quote]

Aha, už jsem pochopil proč ne include:-). Je pravda že by to tam mělo být ošetřené (viz Mike.M). Asi to tak taky udělám:-)
Johny[CZ]
Junior
Uživatelský avatar

Odeslat příspěvekod Mike.M 21. 7. 2006 08:49

ono to mate vlastne nastejno, pokud tam je case ci neni. bo pokud ve switchi neexistuje promenna, a clovek si do adr. radku napise jakoukoli, taky to vyhodi error, a je lepsi include, protoze kod je prehlednejsi, nez pridavat porad nove a nove case. pro kazdy odkaz. Kdezto ten muk skriptik satci jen do <a href=".... napsat cokoli a mit ten soubor a autoomaticky to je.
Zivot je kurevsky tezky.
Mike.M
Mírně pokročilý
Uživatelský avatar

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků