Mistä conffista saa php errorit kokonaan pois?
Sivujen koodi pitäisi toimia täysin mutta jos jossain bugaa niin olisi turvallisempaa jos virhettä ei koko kansalle kuulutettaisi.
php.ini: "display_errors = Off"
Paras tietysti olisi kattava virheenkäsittely koodiin, esim.
<?php // oletetaan vaikka, että tahdotaan kirjoittaa tiedostoon // (tykkään suluista kun iffissä sijoitetaan samalla muuttujaan) if (($fh = fopen("testi.txt", "a+"))) { // informoidaan käyttäjää epäonnistumisesta if (!fwrite($fh, "data\n") > 0) echo "Tiedostoon kirjoittaminen ei onnistunut"; fclose($fh); } else { // informoidaan käyttäjää epäonnistumisesta echo "Tiedostoon kirjoittaminen ei onnistunut"; // tai vaikkapa vain ohjataan vaikka etusivulle header("http://domain.com"); } ?>
Epäonnistumistilanteisiin voi tehdä oman funktion, joka hoitaa virheenkäsittelyn.
Laita koodi funktioon ja funktion kutsunnassa laita @ siihen sen eteen. Ei tule funktiosta virheilmoituksia.. Esim näin:
@funktio()
php.ini kirjoitti:
; For production web sites, you're strongly encouraged to turn this feature off,
;and use error logging instead (see below).
display_errors = On
Toisin sanoen, jos pyörität testipalvelinta (sivusto ei näy Internetiin, tai suojattu salasanalla) niin "error_reporting = E_ALL" ja "display_errors = On" - jos taas näytät sivusi kaikelle kansalle niin "display_errors = Off" ja "log_errors = On". @-merkin käyttö on kiertotie ja kaiken koodin tunkeminen funktioon rikkoo jo funktion perusperiaatetta.
Asetat virheen käsittelijän (set_error_handler) joka tallentaa tietokantaan mutta ei tulosta sitä.
Kiitos, voisihan sitä hieman aikaa kuluttaa siihen että tekee nuo "omat virheilmoitukset" ja sen lisäksi pistää conffista piiloon.
Aihe on jo aika vanha, joten et voi enää vastata siihen.