link gen : index.php?pagina=noua

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

link gen : index.php?pagina=noua

Mesajde PET » Lun Oct 11, 2004 11:19 am

Salut,

sunt si eu curios cum se poate face asa ceva.
Am vazut pe multe site-uri linkuri de genu asta :

Am pagina index.php care cuprinde meniu.php, page_top.php, etc.
Normal as putea sa fac in felul urmator :

Fac pagina noua care este chemata prin meniu. Pagina noua cuprinde informatia alaturi de include('page_bottom.php'), etc. Adica un fel de index.php

Dar eu vreau sa fac ceva de genu :

index.php?page=jucatori

cum as putea sa fac asa ceva ?
Daca puteti sa-mi dati si exemple.

Multumesc.


PET - Vesnicul n00b al acestui forum :)

whiteadi
PHPRomania Supporter
Mesaje: 26
Membru din: Joi Mar 04, 2004 12:25 pm
Localitate: Timisoara
Contact:

Mesajde whiteadi » Lun Oct 11, 2004 11:51 am

ciao pet:

de vrei sa faci toate intr-o pagina=script, ceea ce nu e chiar recomandat ca pozti sa ai prea mult cod = mai greu de descifrat apoi, pai in functzie de ce valoare primeshti in get pt pagina afisezi ce tzine de acea "pagina":

in meniu sa intzeleg ca vrei link-ul players sa duca la index.php?page=player, pagina cu mancare sa aibe link-ul index.php?page=mancare s.a.m.d; daca da:

dupa ce incluzi in index.php header.php shi meniu.php bagi:

if ( trim($_GET['page']) == 'players'){

cod pt "pagina" players;

}else if(trim($_GET['page']) == 'mancare'){

cod pt "pagina" haleala;

}...

else{

cod pt index.php initzial

}

PS: e recomandat sa folosesti numere nu string-uri (atunci nu mai pui trim())

whiteadi
PHPRomania Supporter
Mesaje: 26
Membru din: Joi Mar 04, 2004 12:25 pm
Localitate: Timisoara
Contact:

Mesajde whiteadi » Lun Oct 11, 2004 11:55 am

cum vrei :)

de la stanga la dreapta

adica pui numai ce se afisheaza, intampla, pt pagina respectiva, fara meniu shi alte chestii comune tuturor paginilor

un_guru
Average Member
Mesaje: 153
Membru din: Dum Iul 25, 2004 5:20 am
Localitate: Miecurea Ciuc
Contact:

Mesajde un_guru » Lun Oct 11, 2004 5:17 pm


Avatar utilizator
arond
Senior Member
Mesaje: 580
Membru din: Joi Mar 11, 2004 2:00 am
Localitate: 127.0.0.1
Contact:

Mesajde arond » Lun Oct 11, 2004 6:27 pm

People ask for criticism, but they only want praise.
W. Somerset Maugham (1874 - 1965).

http://www.arond-design.ro

un_guru
Average Member
Mesaje: 153
Membru din: Dum Iul 25, 2004 5:20 am
Localitate: Miecurea Ciuc
Contact:

Mesajde un_guru » Lun Oct 11, 2004 6:36 pm

1. da
2. [php]// numele paginilor pe care vrei sa le afishezi
$pagini = array("utilizatori","evenimente","despre","cauta","mai_sti_eu_ce");
if(in_array($_GET['pagina'],$pagini)){
require($_GET['pagina'].".php");
}[/php]

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Mar Oct 12, 2004 3:15 pm

PET - Vesnicul n00b al acestui forum :)

un_guru
Average Member
Mesaje: 153
Membru din: Dum Iul 25, 2004 5:20 am
Localitate: Miecurea Ciuc
Contact:

Mesajde un_guru » Mar Oct 12, 2004 5:40 pm

cam asa ceva.
IF verifica daca pagina trimisa prin link ($_GET['pagina']) este in "arie". Adica este in lista fisierelor pe care vrei sa le incarce. Daca da, atunci il incarca, daca nu, atunci nu face nimic.

-ps - nu trebuie decat sa editezi array-ul ... sa adaugi numele paginilor . Este exact ce zice cologul mai jos, numai ca e codul mai scurt, mai lizibil, mai "istetz"
Ultima oară modificat Mar Oct 12, 2004 6:16 pm de către un_guru, modificat 1 dată în total.

cupubboy
PHPRomania Supporter
Mesaje: 9
Membru din: Mar Mai 20, 2003 2:51 pm
Localitate: Bucuresti
Contact:

Aceeasi idee alta implementare

Mesajde cupubboy » Mar Oct 12, 2004 6:09 pm

Intr-adevar daca ai multe pagini te incurci.
altfel eu cand folosesc asa ceva, am o pagina switch.php spre ex:
switch ($_GET['pagina'])
{
case "tralala":
include("tralala.php";
break;
case "alabala":
include("alabala.php");
break;
default:
include("default.php");
break;
}
Iar aceasta pagina o includ in index.php

Avatar utilizator
AEROStyle
PHPRomania Supporter
Mesaje: 29
Membru din: Sâm Mar 27, 2004 11:20 pm
Localitate: IT Universe
Contact:

Mesajde AEROStyle » Mar Oct 12, 2004 7:01 pm

cupubboy - No offence : dar tu vezi ce s-a discutat mai sus :?:
Nu numai ca scriptul tau are o eroare si ca poate genera erori, dar nu functioneaza tot timpul.
Anyway... Ce mai buna solutie mi se pare urmatoarea :
[php]
<?php
if (file_exists ("pages/" . $_GET['page'] . ".php"))
{
require ("pages/" . $_GET['page'] . ".php");
}
else
{
echo "Nu exista pagina ceruta !";
}
?>
[/php]
Insa si acest script are hibe... Va las sa le descoperiti singuri :!:
~

un_guru
Average Member
Mesaje: 153
Membru din: Dum Iul 25, 2004 5:20 am
Localitate: Miecurea Ciuc
Contact:

Mesajde un_guru » Mar Oct 12, 2004 7:33 pm

AEROStyle, vezi ce zice arond despre solutia ta ... un pic mai sus la punctul 2. ... banuiesc ca aia e "hiba" de care vorbeai.
Eu zic sa-i dam shansa lui PET sa faca si el ceva ... Acum stie sa incarce pagina, are doua criteri de evaluare, urmeaza sa le combine ...
bafta

Avatar utilizator
AEROStyle
PHPRomania Supporter
Mesaje: 29
Membru din: Sâm Mar 27, 2004 11:20 pm
Localitate: IT Universe
Contact:

Mesajde AEROStyle » Mar Oct 12, 2004 9:26 pm

Nu neaparat aia este...
De exemplu daca serverul nu e configurat cum trebuie, un utilizator poate foarte usor sa afle parola de root a serverului respectiv.
Pur si simplu afla locatia scriptului PHP, si scrie adresa relativa la acesta catre directorul /etc. Simplu, nu :?:
~

un_guru
Average Member
Mesaje: 153
Membru din: Dum Iul 25, 2004 5:20 am
Localitate: Miecurea Ciuc
Contact:

Mesajde un_guru » Mar Oct 12, 2004 9:54 pm

ei nah ... prea mult. trebuie ca in mod deliberat sa-ti configurezi serverul ca sa poti accesa "/etc".
Iar cu parola de root nu vad legatura. Parola o ia din /etc/passwords ? mai greu!
PHP nu e o gaura de securitate pentru server. Utilizat necorespunzator poate creea gauri de securitate pentru site, pentru continutul acestuia.
... dar asta e un alt capitol

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Mie Oct 13, 2004 8:19 am

facuse-m ceva de genu :

if($_GET['pagina'] == players ) {

COD

}

Sau ceva de genu. Nu mai stiu exact toate punctele si ; Oricum, mergea.

Faza era urmatoarea :

Daca mai bagam inca un if. Cand mergeam pe index.php, scriptul arata TOT. Adica tot codu de la fiecare chestie.

Uitase-m sa pun chestia cu else. Adica am pus-o asa cum am stiut eu si mi-a dat eroare cu unexpected else.

Oricum salvez pagina acum si mi-o iau acasa (eu am ceva probleme cu netu acasa de vre-o 2 luni).
PET - Vesnicul n00b al acestui forum :)

xiqqo
New Member
Mesaje: 1
Membru din: Mie Oct 13, 2004 7:32 am
Localitate: romania
Contact:

salutare Admin

Mesajde xiqqo » Mie Oct 13, 2004 8:48 am

fenomen


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 27 vizitatori