Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: php errorit piiloon?

D4_B34M [30.03.2006 02:16:24]

#

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.

tsuriga [30.03.2006 03:35:53]

#

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.

exAtuu [30.03.2006 07:51:35]

#

https://www.php.net/function.error_reporting

verho88 [30.03.2006 08:01:35]

#

Laita koodi funktioon ja funktion kutsunnassa laita @ siihen sen eteen. Ei tule funktiosta virheilmoituksia.. Esim näin:

@funktio()

tsuriga [30.03.2006 15:19:48]

#

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.

Niko [30.03.2006 15:45:07]

#

Asetat virheen käsittelijän (set_error_handler) joka tallentaa tietokantaan mutta ei tulosta sitä.

D4_B34M [30.03.2006 18:09:40]

#

Kiitos, voisihan sitä hieman aikaa kuluttaa siihen että tekee nuo "omat virheilmoitukset" ja sen lisäksi pistää conffista piiloon.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta