« 1 2 3 »
Autor Zpráva
Měsíček
Profil
U $_REQUEST může dojít ke kolizi hodnot, proto se také nedoporučuje používat.
Dranel
Profil
Bart
Rozdělení do souborů je to nejlepší, co můžeš udělat. Zbytečně si to nekomplikuj. A jestli ti vadí vytváření dílčích souborů, tahej obsah z databáze.

ostatní
Já tomu teda moc nerozumím, ale když odesílám form přes $_POST a někdo změní údaje přes URL ($_GET), tak se změní i v $_REQUEST, né?
joe
Profil
Měsíček
K jaké kolizi?

Dranel
Ano, změní a co jako? :)

--

Odpovědi směřujte do
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=76 534
Filipess
Profil *
Na prepinani stranek na webu sem nasel tady dory navod jak to jednoduse udelat... http://firstpage.profitux.cz/?page=web_bez_ramu
TeSi
Profil *
Co tma mam pridat aby mi to pri nexistujici strance vyhodilo npr. error.html?
suky
Profil
TeSi
Myslim, ze to urcite neni misto, kde se ptat. (link)
hej?
Profil *
takže je to tak, kolik mám odkazů, které chci zobrazit v obsahu tolik musim mit v obsahu $_REQUESTů???
dr.house
Profil *
Sorry, _REQUEST, co to je? Nikdy v životě jsem to neviděl, asi jsem v manuálu něco přehlédl... Každopádně hlasuji proti... Co jsem se dozvěděl, tak tahle ujetá superglobální proměnná je asi tak spolehlivá, jako čínský novinář...
Bendík
Profil *
Moje reseni :-)
je to jedna kostra nedodelaneho webu, nekomu to mozna prijde prasecký(přišel jsem na to sám), ale je to jednodochý a fungující už spousty let na spousty webech, dynamicky měněný obsah včetně změny obsahu <title>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="cs" />
<meta http-equiv="Cache-control" content="cache" />
<meta http-equiv="imagetoolbar" content="no" />
<meta name="copyright" content="Copyright (c)2006-2007 Tomas Benda" />
<meta name="author" content="Code and Design: Tomas Benda; Content: Tomas Benda e-mail:benda.tomas@gmail.com" />
<meta name="robots" content="index,follow" />
<meta name="googlebot" content="index,follow"/>
<meta name="rating" content="general" />
<meta name="description" content="popis, ..." />
<meta name="generator" content="PSPad editor, www.pspad.com"; />
<meta name="keywords" content="klíčová slova, ..." />

<title>Obecny zajem - <? if($_GET['obecnyzajem']=="onas"){echo ( O nás);}
if($_GET['obecnyzajem']=="cenik"){echo ( Ceník);}
if($_GET['obecnyzajem']=="ostatni"){echo ( Ostatní);}

?>
</title>


<link rel="SHORTCUT ICON" href="favicon.ico" />
<link rel="stylesheet" type="text/css" href="http://www.xxx.cz/navrhy/masaze/vzhled1.css" />

</head>

<body>

<div id="hornipruh1"> </div>
<div id="hornipruh2"> </div>
<div id="hlavni">
<div id="logo"> <h4>&nbsp;&nbsp;&nbsp;Občanské združení Obecný zájem</h4>
<h4>&nbsp;&nbsp;&nbsp;nejaky logo a grafika</h4>
</div>

<div id="pruh3"> </div>


<div id="menu">
<div id="menu1"><a href="index.php?obecnyzajem=onas">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;O nás&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;< /a> </div>
<div id="menu2"><a href="index.php?obecnyzajem=cenik">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;Ceník&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;</a> </div>
<div id="menu3"><a href="index.php?obecnyzajem=ostatni">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;Ostatni&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> </div>
<div id="menu4"><a href="index.php?obecnyzajem=ostatni1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;Ostatni1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;</a> </div>
</div>

<div id="obsah">
<div id="h-obsah"> <?php
$_GET['onas']="<p>
<p>Lorem ipsum dolor sit amet consectetuer mi orci faucibus wisi ullamcorper. Curabitur dignissim vel ut vitae odio nunc quis dolor in dis. Odio consectetuer lobortis non consectetuer Aliquam malesuada porta ultrices et condimentum. Leo euismod Aenean lacinia adipiscing consequat velit elit sem tincidunt habitant. Eros vel ut tellus a non Ut neque at vestibulum montes. </p>
<p>Tincidunt congue ut eget congue mauris sociis pretium augue pretium cursus. Curabitur at diam tempus eu tincidunt interdum Duis lorem semper laoreet. Porta justo quam a urna nec Fusce id sollicitudin Curabitur fermentum. Semper porttitor vitae Curabitur gravida mauris eros tincidunt non interdum nulla. Tortor id Nulla rhoncus sapien natoque nunc laoreet et nibh at. </p>
<p>A id Suspendisse Nam pellentesque eget est tellus a ac elit. Et dolor condimentum malesuada consectetuer Nulla tincidunt at eu consectetuer Nulla. Suspendisse natoque consectetuer enim cursus wisi nisl dis tempus tempus malesuada. Nunc Pellentesque at enim id tellus a a justo at id. Auctor eu Sed vitae volutpat consequat Donec orci sit facilisi accumsan. Convallis.</p>

</p>
";

$_GET['cenik']="<h4>ceník</h4>

<p>Lákamí vůněhulás úmyval rohlivý jednovod lek hout Holehlíně čuva umí obzor. Přestavý božínům tlínkat úmyva pytlačkou holek Holiv a božný nuchředos sůl. Ští ně znovodlož kráčepres já úmyslušle spoubený rozem štím Lákamí kajední. Nedno drátobick lžičkodpo večníky dechvá obusl nasy rohliv jakočil vestupoči čuvadiát. Bický Hráčepicí alehýnkuc Nesmetít autor jít vlač lesmělý Partavěď rohlý bubený. Čný Umyslemi oba čajený škoda škočajine aný hane alem jený mezilogie. Nednověný.</p>
<p>Lák ne čuva úmyvaleka neřese vlačít čuvad ačkový nasíční úmysl úmyvad. Autní lvat čajenný poda rozzářící ačít ří božnám aný hole básná. Bývá štím tak ští poda lesmělý kler vůně obývá krazy Tor. Marásná drátobick boliv znovu sná lák vá neřese smítkem školivé Smut. Ječní vůněžný jít lžičkolou ky jítkem záprajen Tajakkoli Smut roští čepicí. Pytlačkou Vla lák řícipádní umělý nasy.</p>
<p>Úmyvadlou úmyvaledn umraje úmyslunce předopist zlemí nemi vá čuva lžičkouza bubejmi. Hal lva čný ne alehlínům holek smutomáš ční magnednem a klesivý. Mocipáda mat sudí škový já lákamat obzor večný štím raží Zvestupně. Kolobicí tobselad mocipádec ta Lák k ští ka štíně obolekno je. Váto marabubej raží pa prozzásko ří Dráto.</p>

";


$_GET['ostatni']="
Lorem ipsum dolor sit amet <br />
Consectetuer consectetuer gravida at Quisque <br />
Sapien Sed Phasellus consectetuer a <br />
Convallis sodales wisi tellus Phasellus <br />
Nullam eget quis enim dui <br />
Id euismod Vestibulum vitae urna <br />
Pellentesque orci sem pede et <br />
Habitasse senectus mauris tempor Quisque <br />
Interdum Phasellus mauris massa Proin <br />
Fringilla at quis ut massa <br />
Nulla ut cursus Vestibulum Quisque <br />
Netus semper in non enim <br />
Condimentum faucibus tortor In Vivamus <br />
Eros tellus ante Ut semper <br />


";


$_GET['ostatni1']="
Lákamí vůněhulás úmyval rohlivý jednovod <br />
Lek Umrabus vlačít dobou Obrajinec <br />
Ško lekajakko bý bolý umrad <br />
Já hulákaj záprajak obal Nesmetít <br />
Tlínům hliv an umyvačkod smírní <br />
Odobzor čajený lžičkodpo nucký zásou <br />
Nasíční rohlínům božkat čin hrátce <br />
Září smeti úmyva Bit smítkem <br />
Mat říkem Lákamí bolo ječní <br />
Čuvadi zenžto vlalehliv rojskočár předa <br />
Zno dobou alesmělý hulák přehliv <br />
Škočiledo z umyvat hudíčkou v <br />
Rojskočár hraparcip Bit večný ne <br />
Kamítkoli ří čuva k Dobožek <br />


";


if($_GET['obecnyzajem']=="onas"){echo ($_GET[
Bendík
Profil *
a tadz je konec, neveslo se to sem cele


if($_GET['obecnyzajem']=="onas"){echo ($_GET['onas']);}
if($_GET['obecnyzajem']=="cenik"){echo ($_GET['cenik']);}
if($_GET['obecnyzajem']=="ostatni"){echo ($_GET['ostatni']);}
if($_GET['obecnyzajem']=="ostatni1"){echo ($_GET['ostatni1']);}
?>
</div>

</div>

</div>

<div id=fotky-leva>
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
</div>
<div id="fotky-prava">
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
<div class="fotka">fotka</div>
</div>

<div id="autor">
realizace:<a href="mailto:webmaster@pocitace-svarc.cz">Tomáš Benda - webmaster@pocitace-svarc.cz</a>
</div>




</body>
</html>
Tomasds
Profil
Bendík
Tvoje řešení je oproti tomu, co bylo uvedeno výše, jeden velký amatérismus. Počínaje tím, že máš veškerý obsah webu v jednom souboru a konče hnusnou hromadou nbsp. Kromě toho 95% textu je pro toto téma hlušina a téma nijak neobohacuješ. Myslím že nepřežiješ.
Bendík
Profil *
Amatérismus možná, ale funguje a oto preci jde, nebo ne?
Měsíček
Profil
"Amatérismus možná, ale funguje a oto preci jde, nebo ne?"

Hlavně jde o to, aby to fungovalo, ale zároveň, aby to bylo řešeno efektivně .. což se o tvém návrhu nedá říct :)
Bendík
Profil *
Ok, samá kritika, že to je neefektivní. Tak mi řekni v čem konkrétně to je neefektivní? Je to snad náročné na zpracování, nebo je to nepochopitelné, nebo v čem to je neefektivní?
Budťe konkrétní. Odpovědi tipu je to neefektivní, amatérské atd... mi přijdou dost ubohé. Když používáte kritiku, tak ať je pouze pozitivní nebo konstruktivní. Tzn., že když se ti nelíbí můj návrh, tak řekni v čem a navrhni lepší řešení(úpravu), aby se to někam posunulo dál. Odpovědi tipu, je to amatérské, neefektivní atd... mi přijdou dost ubohé. Říct, že to je špatné umí každý, ale jen málokdo umí dát lepší návrh.
Takže podle mě, sem dej lepší návrh nebo se zdrž komentářů!

Toť je zas můj názor.
Snake.AAS
Profil *
joe:
$_REQUEST je prasarna... když taham odněkud data, tak chci, aby bylo naprosto jasné odkud. když to chci z formuláře tak post, z odkazu get etc.
v použití requestu vidím spíš spoustu negativ a jedine pozitivum....
mariett4
Profil *
mariett4
Profil *
<div id="obsah">
<?
if (!isset($_REQUEST['stranka'])) { include ("uvod.html"); };
if ($_REQUEST['stranka'] == 'uvod' ) { include ("uvod.html"); };
if ($_REQUEST['stranka'] == 'druha' ) { include ("druha.html"); };
if ($_REQUEST['stranka'] == 'posledni' ) { include ("posledni.html"); };
?>

</div>


určite majú byť na konci riadku ;?
Měsíček
Profil
mohou.
BetaCam
Profil
Bendík
Ok, samá kritika, že to je neefektivní. Tak mi řekni v čem konkrétně to je neefektivní? Je to snad náročné na zpracování, nebo je to nepochopitelné, nebo v čem to je neefektivní?

Tady nejde o efektivnost. U stránky která má 10kB a je to typ stránky který si sem postnul ty se můžeš na efektivnost vykašlat. Nic méně nepřehledný je to v každém případě.

Budťe konkrétní. Odpovědi tipu je to neefektivní, amatérské atd... mi přijdou dost ubohé.

Ono to, ale je amatérské. Konkrétní bejt člověk nemusí, protože každej kdo scriptuje v PHP aspon týden tam naprvní pohled vidí takové chyby až hanba.

Ale když chceš tu konkrétnost :

echo ( O nás);“
„echo ( Ceník);“
„echo ( Ostatní);


To sou jako konstanty? Myslím že ne. Takže tohle zákonitě musí vyhazovat NOTICE. Když něco píšeš zapínej si error_reporting(E_ALL)

<?“
„<?php


Doporučené je používat <?php samozdřejmě není chyba, když se používá <? akorát většinou se používá buď to či ono nechápu proč mixuješ obě varianty, ale asi k tomu máš nějaký speciální důvod.

$_GET['onas']="<p> 
<p>Lorem ipsum dolor sit amet consectetuer ...


A tohle je co za konstrukci? Sice si dovedu představit situaci kde je použití konstrukce $_GET['key'] = 'val'; užitečná, ale tahle to opravdu není. Když chceš psát v PHP nauč se základní práci s proměnnýma a také to k čemu , které proměnné či pole slouží.

f($_GET['obecnyzajem']=="onas"){echo ($_GET['onas']);} 
if($_GET['obecnyzajem']=="cenik"){echo ($_GET['cenik']);} 
if($_GET['obecnyzajem']=="ostatni"){echo ($_GET['ostatni']);} 
if($_GET['obecnyzajem']=="ostatni1"){echo ($_GET['ostatni1']);}


a co třeba nějaký else pro vypsání nějaké defaultní stránky?? Navíc co třeba používat elseif nebo rovnou switch? Navíc jak je vidět funkce isset() ti nic neříká takže pokud nebude $_GET['obecnyzajem'] nastaveno tak to opět logicky vyhodí NOTICE a to hned 4x

Navíc co třeba, aby to posílalo hlavičku 404, když $_GET['obecnyzajem'] nebude rovnat ani jedné z těch podmínek. No jenže to ty zas při téhle konstrukci nemůžeš protože první co uděláš je, že něco pošleš na výstup.

Prostě promin, ale tohle sou tak základní chyby, že se nebojím to označit za amatérismus. No Offence
imploder
Profil
mariett4
ne, za složené závorky se už další středník nepíše

asi šikovnější na takové přepínání je switch-case:

<div id="obsah">
<?
switch ($_GET["stranka"]) {
  case "uvod": 
      include ("uvodni.html"); break; 
  case "druha": 
      include ("druha_stranka.html"); break; 
  case "treti": 
      include ("treti_stranka.html"); break; 
  case "posledni": 
      include ("konec.html"); break; 
  default: 
      include ("uvodni.html"); break; 
}
?>
</div>


Pokud nevadí shoda hodnot proměnné stranka a názvů souborů (jako je to v tvojem příkladě), je nejjednodušší:
EDIT: prosímvás nepoužívejte to, je to nebezpečná prasárna, jak jsem byl poučen níže
<div>
<? include ($_GET["stranka"].".html"); ?>
</div>
Měsíček
Profil
Reaguji na člena "Imploder":

"ne, za složené závorky se už další středník nepíše "

Mohou se psát, stejně jako v C, C++ a i dalších jazycích, takže ukázka* je naprosto správná.

<?php
  $x = 1;
    if($x == 1){
      echo $x;
    } else {
      echo $x;
    };
?>
BetaCam
Profil
imploder
<div>
<? include ($_GET["stranka"].".html"); ?>
</div>



1) To je neošetřenej vstup od uživatele.
2) Netestuješ existenci souboru.
3) Netestuješ jestli je proměnná $_GET['stranka'] inicializovaná
4) Tato konstrukce neumožňuje vyhazovat 404
5) Není vyřešeno vykreslení výchozí stránky pokud není proměnná $_GET['stranka'] inicializována.

Popravdě takovouhle konstrukci bych těžce nedoporučil
imploder
Profil
BetaCam
Tak to máš pravdu, na první pohled to jde ale je to blbost. Zapomněl jsem na "./" značící adresář skriptu, zřejmě pod vlivem ostatních přispívajících. S ním by to mělo být bezpečné, za předpokladu že nemám riziková data v některém z podadresářů (a tam by být neměly, protože tam se k nim může dostat kdokoliv uhodnutím URL).
3) Netestuješ jestli je proměnná $_GET['stranka'] inicializovaná
Když není, tak to samozřejmě takhle nefunguje. Jinak ale použití nedeklarované proměnné v PHP není chyba. Od té doby, co se nastavení proměnných od klienta ukládá do speciálních polí $_GET[] a $_POST[] a ne přímo pod názvem proměnné, odpadá bezpečnostní riziko. Když použiju nedeklarovanou proměnnou, tak je prostě prázdná. Bude to sice házet NOTICE, ale to se dá vypnout. Šetří to kód.

Lepší řešení, bez uvedených pěti nedostatků:
<?
if(isset($_GET["stranka"])) $cesta = "./".$_GET["stranka"].".html"; 
else $cesta = "./uvod.html"; 
if($file_exists($cesta) include ($cesta); 
else include ("./404.php"); 
?>
es
Profil *
Měsíček
Reaguji na člena "Imploder":

"ne, za složené závorky se už další středník nepíše"

Mohou se psát, stejně jako v C, C++ a i dalších jazycích, takže ukázka* je naprosto správná.


Nie, ukážka nie je naprosto správná,
sú tam vložené nadbytočné príkazy "prázdny príkaz".
Možno náhodou funguje rovnako ako správna ukážka.
Lepšie je držať sa hesla:
mariett4
ne, za složené závorky se už další středník nepíše

<?php
$i = 0;
do {echo $i;$i++;}
while ($i < 5);
?>

Po vložení ; za } bude tento kód chybný.
mariett4
Profil *
„mariett4
ne, za složené závorky se už další středník nepíše “

Po vložení ; za } bude tento kód chybný.

v tom prípade myslimmm, že by to mal niekto opraviť.
imploder
Profil
v tom prípade myslimmm, že by to mal niekto opraviť.
Není na tom nic nelogického. PHP a jiné jazyky prostě takhle fungují. Obsah závorek je jednoznačně ohraničen otevírací a zavírací závorkou, je naprostý nesmysl zavádět ještě další ukončovací znak. Středník je znak ukončující příkaz (nebo, jak v PHP tuším platí, oddělující příkazy) a u bloku jeho použití nemá smysl.
es
Profil *
Len som chcel poukázať na to, že Měsíčkova "rada", že kto chce, môže bez škody za } všade dávať ;
je nesprávna na konkrétnom krátkom kóde.
mariett4
Profil *
Není na tom nic nelogického.

veď ja nehovorím opak. Keď sú tam tie ;-ky tak to nefunguje (aspoň mne). Tak si myslím, že by bolo vhodné ich na tom príklade odstrániť. Pretože keď to chce použiť niekto kto v PHP nevie programovať, tak sám tu chybu nenájde. A ešte keď si pod tým prečíta príspevok od moderátora, že mu pridal dôležitosť, tak by človek čakal, že je to správne...
es
Profil *
Až teraz som si všimol, že nadbytočné ; sú aj v úvodnom vzorovom kóde od TSD.
Bolo by dobré to napraviť, lebo nejakí začiatočníci môžu prísť k nesprávnemu záveru, že za } patrí ;.
Měsíček
Profil
Hloupost nikdo nic opravovat nebude, protože
if($x == $y){};
chyba není. Možná by bylo od věci zjistit si k čemu všemu se využívá " ; " a ne jen papouškovat jednu možnost, kterou učí paní profesorky na základní škole v IVT.
« 1 2 3 »

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: