| Autor | Správa |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: So 12.01.08 14:22 |   |
nazdar vsetci
na stranke mam include kde pouzivam tento kod
| kód: | <?php
if (isset($_GET['stranka'])){
$stranka=$_GET['stranka'];
$nazobrazenie= dirname($_SERVER['SCRIPT_FILENAME'])."/".$stranka.".php";
if(file_exists($nazobrazenie)){
if(substr_count($stranka,"../")>0){
echo "<h3>Upozornenie</h3>Nemožno načítať súbor v nadradenom adresáry!";
}elseif($stranka=="index" or $stranka=="/index"){
echo "<h3>Upozornenie</h3>Index nemôže načítať sám seba!";
}else{
include $nazobrazenie;
}
}else{
include "error404.php";
}
}else{
include "uvod.php";
}
?> |
a ak je neexistujuci subor tak mi includuje error404.php.. ako dosiahnem to ze ak sa includuje ten subor tak aj url sa zmeni na ?stranka=error404?? ak sa to vobec da takze predstavujem si to asi tak ze ked tam nekdo napise napr ?stranka=fero a ja ten subor nebudem mat tak mi includuje error404.php ale aj to ?stranka=fero sa zmeni na ?stranka=error404 dakujem vsetkim |
| |
    |
 |
pepek92
 Užívateľ
 Založený: 21.01.2007 Príspevky: 660
 | Zaslal: So 12.01.08 14:37 |   |
Môžeš to spraviť tak, že ak žiadaný súbor nebude existovať, použiješ header na presmerovanie. Pozor! Tento kód sa (kvôli header()) musí nachádzať nad všetkým odoslaním obsahom (funckie echo(), print() a pod...).
| kód: | | header("Location: error404.php") |
|
| |
   |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: So 12.01.08 14:40 |   |
ok, diky alee... trosku nchapem tomu upozorneniu ja som len zaciatocnik.. co tam mam porobit? |
| |
    |
 |
pepek92
 Užívateľ
 Založený: 21.01.2007 Príspevky: 660
 | Zaslal: So 12.01.08 14:50 |   |
Proste, ten kód sa musí nachádzať nad nejakých includovaným alebo zobrazeným HTML kódom resp. textom. Teda musí sa (v kóde) nachádzať nad nejakým text, ktorý si už "vypustil" do prehliadača. Príklad:
Nesprávne:
| kód: | echo ('Hello world');
header('Location: ....'); |
Správne:
| kód: | header('Location: ....');
echo ('Hello world'); |
Ešte by bolo vhodné umiestniť za header('...'); aj exit;, ktoré ti zabezpečí, aby sa kód ďalej nespracúval a hneď presmerovalo. |
| |
   |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: So 12.01.08 15:10 |   |
uf ja som z toho pako stale nevm co chces odomna ja som to chcel zmenit len koli tomu ze mam tituolk.php ktory obsahuje toto:
| kód: | <?php
$titulokstr=$_GET['stranka'];
switch($titulokstr)
{
case "uvod":
$titulok="Úvod";
break;
atd...
}
echo "<title>".$titulok." - Emerové osobné stránky</title>";
|
a zato ked nekdo da neco ine, cize neexistujuci subor tak mi vypise chybu... a kazi to stranku.. preto som chcel zeby zmenilo url... dalo by sa spravit ze ak by sa v case nenachadzalo to co je v ?stranka=nieco tak by to zmenilo napr. na "chyba404" ?? dufam ze sa chapeme lebo nevm ci som to zle nevysvetlil |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
pepek92
 Užívateľ
 Založený: 21.01.2007 Príspevky: 660
 | Zaslal: So 12.01.08 15:18 |   |
Ale veď ti hovorím, že to môžeš spraviť iba tak, že sa to premeruje na chybovú stránku. Zmeniť adresu URL bez presmerovania, tak o tom som ešte nepočul. |
| |
   |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: So 12.01.08 15:28 |   |
ked ja nechapem tomu co si hovoril?
skusal som to tak ze ak neexistuje tak includuje subor "chyba.php"
a chyba.php bolo
| kód: |
<?php
header("location: cesta_k_error404.php");
?>
|
ale to mi nefungovalo.... nechapem nejako tomu co si hovoril ze sa musi nachadzat nad includovanym kodom...
edit// aha uz to asi chapem ten header sa nesmie nachadzat medzi tagmy <html></html>cize musi byt asi takto
| kód: |
<?php
header("location: cesta_k_error404.php");
?>
<html>
straaanka ... . . ..
</html>
|
spravne som pochopil??? |
| |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: So 12.01.08 15:49 |   |
áno bolo to tak vyriesil som to... pre buduce generacie zaciatocnikov ktory budu mat takyto problem poskytujem riesenie
pred zaciatkon dokumenut si dajte nieco taketo:
| kód: |
<?php
if (isset($_GET['stranka'])){
$stranka=$_GET['stranka'];
$nazobrazenie= dirname($_SERVER['SCRIPT_FILENAME'])."/".$stranka.".php";
if(file_exists($nazobrazenie)){
$e = "";
}else{
$e = "error404" ;
}
}
if($e=="error404"){
header("location: http://domena.sk/?stranka=error404");
}
else{
echo "";
}
?>
|
|
| |
    |
 |
mondzo
 Užívateľ
 Založený: 09.02.2007 Príspevky: 248
 | Zaslal: Po 14.01.08 13:40 |   |
odporucal by som este za header(...) doplnit riadok s prikazom exit;
aby si si bol isty, ze sa uz dalsie riadky nevykonaju...
a ja by som tvoj kod zjednodusil takto:
| kód: |
<?php
if (isset($_GET['stranka'])) {
$stranka=$_GET['stranka'];
$nazobrazenie= dirname($_SERVER['SCRIPT_FILENAME'])."/".$stranka.".php";
if(file_exists($nazobrazenie)) {
echo "";
}
else {
header("location: http://domena.sk/?stranka=error404");
exit;
}
}
?>
|
|
| |
   |
 |
pepek92
 Užívateľ
 Založený: 21.01.2007 Príspevky: 660
 | Zaslal: Po 14.01.08 14:52 |   |
| mondzo napísal: | odporucal by som este za header(...) doplnit riadok s prikazom exit;
aby si si bol isty, ze sa uz dalsie riadky nevykonaju...
|
To som mu tam už napísal  |
| |
   |
 |
|