Diskuze: php 404

PHP PHP php 404 American English version English version

Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:

Zdarte,
na stránkách mám vkládání stránek do šablony s menu, patičkou a dalšíma blbninkama a když stránka kterou chci vložit neexistuje, tak jsem to zkoušel přes

$vlozeno = include('podstranky/' . $stranka . '.php');
if(!$vlozeno)
{
    include('podstranky/err404.php');
}

podle vzoru zde na síti v tutoriálech. Pokud stránka neexistuje, tak se vloží err404.php, ale vypíšou se i chyby.
Jak to udělat, aby k přesměrování na 404 došlo, ale php nevypsalo ty chyby?
Díky

Odpovědět 14.1.2015 20:54
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Adam Ježek
Matúš Petrofčík:

napríklad priamo v PHP vypneš vypisovanie chýb

// nastavenie chýb
error_reporting(E_ALL);
ini_set("display_errors", 1); // 1 = zapnuté, 0 = vypnuté

ale dá sa to aj v .htaccess

http://php.net/…eporting.php
http://php.net/….ini-set.php

edit: alebo najprv skontroluješ či existuje súbor ktorý chceš includovať, a ak neexistuje tak presmeruješ/in­cludneš chybovú stránku

Editováno 14.1.2015 21:02
Nahoru Odpovědět 14.1.2015 21:00
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Adam Ježek
Martin Konečný (pavelco1998):
$soubor = "podstranky/{$stranka}.php";
if (!file_exists($soubor)) {
  header("location: pryč");
  exit;
}

include $soubor;
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 14.1.2015 21:00
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Matúš Petrofčík
Adam Ježek:

vypnutí chyb se chci vyhnout, to mi nepříde jako ideální

Nahoru Odpovědět 14.1.2015 21:03
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Adam Ježek:

Díky. Něco jako toto jsem potřeboval.¨

if(file_exists($stranka))
{
   $vlozeno = include($stranka);
   if(!$vlozeno)
   {
       include('podstranky/err404.php');
   }
}
else
  include('podstranky/err404.php');
Nahoru Odpovědět  +1 14.1.2015 21:04
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Adam Ježek
Matúš Petrofčík:

Aj tak na produkcii by si mal mať vypisovanie chýb vypnuté. Nikdy nevieš kedy nastane dáka chyba, ktorá odhalí nejaké citlivé údaje: štruktúra zložiek, heslo do databázy, ...

Nahoru Odpovědět  +1 14.1.2015 21:05
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Matúš Petrofčík
Adam Ježek:

Tak na serveru sou chyby vypnuté, ale na localhostu jsou zaplý a příde mi lepší to dotáhnout do podoby, kdy chyby nejsou

Editováno 14.1.2015 21:07
Nahoru Odpovědět 14.1.2015 21:05
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Adam Ježek
Matúš Petrofčík:

Ešte si to môžeš zjednodušiť, či chceš mať 1000% istotu? :D

if(file_exists($stranka))
   include($stranka);
else
   include('podstranky/err404.php');
Nahoru Odpovědět 14.1.2015 21:07
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Matúš Petrofčík
Adam Ježek:

radší ta jistota, náhoda je blbec :D

Nahoru Odpovědět  +1 14.1.2015 21:07
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Denis Homolík (Alfonz):

Ještě bych ti tam doporučil přidat toto pokud ta podstránka neexistuje. http_response_co­de(404);

Nahoru Odpovědět 14.1.2015 22:33
Vše je možné, dokud si to myslíte!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.