Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP ja Notice

EterAnal [20.06.2006 16:15:46]

#

Moro,

Olisi eräs kysymys. Kun lataan esim. sivun: http://kokko.web.cern.ch/kokko/versio2/php/gallery2005.php jonka olen koodaillut niin tulee ilmoitus: PHP Notice: Undefined offset: 18 in d:\wwwroot\kokko\versio2\php\gallery2005.php on line 20. Tuota huomautusta ei kuitenkaan näy kun katson sitä omalla koneella suoraan localhostin kautta. Mikäs tuo Notice oikein on ja miten saan sen poistettua?

ajv [20.06.2006 16:27:35]

#

Tuolta löytyy helppiä:
https://www.ohjelmointiputka.net/keskustelu/8276-php-n-aloittanut

EterAnal [20.06.2006 16:59:09]

#

Kiitoksia, kyllä mie kuitenkin omasta mielestäni olen muuttujat esitelly ja ilmoitus kertoo, että se on undefinet offset kun tuolla on puhetta index-jutuista. Mie luulen, että se liittyy jotenkin tuohon for-toistolauseeseen. Onko se ihan oikein kirjoitettu?

for($i=0; $i <= count($arrayfile); $i++)
fwrite($newfile, "$arrayfile[$i]");

Blaze [20.06.2006 17:16:40]

#

$i kasvaa yhden liian isoksi. $arrayfilessä on count() alkiota. Kun ensimmäinen alkio on 0, viimeinen on silloin count() - 1. Poistamalla tuon yhtäsuuruuden tuosta looppausehdosta ei yritetä tavoitella olematonta alkiota.

Edit: Noticeistahan ei sinällään tarvitse välittää, ja tuotantopalvelimella ehdottomasti kannattaa kytkeä ne pois päältä, mutta esimerkiksi C:ssähän tuossa osoitettaisiin varaamatonta muistia ja kaadettaisiin ohjelma, joten ei liene pahasta opetella samantien tekemään hommat kunnolla.

Minusta PHP:n pitäisi tuossa tilanteessa sanoa kyllä "undefined index", ei offset :/

Vastaus

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

Tietoa sivustosta