Autorius Tema: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"  (Skaityti 171 kartai)

naujokas

  • Naujokas
  • Žinutės: 7
  • Karma: +0/-0
Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"? Kiek radau skriptų dėl meniu, visuose yra panašūs kodai:
Pavizdys:
<div class=\"meniu\">
   <div class=\"meniu_apr\"><a href=\"/?puslapis=1\"  target=\"_self\" class=\"meniu_apr\">Titulinis</a></div>
   <div class=\"meniu_apr\"><a href=\"/?puslapis=2\"  target=\"_self\" class=\"meniu_apr\">Kontaktai</a></div>
</div>";
Tada kitame index failiuke apsirašo kas bus rodoma, pvz.:
switch($_GET[puslapis]) {
case 1:
include("kelias/kelias/titulinis.php");
break;
case 2:
include("kelias/kelias/kontaktai.php");
break;
default:
include("kelias/kelias/titulinis.php");
break;
}

Pagal šį kodą mes gauname du meniu punktus. Ir viskas veikia gerai. Tačiau man klausimas dėl rodomo adreso. Šiuo atveju pasirinkus viena ar kitą meniu punktus mes matysime štai tokius adresus:
http://www.adresas.lt/?puslapis=1 ir http://www.adresas.lt/?puslapis=2
Tačiau jei bandau vietoj ?puslapis=1 įrašyti pvz. titulinis ir prie case 1: pakeisti į 'titulinis', man rodo klaidą, žodžiu neveikia. Ar galima kaip nors kitaip aprašyti, kad finale adresas būtu pvz.: http://www.adresas.lt/kontaktai.

P.S. Žinau, kad kažkaip galima su .htaccess tą dalyką padaryt, bet ar yra kažkoks kitoks php kodas kuriame nereikėtų tų ?puslapis=1, o būtu galima rašyti pavadinimus?

Lukas Liesis

  • Administratorius
  • Herojus
  • Žinutės: 4141
  • Karma: +126/-12
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #1 : 2011-03-15 14:12:43 »
man rodos turetu veikti jei parasytum

http://adresas.lt/?kontaktai

tada ne switch naudoti o if..elseif...elseif..else.. ir if'e tikrinti ar isset($_GET['kontaktai'])


dar gali su php pasiimti url, tada
adresas bus toks http://adresas.lt/kontaktai

$url = explode("/",$url);

tada

if(in_array('kontaktai', $url)){
  // krauna kontaktai
}


http://www.phpro.org/examples/Get-Full-URL.html
http://php.net/manual/en/function.in-array.php
http://php.net/manual/en/function.explode.php
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

naujokas

  • Naujokas
  • Žinutės: 7
  • Karma: +0/-0
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #2 : 2011-03-17 12:08:47 »
Dar vienas klausimas. Iš to paties kodo norėjau padaryti "sub meniu" štai kaip aprašiau:

meniu.php
<div class=\"meniu\">
   <div class=\"meniu_apr\"><a href=\"/?puslapis=1\"  target=\"_self\" class=\"meniu_apr\">Pirmas</a></div>
   <div class=\"meniu_apr\"><a href=\"/?puslapis=2\"  target=\"_self\" class=\"meniu_apr\">Antras</a></div>
</div>";

sub_meniu.php
switch($_GET[puslapis]) {
case 1:
echo "
<a href=\"/?puslapis=3\" target=\"_self\" class=\"sub_menu\">info1</a><br />
<a href=\"/?puslapis=4\" target=\"_self\" class=\"sub_menu\">info2</a><br />
<a href=\"/?puslapis=5\" target=\"_self\" class=\"sub_menu\">info3</a>";
break;
case 2:
echo "
<a href=\"/?puslapis=6\" target=\"_self\" class=\"sub_menu\">info4</a><br />
<a href=\"/?puslapis=7\" target=\"_self\" class=\"sub_menu\">info5</a><br />
<a href=\"/?puslapis=8\" target=\"_self\" class=\"sub_menu\">info6</a>";
break;
default:
echo "
<a href=\"/?puslapis=3\" target=\"_self\" class=\"sub_menu\">info1</a><br />
<a href=\"/?puslapis=4\" target=\"_self\" class=\"sub_menu\">info2</a><br />
<a href=\"/?puslapis=5\" target=\"_self\" class=\"sub_menu\">info3</a>";
break;
}

Išvedamas tekstas: info.php
switch($_GET[puslapis]) {
case 3:
include("kelias/kelias/info1.php");
break;
case 4:
include("kelias/kelias/info2.phpp");
break;
case 5:
include("kelias/kelias/info3.php");
break;
case 6:
include("kelias/kelias/info4.php");
break;
case 7:
include("kelias/kelias/info5.php");
break;
case 8:
include("kelias/kelias/info6.php");
break;
default:
include("kelias/kelias/info1.php");
break;
}

Pagal šitą kodą pirmas menių punktas ir trys submenių punktai veikia gerai, tačiau kai pasirenku antrą menių punkta nors ir submenių punktai pasikeičia gerai, tačiau teksto neišvedinėja, jei spaudi ant submeniu jis permeta į pirmą menių punktą. Aš kaip suprantu pas mane čia yra aprašyta "info.php" tik viena submeniu klasė nes tik vienas yra "default", kaip aprašyti kiekvienam atskirai, gal kas galėtu parašyt koks turėtų būti kodas tame info.php? Dėkoju.

Lukas Liesis

  • Administratorius
  • Herojus
  • Žinutės: 4141
  • Karma: +126/-12
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #3 : 2011-03-18 15:01:00 »
tai reiskia logika kazkur susipina, pabandyk pasipiesti, pasirasyti kokie kintamieji buna kai kazka paspaudi, jei neiseina isivaizduoti mintyse :)
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

html css photoshop php forumas

Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #3 : 2011-03-18 15:01:00 »

Lukas Pukenis

  • Naujokas
  • Žinutės: 3
  • Karma: +0/-0
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #4 : 2011-03-19 19:23:56 »
Tokiai idėjai, kaip kad alias'o atvaizdavimas vietoj parametrų, reikia naudoti Apache ModRewrite variklį.
Konfigūruoti Apache reikia per .htaccess ir parašius įjungus ModRewrite nepamiršk perkraut Apache.

Tau reikėtų susikurti perrašymo taisyklę panašią į šią:

RewriteEngine on 
RewriteRule ^/Naujienos$ /index.php?id=1
RewriteRule ^/Galerija$ /index.php?id=2

Šiuo atveju vartotojas įvedęs .../Naujienos, serverio viduje sugeneruota nuoroda bus index.php?id=1


marvel

  • Dalyvis
  • Žinutės: 946
  • Karma: +11/-2
  • Wade can fly
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #5 : 2011-03-20 23:23:00 »
Vo sito man irgi reikia, minti supratau kaip cia reik, bet uzrasyti tikrai galiu pasakyt nemokesiu.. tai gal zinot kokiu lengvesniu pvz ?

Lukas Liesis

  • Administratorius
  • Herojus
  • Žinutės: 4141
  • Karma: +126/-12
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #6 : 2011-03-20 23:54:31 »
Tokiai idėjai, kaip kad alias'o atvaizdavimas vietoj parametrų, reikia naudoti Apache ModRewrite variklį.
Konfigūruoti Apache reikia per .htaccess ir parašius įjungus ModRewrite nepamiršk perkraut Apache.

Tau reikėtų susikurti perrašymo taisyklę panašią į šią:

RewriteEngine on 
RewriteRule ^/Naujienos$ /index.php?id=1
RewriteRule ^/Galerija$ /index.php?id=2

Šiuo atveju vartotojas įvedęs .../Naujienos, serverio viduje sugeneruota nuoroda bus index.php?id=1

man bent jau neiseina su analogiska sintakse pas save ant psl.. kazkaip nesiseka man su tuo .htaccess ir seo linkais per ji :/
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

naujokas

  • Naujokas
  • Žinutės: 7
  • Karma: +0/-0
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #7 : Vakar at 15:08:08 »
Na dėl .htaccess tai as žinau kaip perrašo, bet aš klausiau ar yra galimybė be .htaccess . Čia kodas tiems, kam tinka su .htaccess:

Options +FollowSymlinks

RewriteEngine on
RewriteBase /           <--- (nesu tikras ar reikia šitos eilutės)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule pavadinimas1 ?puslapis=1 [L]
RewriteRule pavadinimas2 ?puslapis=2 [L]
RewriteRule pavadinimas3 ?puslapis=3 [L]
RewriteRule pavadinimas4 ?puslapis=4 [L]
...
...
...
Tik nepamirškit pavadinimų pakeisti ir tarp menių kodo, nes kitaip neveiks. Žodžiu vietoj: "<a href=\"/?puslapis=1\"......." reikia pakeisti į: "<a href=\"/pavadinimas1\".......".

Bet man taip ir liko neatsakytas klausimas dėl sub meniu. Lukai sakiai, kad turėčiau pažiūrėti logika. Esmė ta, kad ne pats programinau, o kodas yra ištrauktas iš interneto. Todėl negaliu pažiūrėti kur bėda logikoj dėl to, kad nieko ten nesuprantu. Žodžiu esu visiškas naujokas PHP. Jeigu visgi kas nors galėtu man atsakyti į prieš tai rašyta klausimą, bučiau labai, labai dėkingas. Tiesa tas kodas buvo skirtas tik meniu, čia kad vienam lange atidarinėtu visus puslapius. Taigi, o man prireikė dar ir submeniu todėl ji pamėginau perrašyt. Ir man beveik pasisekė, nes kodas pusiau veikia. Tik kaip sakė Lukas kažkur pjaunasi logika. Taigi dar kartą pasikartosiu, jeigu tik kas galėtu padėti su šiuo kodu dėl submeniu, bučiau labai, labai dėkingas.

Lukas Liesis

  • Administratorius
  • Herojus
  • Žinutės: 4141
  • Karma: +126/-12
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #8 : Vakar at 18:05:03 »
o tu supranti ta savo dabartini koda?
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

naujokas

  • Naujokas
  • Žinutės: 7
  • Karma: +0/-0
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #9 : Vakar at 20:40:19 »
Ne, tikrai ne. Galiu parodyti koks kodas veikia:

meniu:
<div class=\"meniu\">
   <div class=\"meniu_apr\"><a href=\"/?puslapis=1\"  target=\"_self\" class=\"meniu_apr\">Pirmas</a></div>
   <div class=\"meniu_apr\"><a href=\"/?puslapis=2\"  target=\"_self\" class=\"meniu_apr\">Antras</a></div>
   <div class=\"meniu_apr\"><a href=\"/?puslapis=3\"  target=\"_self\" class=\"meniu_apr\">Trečias</a></div>
   <div class=\"meniu_apr\"><a href=\"/?puslapis=4\"  target=\"_self\" class=\"meniu_apr\">Ketvirtas</a></div>
   <div class=\"meniu_apr\"><a href=\"/?puslapis=5\"  target=\"_self\" class=\"meniu_apr\">Penktas</a></div>
   <div class=\"meniu_apr\"><a href=\"/?puslapis=6\"  target=\"_self\" class=\"meniu_apr\">Šeštas</a></div>
</div>";

Išvedamas tekstas:
switch($_GET[puslapis]) {
case 1:
include("kelias/kelias/info1.php");
break;
case 2:
include("kelias/kelias/info2.phpp");
break;
case 3:
include("kelias/kelias/info3.php");
break;
case 4:
include("kelias/kelias/info4.php");
break;
case 5:
include("kelias/kelias/info5.php");
break;
case 6:
include("kelias/kelias/info6.php");
break;
default:
include("kelias/kelias/info1.php");
break;
}


Toks kodas veikia ir netgi labai gerai. Tačiau čia yra tik meniu, o man reikia dar ir submeniu. Kaip pridėti submeniu?
« Paskutinis taisymas: Vakar at 20:42:54 nuo naujokas »

Lukas Liesis

  • Administratorius
  • Herojus
  • Žinutės: 4141
  • Karma: +126/-12
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #10 : Vakar at 22:30:10 »
nezinau, jei jau su divais darai meniu, tai as jauciu tavo vietoje iterpciau dar viena <div class="submeniu"></div> ir jame tuos submeniu linkus
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

Lukas Pukenis

  • Naujokas
  • Žinutės: 3
  • Karma: +0/-0
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #11 : Šiandien 08:00:28 »
Visų pirma reikėtų patikrinti ar ModRewrite įjungtas. Savo Apachėj pažiūrėk :).

Informacijos daug yra čia: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
, o čia puikus cheat sheet'as http://www.addedbytes.com/download/mod_rewrite-cheat-sheet-v1/pdf/
Patariu pažaisti su Apache įrankiais, nes jų yra galybė ir jie galingi, ypač ModRewrite.

Dėl submeniu pas naujoką tai yra klaida:    "case 2:   include("kelias/kelias/info2.phpp");", netikiu, kad phpp yra tavo kodo plėtinys".
Jei papasakotum plačiau ką nori padaryti ir kaip tai veikia dabar, nes nelabai supratau, galima būtų padėti.


naujokas

  • Naujokas
  • Žinutės: 7
  • Karma: +0/-0
Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #12 : Šiandien 10:41:30 »
Plėtinys phpp klaida buvo padaryta tik čia, forume. O dabar dėl veikimo. Paskutinėje žinutėje, kur aprašytas kodas, tai ten yra paprastas menių. Žodžiu padaryta, kad pasirenkant menių punktą keičiasi informacija ir visa tai atlieka viename puslapyje php pagalba. Nežinau kaip vadinasi visas tas dalykas, bet principas yra toks: pasirenkant menių punktą užkraunamas ne visas puslapis, o tiktais ta vieta kuri keičiasi. Ir visas šitas kodas veikia gerai, bet man reikia, kad dar būtų ir submenių. Paprastas submenių, kaip kad būna viršuje menių ir po juo žemiau iškarto eina submenių. Spaudžiant submenių punktus, keičiasi informacija, idėja labai paprasta. Tačiau nežinau kaip tai aprašyti, pagal anksčiau rašytas žinutes galite matyti kokiu būdu aš mėginau aprašyti, bet veikia blogai. Šiaip tai man nebūtinai naudoti šį kodą, gali būti ir bet koks kitas kuriame yra submenių, svarbu kad būtu besikraunantis viename puslapyje, na panašiai kaip galima padaryti su "switch".
Tiesa dar vienas klausimas iš tos pačios temos. Radau tokį tinklapį: www.bodyrock.tv . Peržvelgiau informaciją apie tinklapį, ten nurodyta - "Generator: wordpress" pamėginau pažiūrėti kaip aprašytas menių, tai visiškai nesupratau ten visi plėtiniai baigiasi "/" Niekada nedirbau su "wordpress", "joomla" ar kitais, bet labai įdomu kaip ten apsirašo kodas, kaip gali būti kad nėra jokių ".php" ar "?psl=1" ir t.t. Jei kas turit informacijos prašau pasidalinkit.

html css photoshop php forumas

Re: Kaip pakeisti "?puslapis=1" rodymą į "pavadinimas"
« Atsakyti #12 : Šiandien 10:41:30 »