Skočit na obsah


Fotka

PHP


  • Please log in to reply
34 odpovědí na toto téma

#1 Marstaj

Marstaj

    Starší učeň

  • Hráč
  • PipPipPip
  • 234 Příspěvků:
  • Gender:Male

Odesláno 11.11.2006 09:07

Zajimalo by me neco ohledne php... predem upozornuji ze sem amater :tongue:

1) existuje nejakej kod aby kostra stranky (menu, hlavicka paticka apod.) zustala furt stejna a menil se jen obsah... :cool: teda vim ze to jde a mam dojem ze je to neco s include("cesta/ke/strance.php"); ale nevim jak to do ty stranky zakomponovat :drinks:

diky za kazdou radu
  • 0

#2 Ascayavion

Ascayavion

    Znalec

  • Hráč
  • PipPipPipPipPipPip
  • 1120 Příspěvků:
  • Location:Jabal Toubkal

Odesláno 11.11.2006 09:45

Sam si si odpovedal, placni si tam
include "cesta_na_kod_ktory_chcem_aby_sa_opakoval.php";
  • 0

#3 Marstaj

Marstaj

    Starší učeň

  • Hráč
  • PipPipPip
  • 234 Příspěvků:
  • Gender:Male

Odesláno 11.11.2006 09:53

aaa tak sem to rozbehal :) thx a pribudou dalsi otazky :)

2) a jak udelam aby se mi to zmenilo kdyz kliknu na odkaz :)
  • 0

#4 Ascayavion

Ascayavion

    Znalec

  • Hráč
  • PipPipPipPipPipPip
  • 1120 Příspěvků:
  • Location:Jabal Toubkal

Odesláno 11.11.2006 11:13

Urob si jednu zakladnu kostru index.php do ktorej budes len pridavat rozne typy obsahu.

Po stranke budes navigovat pomocou premennych GET v url adresach. Teda, ked kliknes na link, tak si do url pridas nejaku premennu, povedzme
href="index.php?menu=uvod"
Znova sa ti nacita ta ista stranka od zaciatku, tam si este pred uvodnymi html hlavickami stiahni premenne z url
$menu = $_GET[menu];
a potom postupne inzertujes obsah podla tvojich navigacnych premennych pomocou klasickych vetviacich struktur
if ($menu == "uvod"): bla bla bla

Ale ovela lepsie ako sa pytat na fore a dufat, ze ti nejaka dobra dusa vsetko vysvetli je zohnat si dobru literaturu.
  • 0

#5 Host_Lopyk_*

Host_Lopyk_*
  • Host

Odesláno 11.11.2006 14:11

Ale ovela lepsie ako sa pytat na fore a dufat, ze ti nejaka dobra dusa vsetko vysvetli je zohnat si dobru literaturu.

Zobrazit příspěvek

..on i internet je plnej ruznejch postupu, rad, doporuceni, prikladu atp...
  • 0

#6 Marstaj

Marstaj

    Starší učeň

  • Hráč
  • PipPipPip
  • 234 Příspěvků:
  • Gender:Male

Odesláno 11.11.2006 14:56

...
Ale ovela lepsie ako sa pytat na fore a dufat, ze ti nejaka dobra dusa vsetko vysvetli je zohnat si dobru literaturu.

Zobrazit příspěvek


jo diky kamo nejak se tim zkusim prokousat

a na netu sem hledal kdyz uz neco najdu tak mi to but nejede nebo na to v tech serialech primo neukazujou a tak.. tak sem se zeptal :cool:

ale i tak diky
  • 0

#7 Wikinka

Wikinka

    Tovaryš

  • Hráč
  • PipPipPipPip
  • 652 Příspěvků:
  • Gender:Female

Odesláno 11.11.2006 17:16

jo diky kamo nejak se tim zkusim prokousat

a na netu sem hledal kdyz uz neco najdu tak mi to but nejede nebo na to v tech serialech primo neukazujou a tak.. tak sem se zeptal  :cool:

ale i tak diky

Zobrazit příspěvek



ja se sveho casu ucila odtud - manual - IMO to bohate staci
  • 0

#8 Marstaj

Marstaj

    Starší učeň

  • Hráč
  • PipPipPip
  • 234 Příspěvků:
  • Gender:Male

Odesláno 11.11.2006 17:51

ja se sveho casu ucila odtud - manual - IMO to bohate staci

Zobrazit příspěvek


mrknu na to diky
  • 0

#9 Lord Dragoo

Lord Dragoo

    Starší učeň

  • Hráč
  • PipPipPip
  • 359 Příspěvků:
  • Location:Slovensko, Bratislava
  • Interests:NWN, Oblivion, Star Treky, AirSoft a mnoho dalsieho :)

Odesláno 11.11.2006 18:34

$menu = $_GET[menu];

Zobrazit příspěvek

extract($_GET); len tak na okraj :)



Inac Marstaj kup si radsej nejaku knihu, pokial si uplny zaciatocnik tak ti hned php.net/manual az tak moc nepomoze. Ale pokial si uz niekedy v niecom programoval a tym nemyslim len podla nejakej knihi ci navodu ale spravil si svoj vlastny program cisto s hlavi, tak ti bude aj to php.net/manual na naucenie sa php stacit. Ale aj tak by som skor odporucil tu knihu :cool:.
  • 0

#10 Host_Josifek_*

Host_Josifek_*
  • Host

Odesláno 12.11.2006 12:40

extract($_GET); len tak na okraj :)
Inac Marstaj kup si radsej nejaku knihu, pokial si uplny zaciatocnik tak ti hned php.net/manual az tak moc nepomoze. Ale pokial si uz niekedy v niecom programoval a tym nemyslim len podla nejakej knihi ci navodu ale spravil si svoj vlastny program cisto s hlavi, tak ti bude aj to php.net/manual na naucenie sa php stacit. Ale aj tak by som skor odporucil tu knihu :tongue:.

Zobrazit příspěvek

No ale to mi neresi injekci nezadoucich promenych. Spis bych pouzil neco ve stylu
function pt_register() {
  $num_args = func_num_args();
  $vars = array();
  if ($num_args >= 2) {
    $method = strtoupper(func_get_arg(0));
    if (($method != 'SESSION') && ($method != 'GET') && ($method != 'POST') && ($method != 'SERVER') && ($method != 'COOKIE') && ($method != 'ENV')) {
      die('The first argument of pt_register must be one of the following: GET, POST, SESSION, SERVER, COOKIE, or ENV');
    }
    $varname = "_{$method}";
    global ${$varname};
    for &#40;$i = 1; $i < $num_args; $i++&#41; {
      $parameter = func_get_arg&#40;$i&#41;;
      if &#40;isset&#40;${$varname}&#91;$parameter&#93;&#41;&#41; {
        global $$parameter;
        $$parameter = ${$varname}&#91;$parameter&#93;;
      }
    }
  } else {
    die&#40;&#39;You must specify at least two arguments&#39;&#41;;
  }
}
A dokonce mi to zajistuje funkcnost kodu na vsech verzich PHP. :cool:
  • 0

#11 Host_Josifek_*

Host_Josifek_*
  • Host

Odesláno 12.11.2006 12:53

:cool:

Proc to delat jednoduse kdyz to jde slozite

Zobrazit příspěvek

Presne tak

http://www.gnu.org/f...helloworld.html
  • 0

#12 Marstaj

Marstaj

    Starší učeň

  • Hráč
  • PipPipPip
  • 234 Příspěvků:
  • Gender:Male

Odesláno 12.11.2006 14:09

extract($_GET); len tak na okraj :)
Inac Marstaj kup si radsej nejaku knihu, pokial si uplny zaciatocnik tak ti hned php.net/manual az tak moc nepomoze. Ale pokial si uz niekedy v niecom programoval a tym nemyslim len podla nejakej knihi ci navodu ale spravil si svoj vlastny program cisto s hlavi, tak ti bude aj to php.net/manual na naucenie sa php stacit. Ale aj tak by som skor odporucil tu knihu :mad:.

Zobrazit příspěvek


no chodim ve skole na programovani v pascalu ale ze bych to nejak vyrazne umel :mad:

No ale to mi neresi injekci nezadoucich promenych. Spis bych pouzil neco ve stylu

A dokonce mi to zajistuje funkcnost kodu na vsech verzich PHP.  :cool:

Zobrazit příspěvek


tak kamo tomu vubec nerozumim :tongue: ale zkusim se tim prolouskat, i za pomoci tech odkazu... tzn diky
  • 0

#13 Sepha

Sepha

    Cechmistr

  • Kronikář
  • PipPipPipPipPipPipPipPipPip
  • 2438 Příspěvků:
  • Gender:Male
  • Location:Praha

Odesláno 12.11.2006 14:16

Fakt si porid nejakou knizku ;) Mas to nejjednodussi.
  • 0

#14 Marstaj

Marstaj

    Starší učeň

  • Hráč
  • PipPipPip
  • 234 Příspěvků:
  • Gender:Male

Odesláno 12.11.2006 14:22

jak to tak procitam tak to asi udelam :cool:
  • 0

#15 Lord Dragoo

Lord Dragoo

    Starší učeň

  • Hráč
  • PipPipPip
  • 359 Příspěvků:
  • Location:Slovensko, Bratislava
  • Interests:NWN, Oblivion, Star Treky, AirSoft a mnoho dalsieho :)

Odesláno 12.11.2006 14:37

function pt_register&#40;&#41; {
  $num_args = func_num_args&#40;&#41;;
  $vars = array&#40;&#41;;
  if &#40;$num_args >= 2&#41; {
    $method = strtoupper&#40;func_get_arg&#40;0&#41;&#41;;
    if &#40;&#40;$method != &#39;SESSION&#39;&#41; && &#40;$method != &#39;GET&#39;&#41; && &#40;$method != &#39;POST&#39;&#41; && &#40;$method != &#39;SERVER&#39;&#41; && &#40;$method != &#39;COOKIE&#39;&#41; && &#40;$method != &#39;ENV&#39;&#41;&#41; {
      die&#40;&#39;The first argument of pt_register must be one of the following&#58; GET, POST, SESSION, SERVER, COOKIE, or ENV&#39;&#41;;
    }
    $varname = &#34;_{$method}&#34;;
    global ${$varname};
    for &#40;$i = 1; $i < $num_args; $i++&#41; {
      $parameter = func_get_arg&#40;$i&#41;;
      if &#40;isset&#40;${$varname}&#91;$parameter&#93;&#41;&#41; {
        global $$parameter;
        $$parameter = ${$varname}&#91;$parameter&#93;;
      }
    }
  } else {
    die&#40;&#39;You must specify at least two arguments&#39;&#41;;
  }
}

Zobrazit příspěvek


Nice! A teraz to skus pouzit s formularom kde odosielas tak stovku poloziek a kazda ma vlastnu premennu a su tam aj polia :D.
  • 0

#16 Lord Dragoo

Lord Dragoo

    Starší učeň

  • Hráč
  • PipPipPip
  • 359 Příspěvků:
  • Location:Slovensko, Bratislava
  • Interests:NWN, Oblivion, Star Treky, AirSoft a mnoho dalsieho :)

Odesláno 12.11.2006 14:40

jak to tak procitam tak to asi udelam  :cool:

Zobrazit příspěvek


Mno mozes este skusit precitat par tutorialov odtialto: http://www.programujte.com
  • 0

#17 Host_Josifek_*

Host_Josifek_*
  • Host

Odesláno 12.11.2006 14:53

Nice! A teraz to skus pouzit s formularom kde odosielas tak stovku poloziek a kazda ma vlastnu premennu a su tam aj polia :D.

Zobrazit příspěvek

To me ale v nicem neomezuje.
  • 0

#18 Lord Dragoo

Lord Dragoo

    Starší učeň

  • Hráč
  • PipPipPip
  • 359 Příspěvků:
  • Location:Slovensko, Bratislava
  • Interests:NWN, Oblivion, Star Treky, AirSoft a mnoho dalsieho :)

Odesláno 12.11.2006 15:05

To me ale v nicem neomezuje.

Zobrazit příspěvek


To je sice pravda :) ale aj tak pri stovkach udajov by si sa uz narobil nez by si to vypisal do argumentov funkcie (aj ked pri poli staci napisat nazov).
  • 0

#19 Host_Josifek_*

Host_Josifek_*
  • Host

Odesláno 12.11.2006 15:11

To je sice pravda :) ale aj tak pri stovkach udajov by si sa uz narobil nez by si to vypisal do argumentov funkcie (aj ked pri poli staci napisat nazov).

Zobrazit příspěvek

A proc bych to tam psal rucne, kdyz si napisu jinou fci ktera mi tu fci naplni. :cool:

Moje reseni je bezpecnejsi, zvlast pokud budu pouzivat extract nad polem $_GET bez definovani extract_type, nebot defaultní extract_type je EXTR_OVERWRITE. :tongue:

extract&#40;$_GET&#41;;
Tohle je proste bezpecnostne spatne a je to i pekna prasarna.
  • 0

#20 Lord Dragoo

Lord Dragoo

    Starší učeň

  • Hráč
  • PipPipPip
  • 359 Příspěvků:
  • Location:Slovensko, Bratislava
  • Interests:NWN, Oblivion, Star Treky, AirSoft a mnoho dalsieho :)

Odesláno 12.11.2006 15:19

A proc bych to tam psal rucne, kdyz si napisu jinou fci ktera mi tu fci naplni.  :cool:

Moje reseni je bezpecnejsi, zvlast pokud budu pouzivat extract nad polem $_GET bez definovani extract_type, nebot defaultní extract_type je EXTR_OVERWRITE.  :tongue:

extract&#40;$_GET&#41;;
Tohle je proste bezpecnostne spatne a je to i pekna prasarna.

Zobrazit příspěvek


Najlepsie bude aj tak asi vobec to neregistrovat a pouzivat ako $_POST, $_GET a pod.
  • 0

#21 Host_Josifek_*

Host_Josifek_*
  • Host

Odesláno 12.11.2006 15:28

Najlepsie bude aj tak asi vobec to neregistrovat a pouzivat ako $_POST, $_GET a pod.

Zobrazit příspěvek

To samozrejme muzem, ale v nejakem rozsahlem kodu nebo kdyz pouziju tvuj predchozi argument o formulari se stovkou polozek, tak se zbytecne upisu.
A aby z toho vysel nejaky zaver, fci extract je potreba pouzivat s rozvahou. :cool:
  • 0

#22 Marstaj

Marstaj

    Starší učeň

  • Hráč
  • PipPipPip
  • 234 Příspěvků:
  • Gender:Male

Odesláno 12.11.2006 18:25

no ja uz sem na to prisel :D je to takhle

index.php?page=x
kde x bude jméno stránky ( x.php / html atd.)

a toto do stranky ("./$_GET[page].php")

a funguje to tak jak chci :cool:

btw tomu co tu pisete vubec nerozumim :tongue:
  • 0

#23 Marstaj

Marstaj

    Starší učeň

  • Hráč
  • PipPipPip
  • 234 Příspěvků:
  • Gender:Male

Odesláno 12.11.2006 18:27

Mno mozes este skusit precitat par tutorialov odtialto: http://www.programujte.com

Zobrazit příspěvek


jop super thx
  • 0

#24 Host_Josifek_*

Host_Josifek_*
  • Host

Odesláno 12.11.2006 18:28

no ja uz sem na to prisel :D je to takhle

index.php?page=x
kde x bude jméno stránky ( x.php / html atd.)

a toto do stranky ("./$_GET[page].php")

a funguje to tak jak chci  :cool:

btw tomu co tu pisete vubec nerozumim  :tongue:

Zobrazit příspěvek

No ty zacatky jsou opravdu tezke to verim.

Proc to neudelas jak ti radil Asci ?
  • 0

#25 Marstaj

Marstaj

    Starší učeň

  • Hráč
  • PipPipPip
  • 234 Příspěvků:
  • Gender:Male

Odesláno 12.11.2006 19:43

No ty zacatky jsou opravdu tezke to verim.

Proc to neudelas jak ti radil Asci ?

Zobrazit příspěvek


nevim :cool: sem se ptal kamose v patek a on az ted napsal to co sem psal a je to kratsi.. a navic tomu co napsal Asci ne uplne rozumim :mad: nebo rozumim ale treba bych nevedel co napsat misto bla bla bla :mad:

hlavni je ze uz mi to jede... takze az budu mit zae nehnutelny problem tak napisu :tongue:

(dekovat uz nebudu protoze by tobylo uz trapny, teda podle me...)
  • 0

#26 Host_Josifek_*

Host_Josifek_*
  • Host

Odesláno 12.11.2006 19:50

nevim  :cool:  sem se ptal kamose v patek a on az ted napsal to co sem psal a je to kratsi.. a navic tomu co napsal Asci ne uplne rozumim  :tongue: nebo rozumim ale treba bych nevedel co napsat misto bla bla bla  :mad:

hlavni je ze uz mi to jede... takze az budu mit zae nehnutelny problem tak napisu  :blink:

(dekovat uz nebudu protoze by tobylo uz trapny, teda podle me...)

Zobrazit příspěvek

No jestli jsem to spravne pochopil, ty si v te promenne page predavas primo nazev toho souboru co chces, aby se zobrazil ze ?

To co chces by v hodne zjednodusene forme mohlo vypadat asi takhle:
index.php
       require &#39;header.php&#39;;
       require &#39;menu.php&#39;;
       switch &#40;$_GET&#91;select&#93;&#41;{
               case &#34;prvni&#34;&#58;
                    include &#34;./page/prvni.php&#34;;
                    break;
                 case &#34;druha&#34;&#58;
                    include &#34;./page/druha.php&#34;;
                    break;
               case &#34;treti&#34;&#58;
                    include &#34;./page/treti.php&#34;;
                    break;
              default&#58;
                    include &#34;./page/prvni.php&#34;;
                    break;
        }
        require &#39;footer.php&#39;;
menu.php
<a href=&#34;index.php?select=prvni&#34;>Prvni polozka menu</a>
<a href=&#34;index.php?select=druha&#34;>Druha polozka menu</a>
<a href=&#34;index.php?select=treti&#34;>Treti polozka menu</a>

Pochopila ? :mad:

PS: zdatnejsi jedinec muze resit proc nekde pouzivam require a nekde include. :mad:
  • 0

#27 Lord Dragoo

Lord Dragoo

    Starší učeň

  • Hráč
  • PipPipPip
  • 359 Příspěvků:
  • Location:Slovensko, Bratislava
  • Interests:NWN, Oblivion, Star Treky, AirSoft a mnoho dalsieho :)

Odesláno 12.11.2006 22:32

       require &#39;header.php&#39;;
       require &#39;menu.php&#39;;
       switch &#40;$_GET&#91;select&#93;&#41;{
               case &#34;prvni&#34;&#58;
                    include &#34;./page/prvni.php&#34;;
                    break;
                 case &#34;druha&#34;&#58;
                    include &#34;./page/druha.php&#34;;
                    break;
               case &#34;treti&#34;&#58;
                    include &#34;./page/treti.php&#34;;
                    break;
              default&#58;
                    include &#34;./page/prvni.php&#34;;
                    break;
        }
        require &#39;footer.php&#39;;

Zobrazit příspěvek


Neplet mu hlavu :). Btw. pokial sa nemylim tak medzi include a require je len ten rozdiel ze ak subor chyba, tak include vrati warning a skript pokracuje, ale require vrati fatal error a zastavi vykonavanie skriptu, je tam este nejaky iny rozdiel? (Nie ze by som zatial nejaky iny poznal ;))
  • 0

#28 Host_Josifek_*

Host_Josifek_*
  • Host

Odesláno 12.11.2006 22:38

Neplet mu hlavu :). Btw. pokial sa nemylim tak medzi include a require je len ten rozdiel ze ak subor chyba, tak include vrati warning a skript pokracuje, ale require vrati fatal error a zastavi vykonavanie skriptu, je tam este nejaky iny rozdiel? (Nie ze by som zatial nejaky iny poznal ;))

Zobrazit příspěvek

V cem mu motam hlavu ?

Ano require konci prikazem DIE, narozdil od include ktery konci warning.
Ale sila toho kde pouzit include a require je v podani. Na hlavicky a menu pouzivat require, na obsah include, nebot vim, ze mi ten tupej case vrati zakladni stranku.

Proto sem se zeptal, kde je vlastne rozdil, kdyz pouziju include a require. :cool:

Ale zpet k tematu: myslim, ze nas dotazovatel chtel slyset to co dostal v mem vyse uvedenm kodu.

PS: clovek co tohle zna, by nikdy takhle extract nepouzil. :oP
  • 0

#29 Lord Dragoo

Lord Dragoo

    Starší učeň

  • Hráč
  • PipPipPip
  • 359 Příspěvků:
  • Location:Slovensko, Bratislava
  • Interests:NWN, Oblivion, Star Treky, AirSoft a mnoho dalsieho :)

Odesláno 12.11.2006 22:49

Ale zpet k tematu: myslim, ze nas dotazovatel chtel slyset to co dostal v mem vyse uvedenm kodu.

Zobrazit příspěvek


No tak si mu to mohol trochu okomentovat, on nikdy s C-ckovou syntaxou nerobil, takze asi nevie ako funguje c-ckovsky switch.
  • 0

#30 Host_Josifek_*

Host_Josifek_*
  • Host

Odesláno 12.11.2006 22:54

No tak si mu to mohol trochu okomentovat, on nikdy s C-ckovou syntaxou nerobil, takze asi nevie ako funguje c-ckovsky switch.

Zobrazit příspěvek

Okomentovat ?
Ja myslim ce ta syntaxe byla zrejma, prenaseni promenych tam bylo ukazano.
  • 0




0 uživatelů si čte toto téma

0 členů, 0 návětěvníků, 0 anonymních